web全栈课程
JAVA课程
学什么技术好
首页 >手机网站 > 新闻 > 深圳嘉华学校安卓开发教...

深圳嘉华学校安卓开发教程之加壳技术

这里北大青鸟深圳嘉华老师将分享一些关于安卓开发教程中的加壳技术。希望能对想学安卓开发、或者是安卓开发工程师们有所帮助。
一、加壳技术原理
所谓apk的加壳技术和pc exe的加壳原理一样,就是在程序的外面再包裹上另外一段代码,保护里面的代码不被非法修改或反编译,在程序运行的时候优先取得程序的控制权做一些我们自己想做的工作。
PC exe的加壳过程如下:
深圳嘉华学校安卓开发教程之加壳技术
二、android apk加壳实现
要想实现加壳需要解决的技术点如下:
(1)怎么第一时间执行我们的加壳程序?
首先根据上面的原理我们在apk中要想优先取得程序的控制权作为android apk的开发人员都知道Application会被系统第一时间调用而我们的程序也会放在这里执行。
(2)怎么将我们的加壳程序和原有的android apk文件合并到一起?
我们知道android apk最终会打包生成dex文件,我们可以将我们的程序生成dex文件后,将我们要进行加壳的apk和我们dex文件合并成一个文件,然后修改dex文件头中的checksum、signature 和file_size的信息,并且要附加加壳的apk的长度信息在dex文件中,以便我们进行解壳保证原来apk的正常运行。加完壳后整个文件的结构如下:
深圳嘉华学校安卓开发教程之加壳技术
(3)怎么将原来的apk正常的运行起来?
按照(2)中的合并方式在当我们的程序首先运行起来后,逆向读取dex文件获取原来的apk文件通过DexClassLoader动态加载。
具体实现如下:
(1)修改原来apk的AndroidMainfest.xml文件,假如原来apk的AndroidMainfest.xml文件内容如下:
1.  <application  
2. android:icon="@drawable/ic_launcher"  
3. android:label="@string/app_name"  
4. android:theme="@style/AppTheme" android:name="com.android.MyApplication" >  
5. </application>
修改后的内容如下:
1. <application  
2.android:icon="@drawable/ic_launcher"  
3. android:label="@string/app_name"  
4. android:theme="@style/AppTheme" android:name="com.android.shellApplication" >  
5.<meta-data android:name="APPLICATION_CLASS_NAME" android:value="com.android.MyApplication"/>
6. </application>
com.android.shellApplication这个就是我们的程序的的application的名称,而
7.<meta-data android:name="APPLICATION_CLASS_NAME" android:value="com.android.MyApplication"/>
是原来的apk的application名称。
(2)合并文件代码实现如下:
深圳嘉华学校安卓开发教程之加壳技术
深圳嘉华学校安卓开发教程之加壳技术
深圳嘉华学校安卓开发教程之加壳技术
深圳嘉华学校安卓开发教程之加壳技术
  1. 在我们的程序中加载运行原来的apk文件,代码如下:
深圳嘉华学校安卓开发教程之加壳技术
深圳嘉华学校安卓开发教程之加壳技术
深圳嘉华学校安卓开发教程之加壳技术
深圳嘉华学校安卓开发教程之加壳技术
深圳嘉华学校安卓开发教程之加壳技术
深圳嘉华学校安卓开发教程之加壳技术
 
 
2016-08-31 16:20:14
相关热词搜索: 深圳安卓培训费用多少

其他资讯

6月22日,嘉华职业教育南山校区就业部老师接受深圳市科脉技术有...
2015-06-22
为检验深圳嘉华学校ACCP软件开发T77班第一学期的学习情况,进一...
2018-08-11
燃烧激情,演唱青春。一年一度的北大青鸟深圳嘉华学校好声音比赛...
2017-12-04
7月11日,北大青鸟深圳嘉华学校软件开发专业T132班举行了第一学...
2016-07-12
嘉华培训机构怎么样?嘉华培训学校地址在哪里?对于选择北大青鸟...
2018-09-07
不会动手的IT工程师不是好的IT工程师!实践出真知,北大青鸟深圳...
2018-11-23
申请嘉华免费学习机会
姓名:
电话:
我适合学IT技术吗?测一测揭晓答案
2022不知道学什么好?
北大青鸟职业规划老师免费规划学习方案
姓名 电话
说明:您的信息通过加密传输,请放心填写,提交后请保持手机通畅,我们将在24小时内与您联系。