在前面的文章中,我讲述了如何创建定制的original-android.jar和创建定制的android平台以使用original-android.jar。这仅仅能够使用隐藏API,还为内部API留有一个障碍: ADT。ADT定义了一个规则禁止使用来自com.android.internal的类。 ? 有几种方法可以越过该限制规则: 1)完整的ADT源代码可以下载,可以移除或者修改代码,编译然后安装新的定制版本ADT。不好的地方是您必须配置一台64位linux系统,下载源码,编译之。这会花费一些时间,当新版本的ADT出来后,您又需要重新来过。 2)另外一种方式是修改ADT的字节码,只需替换"com/android/inter/**”字符串为其它的字符串,比如"com/android/internax”。 第二种方法可通过脚本自动化完成,也不需要访问源码,在windows下也能工作,这也是我在本文中说明第二种方式的原因。 进入到您的eclipse的plugins文件夹,找出名为com.android.ide.eclipse.adt_*.jar的文件。做一个备份(以防修改错了),另外复制一份改文件到一个单独的"experimental”文件夹,在那里进行字节码修改。 修改*.jar为*.zip,解压文件到一个单独的文件夹,下面就是我所得到的: 现在进入到com/android/ide/eclipse/adt/internal/project子目录,找出AndroidClasspathContainerInitializer.class文件。 该文件包含了字符串"com/android/internal/**”,下一步就是替换该字符串为其它的字符串,如"com/android/internax/**”。改变字符串的长度可能没什么问题,但最好只替换一个字母,保持长度相同。 我是用notepad++进行替换的,因为它支持非打印字符,而且在编辑打印字符时不会修改非打印字符。 修改完后,保存文件,zip压缩文件夹,文件名和原始版本一样。以我的为例:com.android.ide.eclipse.adt_8.0.1.v201012062107-82219.zip,然后重命名为*.jar。 注意:请确保您正确的压缩了文件,可以比较一下修改的zip和原始的zip的内部目录结构。 现在删除eclipse plugins文件夹下的原始ADT*.jar文件,复制经过修改的版本,重启eclipse。 如果没有问题,则会如下图所示:修改ADT字节码
步骤总结:
详细解决方案
应用内部(com.android.internal)和隐藏(@hide)API[第4部分,定制ADT]
热度:74 发布时间:2016-05-01 19:18:26.0
相关解决方案
- The server encountered an internal error () that prevented it from fulfilling th解决方案
- 'Update Progress' has encountered a problem An internal error has occurred解决方案
- 大家帮帮忙呀The server encountered an internal error () that prevented it解决方法
- SOS-(奇怪现象)服务器暂不可用500 internal server error,该怎么解决
- WEBstruts The server encountered an internal error () that prevented it fr解决思路
- 'Update Progress' has encountered a problem An internal error has occurred解决方案
- android 读取byte[]中的元素解决方案
- android 标题栏兑现方式
- android 中Activity向BroadcastReceiver发送数据,该怎么解决
- Android 4.0 为什么模拟器老是提示小弟我谷歌拼音输入法已停止
- android:getSharedPreferences() 这是哪个类的方法解决思路
- android 怎么判断一个程序是否联网
- android 大量数据按周分组,该如何解决
- android RadioButton如何设置默认选中
- ksoap2-android-这个包,连接webService怎么设置超时
- android 怎么重新设置锚点
- android UI界面设计解决方案
- android 图片对象获取的有关问题
- android 怎么调用淘宝支付宝接口
- Android 沿袭InputMethodService自定义输入法
- android 关于服务连接的疑义
- android 两个activity如何通信
- Error 500-Internal Server Error 如何解决
- android 怎么实现对view的放大和缩小
- android 教程解决方法
- android ID,该如何处理
- 准备复习2-3个月,看java+android,请问有经验者,怎么看效果最好》
- android UI线程与AsyncTask的有关问题
- Error 500--Internal Server Error
- Error 500-Internal Server Error