WEB开发网
开发学院软件开发Java 使用内部(com.android.internal)和隐藏(@hide)API... 阅读

使用内部(com.android.internal)和隐藏(@hide)API手记

 2012-05-12 13:04:44 来源:WEB开发网   
核心提示: 内部API和隐藏API的不同 隐藏API隐藏是为了防止开发人员使用SDK中未完成或者未稳定(接口和架构方面看)的部分,比如,使用内部(com.android.internal)和隐藏(@hide)API手记,Bluetooth API在API Level 5(android 2.0)之前就存在,但在API Leve

 内部API和隐藏API的不同

  隐藏API隐藏是为了防止开发人员使用SDK中未完成或者未稳定(接口和架构方面看)的部分。比如,Bluetooth API在API Level 5(android 2.0)之前就存在,但在API Level 3和4(android 1.5和1.6)中使用@hide隐藏起来了。当该API稳定下来,google的开发人员移除@hide属性,在API Level 5中就有Bluetooth API了。还有很多东西在Level 4和5之间发生了变化。如果程序依赖于某些隐藏API,可能会在新版本的Android OS上运行出现问题。
  而内部API则不计划对外开放。这是android的内部餐厅,开发人员可以视为黑盒子。这里面的东西同样可能发生改变。同样的,如果您的程序依赖于内部API,在新的Android发布后,可能遇到麻烦。
 
  下面总结它们之间的不同:隐藏API = 正在开发中;内部API = 黑盒
 
1)配置SDK路径
1.1)Ubuntu:
Ctrl+Alt+T打开终端
gedit ~/.bashrc
export SDK_HOME=<SDK路径>
export PATH=$PATH:$SDK_HOME/platform-tools:$SDK_HOME/tools
source ~/.bashrc
 
1.2)Windows:
我的电脑->右键属性->高级->环境变量
选择系统变量新建:SDK_HOME=<SDK路径>
选择系统变量Path编辑:%SDK_HOME%\platform-tools;%SDK_HOME%\tools;<原Path>
 
  不一定要配置,只是为了方便启动某些工具==
 
  以下是在Windows XP下操作的~
 
2)AVD Manager创建模拟器并启动
  以下以2.3.3平台为例了~
 
3)从模拟器获取framework.jar
  每个模拟器或者真实设备都有一个与android.jar等价的包用于运行时。我们可以取得此jar,解出原始的.class文件,然后复制到android.jar。
 
adb pull /system/framework/framework.jar C:\
 
4)解压framework.jar获取classes.dex
5)dex2jar反编译得到原classes
  dex2jar下载:http://code.google.com/p/dex2jar/downloads/list
  classes.dex放到<dex2jar目录>内或指定绝对路径,例如为C:\classes.dex时:
 
进入<dex2jar目录>
dex2jar C:\classes.dex
 
  得到classes_dex2jar.jar。
 
6)创建SDK定制平台
  进入<SDK路径>\platforms,复制一份对应平台。2.3.3为API-10,所以如下:
 
复制android-10,重命名为android-10-internals。并如下修改:

1 2  下一页

Tags:使用 内部 com

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接