💗

android与ios系统有什么区别

  1. 两者的运行机制不一样:iOS采用的是沙盘运行机制,Android采用的虚拟机运行机制
  2. 两者的后台机制不同:iOS任何第三方应用程序都不能在后台运行,Android任何应用程序都在后台运行,知道没有内存才会关闭
  3. iOS中用于UI指令权限最高,安卓中数据处理指令权限最高

Android四大组件

  1. activity -- 活动

    • 一个activity通常就是一个单独的屏幕(窗口)
    • activity之间通过intent进行通信
    • android应用中每一个activity都必须要在AndroidMainfest.xml配置文件中声明,否则系统将不识别也不执行该activity
  2. service -- 服务

    service用于在后台完成用户指定的操作

    • started(启动):当应用程序组件调用startService()方法启动服务时,服务处于started状态
    • bound(绑定):当应用程序组件调用bindService()方法绑定到服务器时,服务器处于bound状态
  3. content provider -- 内容提供者

  4. broadcast receiver -- 广播接收者

    • 有两种注册方法
      1. 程序动态注册 --- 特点是activity关掉之后,广播失效
      2. AndroidMainfest文件中进行静态注册 --- 只要设备处于开启状态,广播接收器也是打开的

app性能

  1. cpu

    • 测试点

      1. 空闲时间(切换至后台)的消耗
      2. 在运行一些应用的情况下,cpu已占50%,观察应用程序占cpu的情况
      3. 超负荷情况下看cpu的表现
    • 关注点

      1. 与自身app的上个版本对比
      2. 与竞品对比
      3. 自身app各自activity对比
  2. FPS

    每秒钟帧数越多,越流畅

  3. 内存

    • 测试点
      1. 空闲状态:切换至后台或者启动后不做任何操作,消耗内存最少
      2. 中强度状态:时间增长的操作应用
      3. 强度状态:通常用来测内存泄漏-可以用跑monkey的方法

  4. 启动时间

    冷启动和热启动

  5. 网络流量

  6. 耗电量

android ANR和crash

  • 造成ANR的原因

    1. 主线程阻塞
      • 解决方法:避免死锁的出现,使用子程序来处理耗时操作或者阻塞任务。尽量避免在主线程query provider
    2. cpu满负荷、I/O阻塞
      • 解决办法:文件读取或者数据库操作放在子线程异步操作
    3. 内存不足
      • 解决办法:防止内存泄漏,优化内存使用
    4. 各大组件ANR
      • 各大组件生命周期中避免耗时操作,注意BroadcastReciever的onRecieve()、后台Service和ContentProvider也不要执行太长时间的任务
  • crash

    1. java crash
      • java代码导致jvm退出,弹出“程序已经崩溃”对话框,最终用户点击关闭后进程退出
    2. native crash
      1. 空指针
        • 试图对空指针进行操作
      2. 野指针
        • 指向的是一个无效的地址
      3. 数组越界
        • 访问无效的地址
      4. 整数除以0
        • 整数除以0默认的处理方式是终止进程
      5. 格式化输出参数错误
        • 与野指针类似
      6. 缓冲区溢出
        • 通过往缓存区写超出其长度的内容
      7. 内存管理错误
        • 可用内存过低或者内存泄漏

activity生命周期

  • 四种状态
    1. 活动状态(Active/Running)
      • 当activity运行在屏幕前台,此时它获取了焦点能响应用户的操作,属于运行状态,同一个时刻只有一个activity处于活动(Active)或者运行(Running)状态
      • 此状态由onResume()进入,由onPause()退出
    2. 暂停状态(Paused)
      • 当activity失去焦点(返回桌面或者之上有另一个透明的activity)它将处于暂停状态,再进而进入其他状态
      • 此状态由onPause()进入,可能下一步进入onResume()或者onCreate()重新唤醒软件,或者被onStop()杀掉
    3. 停止状态(Stopped)
      • 完全被另一个activity遮挡处于暂停状态,仍然保留着所有的状态和成员信息
      • 该状态由onStop()进入,如果被杀掉,可能进入onCreate()或者onRestart(),如果彻底死亡,进入onDestory()
    4. 非活动状态(Dead)

abd 指令

  1. 列出手机装的所有app的包名

    adb shell pm list packages

  2. 列出系统应用的所有包名

    adb shell pm list packages -s

  3. 清除应用缓存

    adb shell pm clear <package>

  4. 查看日志

    adb logcat

    • grep 白名单模式、“xxx“匹配的tag、”……Exxx“是Error级别、"^.MyAPP“结尾匹配MyAPP的tag。-i忽略大小写
    • grep -v黑名单模式

    adb logcat | grep -i "^E.MyAPP"

app自动化框架

  1. AirTest

    • 优点:框架基于图像识别跟UI,操作简单、功能简介;可以录制脚本,一键生成报告,带代码要求低
    • 缺点:空间定位不够准确,如果发生空间位置变更或者图案变更,会出现找不到控件
  2. Uiautomator2和Uiautomator的区别

    1. api不同
    2. Uiautomator2是安卓项目,Uiautomator是java项目
    3. Uiautomator2可以输入中文。Uiautomator的java工程需借助utf7输入法才能输入中文
    4. Uiautomator2必须明确EditText框才能向里面输入文字,Uiautomator直接指定父类也可以在子类中输入文字
    5. Uiautomator2获取控件速度快些,Uiautomator慢些
  3. Uiautomator2

    uiautomator2 是一个可以使用Python对Android设备进行UI自动化的库。其底层基于Google uiautomator,Google提供的uiautomator库可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点:

    1、测试脚本只能使用Java语言。

    2、测试脚本必须每次被上传到设备上运行。 我们希望测试能够用一个更脚本化的语言,例如Python编写,同时可以每次所见即所得地修改测试、运行测试

  4. facebook-wda

系统性能指标

  1. 响应时间

    • 简称RT,系统对请求作出响应的时间
    • 不同行业可接受的响应时间不同,软件性能的高低实际上取决于用户对该响应时间的接受程度
  2. 系统处理能力

    • TPS:系统每秒处理交易数,单位是笔/秒
    • QPS:系统每秒处理查询次数,单位是笔/秒
    • HPS:每秒点击次数,单位是次/秒

    一般情况下用TPS来衡量整个业务流程,用QPS来衡量接口查询次数,用HPS来表示对服务器的点击请求

  3. 吞吐量

    • 系统在单位时间内处理请求的数量
    • 对于单用户系统,响应时间可以很好的度量系统的性能,但对于并发系统,通常需要用吞吐量作为性能指标
  4. 并发用户数

    • 并发用户数指在同一时刻内,登录系统并进行业务操作的用户数量
  5. 错误率

    • 简称FR,指系统在负载情况下失败交易的概率,error为千分之六以内

python深拷贝和浅拷贝

  • 浅拷贝:拷贝父对象,不会拷贝对象的内部的子对象a.copy()或者copy.copy(a)
  • 深拷贝:copy模块下的deepcopy方法,完全拷贝了父对象及其子对象copy.deepcopy(a)

python可变和不可变

  • 可变:string, number, tuple
  • 不可变:dict, list

python 切片

对列表元素的取值,基本语法形式:alist[start:stop:step]

http和https的区别

  1. http是明文传输,数据安全性差;https(超文本传输协议)数据在传输过程中加密的,安全性好
  2. 使用https协议需要到ca申请证书,一般不免费
  3. http页面响应速度快,http使用tcp三次握手连接,client和server需要交换三个包,https除了tcp的三个包,还有ssl握手需要9个包,总12个包
  4. http和https使用完全不同的连接方式,使用的端口也不一样,前者80,后者443
  5. https其实是构建在SSL/TLS上的http协议。所以https比http更耗费浏览器资源

HTTP Content-Type类型

  1. 常见的媒体格式类型
    • text/html:HTML格式
    • text/plain:纯文本格式
    • text/xml:XML格式
    • image/gif:GIF图片格式
    • image/jpeg:jpg图片格式
    • image/png:png图片格式
  2. 以application开头的媒体格式类型
    • application/xhtml+xml:XHTML格式
    • application/xml:XML数据格式
    • application/atom+xml:Atom XML聚合格式
    • application/json:JSON数据格式
    • application/pdf:pdf格式
    • application/msword:Word文档格式
    • application/octet-stream:二进制流数据(如常见的文件下载)
    • application/x-www-form-urlencoded:默认编码格式,以key/value格式传到服务器
  3. 上传文件媒体格式类型
    • multipart/form-data:需要对表单进行文件上传时,使用该格式

linux命令

  1. tail:从指定点开始将文件写到标准输出

    • -f 循环读取
    • -q 不显示处理信息
    • -v 显示详细的处理信息
    • -n<行数> 显示行数
    1. 显示文件最后5行

      tail -n 5 filename

    2. 循环查看文件内容

      tail -f filename

    3. 从第五行开始显示文件

      tail -n +5 filename

  2. head: 显示档案的开头至标准输出

    • -q 隐藏文件名
    • -v 显示文件名
    • -c<字节> 显示字节数
    • -n<行数> 显示行数
    1. 显示文件前n行

      head -n 5 filename

    2. 显示文件前n个字节

      head -c 20 filename

    3. 文件除了最后n个字节以外的内容

      head -c -32 filename

    4. 输出文件除了最后n行以外的内容

      head -n -6 filename

  3. sed:可以按照行号和时间范围查询

    • 按照行号

      sed -n '5,10p' filename

  4. grep:用于过滤搜索特定字符

  • -i:忽略字符大小写(同-f)
  • -c:计算符合样式的列数
  • -n: 在显示符合样式的那一行之前,标示出该行的列数编号
  • -v:显示不包含匹配文本的所有行
  • wnja
  1. 查找制定进程

    ps -ef | grep java

  2. 查找指定进程个数

    ps -ef | grep java -c

    ps -ef | grep -c java

  3. 从文件中读取关键字进行搜索

    cat filename | grep -f filename2

  4. 从文件中读取关键字进行搜索并显示行数

    cat filename | grep -nf filename2

  5. 从文件中查找关键词

    grep 'xxx' filename

  6. 从多文件中查找关键词

    grep 'xxx' file1 file2

  7. grep不显示本身进程

    ps aux| grep ssh | grep -v 'grep'

  8. 查找u开头的内容

    cat file | grep ^u

  9. 查找非u开头的内容

    cat file | grep ^[^u]

  10. 输出以hat结尾的的行内容

    cat file | grep hat$

  11. 显示包含ed或者at字符的内容行

    cat file | grep -E 'ed|at'

  1. 不会辛苦

算法题

  1. 在一个数组中,只有1个数字仅出现1次,其余数字出现2次,求只出现一次的那个数字

    # 关键点:异或运算
    #
    # 相同的数字异或的结果是0:2^2=0
    # 和0异或是本身:0^2=2
    
    def one_number(aList):
        a = 0
        for i in aList:
            a^=i
        return a
    
  1. 杨辉三角形

    def func_a(n):
        if n == 0:
            return []
        elif n == 1:
            return [1]
        elif n == 2:
            return [[1], [1, 1]]
        n -= 2
        rList = [[1], [1, 1]]
    
        while n > 0:
            newList = [1]
            for i in range(len(rList[-1])-1):
                newList.append(rList[-1][i] + rList[-1][i+1])
            newList.append(1)
            rList.append(newList)
            n -= 1
        return rList
    
  1. hhhh
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容