您的位置:首页 > 其它

ADB常用的命令以及展讯平台调试小技巧

2017-10-19 10:36 519 查看
1、用adb命令启动apk:

在某些情况下预置到源码的apk没有图标显示在Luancher上,我们可以用反编译工具获取apk的包名和启动activity,然后用adb命令:命令中的包名类名换成对应的apk的包名类名

$ adb shell $ am start -n {包(package)名}/{包名}.{活动(activity)名称}


adb shell am start -n com.android.otaupdater/com.android.otaupdater.MainActivity


2、用adb获取SetitingsProvider数据库文件

Android L (5.1)及以前的版本

Settings参数保存在 /data/data/com.android.providers.settings/databases/settings.db里,里面有三个表global, system, secure.

通常这样查看数据

adb shell sqlite3 data/data/com.android.providers.settings/databases/settings.db “select * from secure”

或者adb pull settings.db到本地,然后用sqlite expert打开即可。

Android M (6.0)开始出现变化

adb shell 进入设备

不同用户放不同的路径下,如果没有创建新用户,则在/data/system/users/0

settings_global.xml, settings_system.xml, settings_secure.xml

我们可以直接通过cat命令去查看也可以adb pull 到本地。

3、用prop命令得到系统的属性值

$ adb shell
getprop persist.sys.cam.has.flash    //查看手机内部的值
setprop  persist.sys.cam.has.flash   false  //设置手机内部的值


4、用adb 查看并解决5037端口被占用

一、首先打开cmd命令行,用
netstat -aon|findstr 5037
命令查看占用5037端口的进程

比如我的是:

TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       3676


二、接下来查看这个占用端口进程执行的任务用命令
tasklist /fi "PID eq 3676"


原来是这个任务占用了我的端口

svchost.exe              3676 Services              0     13,800 K


三、干掉这个进程,使用命令
taskkill /pid 3676 /f
,然后你会发现adb 可以正常使用了

5、使用adb命令截图

adb shell /system/bin/screencap -p /sdcard/screenshot.png


6、查看当前界面运行在哪个Acitivity上

adb shell dumpsys activity | grep "Running activities" -A 7


7、展讯平台制作差分包的命令

6.0系统:

./build/tools/releasetools/ota_from_target_files --block -i old.zip -k build/target/product/security/release/releasekey new.zip update.zip


7.0系统:

./build/tools/releasetools/ota_from_target_files  -i old.zip -k build/target/product/security/release/releasekey new.zip update.zip


差分包编译生成的位置在:

out\target\product\sp9832a_2h11\obj\PACKAGING\target_files_intermediates


8、导出代码中所有的语言资源文件

find ./ -name '*string*.xml' -or -name 'array*.xml' -or -name 'numeric_operator.xml' | xargs -i cp --parents -rf {} ./res_xml_all/


导出俄语的:

find <folder name>/ -regex ".*res\(_.*\)?\/values\(-\(ru\).*\)?\/.*\(string\|array\).*.xml" | xargs -I % cp --parents % <output folder>


9、快速查找代码中的字符

find ./packages/apps/ -name "*.xml" | xargs grep --color "多模式"


10、给apk 签名

一般的系统签名:

java -jar out/host/linux-x86/framework/signapk.jar platform.x509.pem platform.pk8 test.apk test2.apk


展讯平台7.0系统签名需要多引用一个lib文件

java -Xmx2048m -Djava.library.path="out/host/linux-x86/lib64"     -jar out/host/linux-x86/framework/signapk.jar     -w build/target/product/security/platform.x509.pem     build/target/product/security/platform.pk8     vendor/sprd/partner/prebuilt_apps/TouchPal/TouchPal_5.8.4.4.20170405143955_Global_OEM.aligned.apk xx_sign.apk
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: