使用内部(com.android.internal)和隐藏(@hide)API手记
2012-05-12 13:04:44 来源:WEB开发网核心提示:1. 把上述classes_dex2jar.jar移动至android-10-internals目录2. 解压android.jar&classes_dex2jar.jar进各自目录3. 复制classes_dex2jar.jar解压内容全部替换android.jar解压内容4. 重新压缩android.jar解压内容
1. 把上述classes_dex2jar.jar移动至android-10-internals目录
2. 解压android.jar&classes_dex2jar.jar进各自目录
3. 复制classes_dex2jar.jar解压内容全部替换android.jar解压内容
5. 修改build.prop文件,具体如下:
ro.build.version.sdk=10 –> ro.build.version.sdk=-10
6. 修改source.properties文件,具体如下:
Platform.Version=2.3.3 –> Platform.Version=2.3.3.extended
此时重启Eclispe,即可看到我们定制的扩展SDK平台了,此时其实使用隐藏API已经足够了。
注意:重新压缩成的android.jar,看一下目录结构,不要把外层目录也加进去了。
7)定制ADT,去除ForBidden
到目前为止,ADT仍然禁止使用com.android.internals包中的类。
右键任一Android工程->Properties->左侧Java Build Path->右侧Libraries标签->Android XXX->android.jar->Access rules->Forbidden: com/android/internal/**
越过该限制规则,最简单的方式是修改ADT字节码。只需替换"com/android/internal/**”字符串为其它的字符串,比如"com/android/internax/**”。
1. 关闭Eclipse
2. 在<Eclipse目录>\plugins目录,按名称排下序,按c,找到com.android.ide.eclipse.adt_*.jar
3. 复制到外部,解压修改再打包回去,修改如下:
找出com\android\ide\eclipse\adt\internal\project\AndroidClasspathContainerInitializer.class文件
记事本打开文件,查找com/android/internal/**,替换为com/android/internal/**为com/android/internax/**。
4. 回到plugins目录,重命名原先的添加_bak,备份下,把新jar放入。
5. 打开Eclipse,再检查下^^
报错:parseSdkContent failed
com/android/ide/eclipse/adt/internal/project/AndroidClasspathContainerInitializer : Unsupported major.minor version 8241.8224
不能以记事本打开,ASNI?字节码变掉了应该==
用一些Editor以16进制方式打开搜索**,即2A 2A。把l->x,即6C->78。重弄遍,ok^^。备份是好习惯啊!
更多精彩
赞助商链接