230 阅读1分钟

1、ConstraintLayout

使用ConstraintLayout实现文字后紧跟图标一行显示

//水平链 + 以下配置
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"

app:layout_constrainedWidth="true"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintHorizontal_chainStyle="packed"

2、查看依赖

.\gradlew :app:dependencies --configuration releaseRuntimeClasspath > dependencies.txt

releaseRuntimeClasspath : release: Android Studio 右边 gradle -> app -> Tasks -> other -> assembleXXXX 中的 XXXX (不同的 buildType productFlavors 配置)

3、查找某个文件被删的那条 git 提交记录

git log --all -- **/被删除的文件名.*

4、adb 命令获取Activity堆栈

//Android10及之前:
adb shell dumpsys activity activities | findStr "Run

//Android11及之后:
adb shell "dumpsys activity activities | grep '* ActivityRecord{'"

5、修改生成的 apk 和 aab 包名前缀

static def buildTime() {  
    def date = new Date()  
    def formattedDate = date.format('YYYYMMddHHmm')  
    return formattedDate  
}  
  
def getArtifactName = { defaultConfig -> 
    //包名由普通的 app -> 工程名-app版本号-编译时间(YYYYMMddHHmm)
    //对 apk 和 aab 包名都生效
    return "${rootProject.name}-${defaultConfig.versionName}-${buildTime()}"  
}

android {
    defaultConfig {
        ...
        setProperty("archivesBaseName", getArtifactName(defaultConfig))
    }
}

6、查看 so 的编译 ndk 版本

readelf --string-dump=.note.android.ident so-file-path(拖入 so 文件到 Cygwin 窗口中即可)

从Android 原生库 (.so) 中里挖掘一些有用的信息

objdump,readelf,nm,ldd命令不能在Cygwin中使用