Android开发 javah,adb使用

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包
  1. 找到app对应的包名:
adb shell am monitor

2.启动需要获取包名的应用

或者 :

查看手机上所有app包名:

adb shell pm list package
  1. 根据要导出的包名,查看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 的用法提示.

这里有两个参数特别提醒一下, 比较常用:

  1. -v XXXX : 用来选择log输出样式, 一般建议 threadtime , 更加详细.

  2. -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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值