javah使用
生成头文件
javah -encoding UTF-8 -classpath D:\Android\Sdk\platforms\android-28\android.jar;. com.pozhu.aiguinative.PaintView
D:\Android\Sdk\platforms\android-28\android.jar;.根据自己的环境设置
adb使用
adb配置
D:\Android\Sdk\platform-tools #加到系统PATH变量
adb kill-server
adb devices #查看设备
#其他命令
#连接雷电模拟器
adb connect 127.0.0.1:5555
adb shell
# 多个模拟器用下面连接
adb devices #查看设备
adb -s emulator-5554 shell
不进入设备shell模式,则执行 :
adb -s emulator-5554 指令(如 adb -s emulator-5554 shell input keyevent 3)
如果只有一个模拟器和一个手机连着电脑; 可以用:
adb -e #来指明是操作模拟器(Emulator);
adb -d #来指明是操作设备(Device)
adb发送文件到手机上
adb push D:\anr\AsaPaint\pathInfokey_ae1e2205fac04cbab0231b8f72ff9417 /sdcard/AsaPaint
adb -s 设备号 push D:\anr\AsaPaint\pathInfokey_ae1e2205fac04cbab0231b8f72ff9417 /sdcard/AsaPaint
adb卸载安装系统软件
adb devices
set device_name=HA1L1SLG #上一步获取的设备名
adb -s %device_name% root
adb -s %device_name% remount
adb -s %device_name% reboot #挂载成功后,需要重启设备
adb -s %device_name% root
adb -s %device_name% remount
adb -s %device_name% shell
rm product/priv-app/InstantMemo/*
exit
adb -s %device_name% uninstall com.lenovo.styluspen
adb -s %device_name% push 安装包路径.apk product/priv-app/InstantMemo
adb -s %device_name% shell
sync
reboot
使用adb从手机拉取apk包
- 找到app对应的包名:
adb shell am monitor
2.启动需要获取包名的应用
或者 :
查看手机上所有app包名:
adb shell pm list package
- 根据要导出的包名,查看app安装路径
adb shell pm path com.xxx.xxx
4.根据app路径,导出apk源文件到pc端
adb pull path_apk out_apk
其他
#查看apk包名 信息
dumpsys package com.qualcomm.qti.sensors.qsensortest
#等待设备启动
adb wait-for-device &&adb logcat >crash.txt
#设置
adb shell setprop persist.xxx.log_level 4
adb root
adb remount
adb shell input keyevent 224 //点亮屏幕
adb shell input keyevent 223 //熄灭屏幕
adb shell input keyevent 26 //按压电源键
adb shell input keyevent 82 //点击菜单键
adb shell input keyevent 3 //home键
adb shell input keyevent 4 //返回键
adb shell input keyevent 24 //音量加
adb shell input keyevent 25 //音量减
adb shell input keyevent 27 //拍照,必须在相机开启的情况下
adb shell getprop ro.build.version.sdk SDK //版本
adb shell getprop ro.build.version.release Android //系统版本
adb shell getprop ro.product.model //型号
adb shell getprop ro.product.brand //品牌
adb shell getprop ro.product.name //设备名
#启动fastboot刷机模式
adb reboot bootloader
ndk日志,系统日志
打开命令行, 在命令行输入: adb logcat . 就可以看到满屏幕的日志啦.
输入 adb logcat --help 可以看到 logcat 的用法提示.
这里有两个参数特别提醒一下, 比较常用:
-
-v XXXX : 用来选择log输出样式, 一般建议 threadtime , 更加详细.
-
-d : 让log一次性输出后马上完毕. 如果没有此命令, logcat 工具会一直输出, 即使更新在界面上.
先清空日志
adb -s AHPEBB1813000561 logcat -c
如果需要保存log到文件, 方便以后查看. 可输入命令:
adb -s emulator-5554 logcat -v threadtime > log.txt
按TAG号提取日志
adb -s AHPEBB1813000561 logcat -v raw -s DrawUnitDebug:E threadtime > log.txt
adb查看ndk调试日志
adb logcat | ndk-stack -sym D:\AndroidStudioProjects\AiGuiNative\app\build\intermediates\cmake\debug\obj\arm64-v8a
或者:
adb logcat > crash.log
ndk-stack -sym D:\AndroidStudioProjects\AiGuiNative\app\build\intermediates\cmake\debug\obj\arm64-v8a -dump crash.log
ndk-stack相对于SDK的位置如下
D:\Android\Sdk\ndk\21.4.7075529\prebuilt\windows-x86_64\bin\ndk-stack
-sym 指定包含符号表的so文件位置。如果程序包含多种CPU架构,需要根据手机的CPU类型,来选择不同的CPU架构目录
我本机没加ndk-stack环境变量,所以整合命令:
adb -s emulator-5554 logcat -v threadtime | D:\Android\Sdk\ndk\21.4.7075529\prebuilt\windows-x86_64\bin\ndk-stack -sym D:\AndroidStudioProjects\AiGuiNative\app\build\intermediates\cmake\debug\obj\arm64-v8a
android-ndk-r16b:
adb -s emulator-5554 logcat -v threadtime | D:\Android\android-ndk-r16b\prebuilt\windows-x86_64\bin\ndk-stack -sym D:\AndroidStudioProjects\AiGuiNative\app\build\intermediates\cmake\debug\obj\arm64-v8a
android-ndk-r21b:
adb -s emulator-5554 logcat -v threadtime | D:\Android\android-ndk-r21b\prebuilt\windows-x86_64\bin\ndk-stack -sym D:\AndroidStudioProjects\AiGuiNative\app\build\intermediates\cmake\debug\obj\arm64-v8a
结果
使用aarch64-linux-android-addr2line
D:\Android\android-ndk-r16b\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin\aarch64-linux-android-addr2line -e D:\AndroidStudioProjects\AiGuiNative\app\build\intermediates\cmake\debug\obj\arm64-v8a\libAiGuiNative.so 0000000000000c6a 000000000221c5bc
0000000000000c6a 000000000221c5bc 为出错位置,以“#两位数字 pc”开头的都是backtrace日志,详细参考:
https://blog.csdn.net/xyang81/article/details/42319789