美文网首页
Android 系统

Android 系统

作者: 就爱烫卷发 | 来源:发表于2019-03-10 00:31 被阅读0次

    Android 系统

    系统目录

    • /system
    1. /system/app/ 放的是系统的APP(其实也就是权限高一点)
    2. /system/bin/ Linux自带的组件
    3. /system/build.prop/ 系统的属性文件。 可以当文件一样读取属性。
    4. /system/framework/ 框架层。基本上都是些。jar 文件,比如android.jar
    5. /system/lib/ 共享库 .so文件
    6. /system/usr/ 用户配置的数据
    • /data/
    1. /data/data/ APP数据 用DDMS 可以查看SP等文件
    2. /data/system/ 手机的各种系统信息
    3. /data/misc/ VPN Wifi等信息

    APP启动

    • 热启动

      已经启动过一次的APP直接走MainActivity(测量,布局,绘制)。

    • 冷启动

      没有启动的APP点击图标进行启动。安卓系统会从Zygote进程中fork创建出一个新的进程分配给该应用,之后会依次创建和初始化Application类、创建MainActivity类、加载主题样式Theme中的windowBackground。实际流程 Application的构造器方法——>attachBaseContext()——>onCreate()——>Activity的构造方法——>onCreate()——>配置主题中背景等属性——>onStart()——>onResume()——>测量布局绘制显示在界面上。

    • APP启动带来的问题

      主要带来的问题就是白屏, 解决方法 一般就是添加启动页,或者让页面全透明,表面上是点击了没有反应,其实已经启动了,但是显示的还是桌面的问题。拿小米手机测试,系统APP就会这样显示还是桌面然后一下子跳到APP里面,支付宝就直接进入APP显示白屏,根本不抖。

    • 启动优化

      1. APP启动的时候先走的是Application,所以在Application中不要做耗时的操作(I/O),不做业务,不在Application中用静态的方式保存数据。
      2. View 绘制优化因为绘制之前要测量假如有嵌套就要测量外部,再测量内部。也就是线性嵌套的缺点所以用相对的比较多,还有就是现在的默认布局ConstraintLayout。都是为了减少布局的嵌套来提高View的绘制。我们在代码中需要注意这个,还可以用include来引用布局,当然刚开始不要显示的布局我们用ViewStub来延迟加载。显示出来的方法就是找到这个布局,然后调用VISIBLE或者inflate(只能调用一次),GONE跟ViewStub区别就是GONE不管什么时候都会加载,只是不显示出来,而ViewStub是不用的时候不会加载。但是用过一次就被加载出来了,所以多次调用inflate 就会报错。树的结构不能超过10。

    Android系统信息

    • Android的系统信息,通常在android.os.Build跟SystemProperty 例如调用方式 System.getProperty("os.key");
    • 获取应用信息--pm(PackageManager),
      APP在启动的时候都会把App的Manifest.xml解析个遍,把里面的各种配置的信息都进行存储,这也就是为什么我们APP的组件需要注册的原因,这里在启动的时候就要进行整理,方便后面调用。而pm就可以获取到APP的基本信息,比如Icon,包名,名称,是否是系统应用等。
    • AM(ActivityManager)一般运用于运行时候的应用信息,比如内存信息--MemoryInfo 可用,总内存大小,进程跟Service的查看。

    Android安全

    • Android 安全来讲第一就是我们的release包,签名认证。还有比较多的就是混肴加固,现在很多三方都会附带自己的混肴方法,旨在让我们的APP更加安全可靠。
    • 反编译,基本上三个工具可以搞定,可以获取不少代码,但获得自己想要的核心,还是需要点时间与方法的。

    常用工具

    • adb 算是比较常用的Android 命令,这个就有很多了简单的来查看日志,安装APK,查看应用。附使用指南:
      http://www.wanandroid.com/blog/show/2310
    • aapt 查看APP信息 例,打开/sdk/build-tools/23.0.2(各个版本)/之后 进入cmd页面 然后输入 :aapt dump badging (此处拖入APK),然后得到一大串数据,复制出来然后分析。

    相关文章

      网友评论

          本文标题:Android 系统

          本文链接:https://www.haomeiwen.com/subject/czgrpqtx.html