[关闭]
@act262 2017-05-24T14:23:01.000000Z 字数 3082 阅读 1567

Android framework下的工具使用说明

Android_Tools Android_Framework


framework源码位置:
https://android.googlesource.com/platform/frameworks/

和应用相关的多数是base下的模块:
https://android.googlesource.com/platform/frameworks/base/

以此部分模块对应在Android Sdk源码中的位置:
Sdk\sources\android-X\com\android\

和 framework 下相关工具的位置是 :
android / platform / frameworks / base / cmds


转载:
http://my.oschina.net/DragonWang/blog/62082

Android系统源码目录 system/framework 下各个jar包的用途


对应的命令的jar源码在platform/framework/base/cmds/xxx目录下,这些命令都有相应的可执行脚本在/system/bin/目录下,可以在adb shell中直接执行上面的工具命令.

e.g.
使用的settings命令:

  1. # 查看是否开启(1开启,0关闭)
  2. adb shell settings get global adb_enabled
  3. # 列出global下所有的属性值
  4. adb shell settings list global
  5. # 开启adb调试
  6. adb shell settings put global adb_enabled 1
  7. # 关闭adb调试
  8. adb shell settings put global adb_enabled 0

在/system/bin目录下有这么个可执行脚本

  1. # Script to start "settings" on the device
  2. #
  3. base=/system
  4. export CLASSPATH=$base/framework/settings.jar
  5. exec app_process $base/bin com.android.commands.settings.SettingsCmd "$@"

脚本直接执行的是exec app_process命令(app_process是可执行命令,在/system/bin目录下),com.android.commands.settings.SettingsCmd类作为参数传入,实际上其内部执行的是settings.jar的SettingsCmd里面的main方法(参考:Android中启动JAVA程序多种方式)。
有些权限执行需要su权限才能执行,这样修改系统属性而不用使用java层的代码,需要系统签名级别的应用才能调用的一些API。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注