1625-5 王子昂 总结《2018年1月18日》 【连续第475天总结】
A. APK基础和注入
B.
安卓原理
安卓与Linux的关系
相同点
采用了LinuxKernel
- 内存管理与进程管理
- 安全和权限机制
- 支持共享库
- 驱动模型
不同点
- 编程接口不同,未采用Linux库,导致应用移植问题
(解决方法:将代码和依赖库编译成ARM) - 基于OpenBinder框架开发的Android Binder
- 低内存管理器,匿名内存共享
adb shell
pm(package manager)
input text “xxx”
运行库/Dalvik虚拟机
2G/3G、libc、媒体库、SQLite
应用运行在dalvik虚拟机/ Zygote机制
从Java字节码编译到apk
- 将Java编译成字节码
- 然后用dx工具将多个class文件转成dalvik的一个dex文件
命令:Android/sdk/xxx/dx –dex –debug xx.dex xxx.class - 在android中可以执行
命令:dalvikvm -classpath xxx.class xxx
Android也可以加载Jar文件,但一般作为功能模块