标签:反编译 Java 4.0 编译 APK 2.3 Android 体系结构
Android历史版本
等级 版本号 代号
API1: Android 1.0
API2: Android 1.1 Petit Four
API3: Android 1.5 Cupcake
API4: Android 1.6 Donut
API5: Android 2.0 éclair
API6: Android 2.0.1 éclair
API7: Android 2.1 éclair
API8: Android 2.2 - 2.2.3 Froyo
API9: Android 2.3 - 2.3.2 Gingerbread
API10:Android 2.3.3-2.3.7 Gingerbread
API11:Android 3.0 Honeycomb
API12:Android 3.1 Honeycomb
API13:Android 3.2 Honeycomb
API14:Android 4.0 - 4.0.2 Ice Cream Sandwich
API15:Android 4.0.3 - 4.0.4 Ice Cream Sandwich
API16:Android 4.1 Jelly Bean
API17:Android 4.2 Jelly Bean
API18:Android 4.3 Jelly Bean
API19:Android 4.4 KitKat
API20:Android 4.4W
API21:Android 5.0 Lollipop
API22:Android 5.1 Lollipop
API23:Android 6.0 Marshmallow
API24:Android 7.0 Nougat
API25:Android 7.1 Nougat
API26:Android 8.0 Oreo
从Android 5.0(Android L)开始,Android系统开始改用ART虚拟机,Android系统也开始分32位版本和64位版本
Android体系结构
需要学习的:
smali:Java反编译后
Java:Java原生代码
JNI:Java与C语言之间调用的中间人
C/C++(so):很多加密是用C写的,因为C更接近底层,调用底层的时候会用到,且更难破解
ARM汇编:C语言反编译后
Android:安卓系统提供的接口,类似浏览器中提供给JavaScript的一些接口
APK基本结构
.apk、.jar 都是压缩包文件,都是可以用压缩工具打开的
assets 资源文件(图片、音频、数据库、网页、配置文件等),通常是没有编译过的
res 资源文件,需要编译(布局),需要反编译(apktool)
lib 各种平台下使用的对应的so文件,里面代码基本上都是一样的,处理各种CPU兼容性的
认CPU的代码:
机器码
汇编 低级符号语言
C 高级符号语言
libs 引入的第三方jar包
META-INF 签名文件,更改代码后 1、重签名(apk需要验证签名时 无效),2、破解器去除验证,3、安装在模拟器上
resources.arsc 资源加密(语言包),编译后的
AndroidManifest.xml 清单文件(图标、界面、权限、入口),编译后的
classes.dex 源代码,运行在虚拟机上
标签:反编译,Java,4.0,编译,APK,2.3,Android,体系结构 来源: https://blog.csdn.net/weixin_43040873/article/details/111185647
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。