IDEA的使用

IDEA的使用

Gradle

  • 自动给debug编译加上后缀
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    buildTypes {
    debug {
    debuggable true
    applicationIdSuffix ".debug"
    versionNameSuffix "-debug"
    }
    release {
    minifyEnabled true
    shrinkResources true
    proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
    }
  • 只编译armV8原生库
    1
    2
    3
    4
    5
    defaultConfig {
    ndk {
    abiFilters 'arm64-v8a'
    }
    }
  • Kotlin生成可执行jar包
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    application {
    mainClassName = 'MainKt'
    }

    jar {
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    manifest {
    attributes["Main-Class"] = "MainKt"
    }
    from {
    (configurations.runtimeClasspath).collect {
    it.isDirectory() ? it : zipTree(it)
    }
    }
    }
  • Gradle控制台中文乱码
    在IDEA菜单栏点击:help->Edit Custom VM Options,在打开的文件中追加:
    1
    -Dfile.encoding=UTF-8
    然后重启IDEA生效。
  • 自定义Gradle home路径
    添加环境变量GRADLE_USER_HOME并设置值为目标路径
  • Gradle全局镜像站
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //在Gradle home路径下新建init.gradle文件添加以下内容
    allprojects{
    repositories {
    maven {
    url = uri("https://maven.aliyun.com/repository/public/")
    }
    mavenCentral()
    }
    }

Android中使用Rust

在Cargo安装目录下编辑Config.toml,新增以下内容

1
2
3
[target.aarch64-linux-android]
ar = ".../llvm-ar.exe"
linker = ".../aarch64-linux-android<version>-clang.cmd"

编译Android Java文件为C头文件

1
javac -cp .../AndroidSDK/platforms/android-<version>/android.jar -h . ./ndk.java

当编译选项启用lto后,链接失败
找到aarch64-linux-android-clang.cmd文件修改

1
if "%1" == "-cc1" goto :L

1
if "%~1" == "-cc1" goto :L

使用IDEA动态调试smail

1
2
3
4
adb forward tcp:<port> jdwp:<pid> #指定设备端口进行调试
adb shell am set-debug-app -w <package> #设置应用为调试模式
adb shell am clear-debug-app #清除调试
adb shell dumpsys activity | grep :<package> #获取pid