android知识点三

1、onStart()与onResume()有什么区别

onStart() 是 Activity 界面被显示出来的时候执行的,但不能与它交互;
onResume() 是 当该 Activity 与用户能进行交互时被执行,用户可以获得它的焦点,能够与其交互。

2、Android、java两种虚拟机区别与联系

Android中的Dalvik虚拟机相较于Java虚拟机针对手机的特点做了很多优化。
Dalvik基于寄存器,而JVM基于栈。在基于寄存器的虚拟机里,可以更为有效的减少冗余指令的分发和减少内存的读写访问。
Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个 Dalvik应用作为一个独立的Linux进程执行。
java虚拟机运行的是java字节码。(java类会被编译成一个或多个字节码.class文件,打包到.jar文件中,java虚拟机从相应的.class文件和.jar文件中获取相应的字节码)
Dalvik运行的是自定义的.dex字节码格式。(java类被编译成.class文件后,会通过一个dx工具将所有的.class文件转换成一个.dex文件,然后dalvik虚拟机会从其中读取指令和数据)

3、adb常用命令行

查看当前连接的设备:adb devices
安装应用:adb install -r {path} -r表示覆盖安装
卸载apk:adb uninstall {path}

4、apktools常用指令

apktool d -p frame ***.apk -o  wenjianjia

apktool b -p frame wenjianjia -o new.apk

5、apk打包流程

  • aapt工具打包资源文件,生成R.java文件

  • aidl工具处理AIDL文件,生成对应的.java文件

  • javac工具编译Java文件,生成对应的.class文件

  • 把.class文件转化成Davik VM支持的.dex文件

  • apkbuilder工具打包生成未签名的.apk文件

  • jarsigner对未签名.apk文件进行签名

  • zipalign工具对签名后的.apk文件进行对齐处理

6、apk安装流程

  • 复制APK到/data/app目录下,解压并扫描安装包。

  • 资源管理器解析APK里的资源文件。

  • 解析AndroidManifest文件,并在/data/data/目录下创建对应的应用数据目录。

  • 然后对dex文件进行优化,并保存在dalvik-cache目录下。

  • 将AndroidManifest文件解析出的四大组件信息注册到PackageManagerService中。

  • 安装完成后,发送广播。

猜你喜欢

转载自blog.csdn.net/qwildwolf/article/details/118224980