android studio发布release版本apk

  1. 生成keystore 对应用签名用。
    keytool -genkey -v -keystore android.keystore -alias android -keyalg RSA -validity 20000

​ 然后按照提示输入即可。

  1. 打包release版本apk安装包。

Android Studio内点击Build -> Generate Singed Bundle or Apk -> apk -> 选择上一步生成的keystore,然后下一步生成release版本

  1. 自定义打包生成的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日志举例

  1. 首先使用adb连接到设备
adb devices

成功连接会显示如下:

List of devices attached
SCOPA7O3AOVRQG  device
  1. 查找出app的包名
adb shell pm list packages -3

找到包名为net.htc.app,就是我们要找的app的包名

  1. 查看对应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已经停止运行。

  1. 根据进程号过滤日志
adb shell "logcat -d *:D | grep [pid] "
adb logcat > D:\log.txt