💗

2021-09-23  本文已影响0人  又是一只小白鼠

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

activity生命周期

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深拷贝和浅拷贝

python可变和不可变

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:用于过滤搜索特定字符

  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
上一篇 下一篇

猜你喜欢

热点阅读