android studio发布release版本apk
- 生成keystore 对应用签名用。
keytool -genkey -v -keystore android.keystore -alias android -keyalg RSA -validity 20000
然后按照提示输入即可。
- 打包release版本apk安装包。
Android Studio内点击Build -> Generate Singed Bundle or Apk -> apk -> 选择上一步生成的keystore,然后下一步生成release版本
- 自定义打包生成的apk名称。
默认打包生成的app名字都会是app-release.apk,如果想要打包生成的安装包名字带上日期版本号,在app目录下的build.gradle中加入
defaultConfig {
......
}
//加入以下代码
//和defaultConfig同级
android.applicationVariants.all {
variant ->
variant.outputs.all{
def date = new Date().format("yyyyMMdd" , TimeZone.getTimeZone("GMT+08"))
outputFileName = "HtcApp_"+"${variant.buildType.name}_v${versionName}_${date}.apk"
}
}
用adb工具调试app
macos安装adb
brew install android-platform-tools
adb常用命令
#测试设备连接
adb devices
#会列出所有已经连接开发者模式的设备
#查看设备的安卓版本
adb shell getprop ro.build.version.release
#安装apk
adb install [apk文件路径]
#卸载apk
adb uninstall [包名]
#启动app
adb shell am start [包名]/.[Activity名]
#停止app
adb shell am force-stop [包名]
#抓取日志
adb shell "ps | grep [包名]" #找出pid
adb shell "logcat | grep [pid]"
#查看安装了哪些package
adb shell pm list packages
adb shell pm list packages -d #####只输出禁用的包。
adb shell pm list packages -e #####只输出启用的包。
adb shell pm list packages -s #####只输出系统的包。
adb shell pm list packages -i #####只输出包和安装信息(安装来源)。
adb shell pm list packages -u #####只输出包和未安装包信息(安装来源)。
adb shell pm list packages -i #####只输出包和安装信息(安装来源)。
adb shell pm list packages -f #####输出包和包相关联的文件
adb shell pm list packages -3 #####输出所有第三方包。
#查看当前前台运行的Activity
adb shell dumpsys activity activities | grep mFocusedActivity
抓取指定APP日志举例
- 首先使用adb连接到设备
adb devices
成功连接会显示如下:
List of devices attached
SCOPA7O3AOVRQG device
- 查找出app的包名
adb shell pm list packages -3
找到包名为net.htc.app
,就是我们要找的app的包名
- 查看对应app是否在运行
adb shell "ps | grep net.htc.app"
若正在运行,会输出
u0_a29 1696 191 813900 80368 ep_poll b1cff1a8 S net.htc.app
其中1696
就是当前app的进程号(pid)
如果没有输出,则表示app已经停止运行。
- 根据进程号过滤日志
adb shell "logcat -d *:D | grep [pid] "
adb logcat > D:\log.txt