200元7天入门UI设计
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
相关热词搜索: 深圳安卓培训费用多少

其他资讯

大浪北大青鸟在哪?大浪附近有北大青鸟吗?我是大浪这边工厂里的...
2016-06-15
10月19日,北大青鸟深圳嘉华学校网络工程师专业三季度月考总结表...
2016-10-19
为全面总结2017年的IT教育工作,凝聚力量共谋发展,鼓励各中心团...
2018-01-29
还记得前段朋友圈里那只Q弹可爱形象3D小熊吗?你是否惊叹IT...
2015-04-01
  2014年9月19日,中国计算机报社、中国计算机行业协会、中国...
2014-09-24
2014年10月11日,深圳嘉华学校举行了人性之善恶为主题的辩论赛。...
2014-10-13
申请嘉华免费学习机会
姓名:
电话:
我适合学IT技术吗?测一测揭晓答案
2021不知道学什么好?
北大青鸟职业规划老师免费规划学习方案
姓名 电话
说明:您的信息通过加密传输,请放心填写,提交后请保持手机通畅,我们将在24小时内与您联系。