自定义签名
1.gradle.properties
MyJniApplication项目根目录的 gradle.properties文件里添加密匙信息
MY_KEYSTORE_FILE=E:\\Project\\AndroidStudioProjects\\signature\\yudan.jks
MY_KEYSTORE_PASSWORD=520520520.
MY_KEY_ALIAS=yudan
MY_KEY_PASSWORD=520520520.
MY_KEYSTORE_FILE= 签名密匙完整路径
MY_KEYSTORE_PASSWORD=密码
MY_KEY_ALIAS=签名密匙名称
MY_KEY_PASSWORD=密码
2.build.gradle
项目里app里的 build.gradle文件 添加:signingConfigs 和 buildTypes
(release版本和debug版本都可以填)
plugins {
alias(libs.plugins.android.application)
}
android {
namespace 'com.ctz.zmws'
compileSdk 34
defaultConfig {
applicationId "com.ctz.zmws"
minSdk 19
targetSdk 34
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
ndkVersion '21.3.6528147' // 确保使用兼容的 NDK 版本
signingConfigs {
release {
keyAlias project.MY_KEY_ALIAS
keyPassword project.MY_KEY_PASSWORD
storeFile file(project.MY_KEYSTORE_FILE)
storePassword project.MY_KEYSTORE_PASSWORD
enableV3Signing true // 使用最新的签名配置选项
enableV4Signing false // 如果需要 v4 签名,可以设置为 true
v2SigningEnabled true
v1SigningEnabled true // 保持兼容性
}
debug {
keyAlias project.MY_KEY_ALIAS
keyPassword project.MY_KEY_PASSWORD
storeFile file(project.MY_KEYSTORE_FILE)
storePassword project.MY_KEYSTORE_PASSWORD
enableV3Signing true // 使用最新的签名配置选项
enableV4Signing false // 如果需要 v4 签名,可以设置为 true
v2SigningEnabled true
v1SigningEnabled true // 保持兼容性
}
}
buildTypes {
release {
minifyEnabled true // 启用混淆
shrinkResources true // 启用资源压缩
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled true // 启用混淆
shrinkResources true // 启用资源压缩
signingConfig signingConfigs.debug
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
externalNativeBuild {
cmake {
path file('src/main/cpp/CMakeLists.txt')
version '3.22.1'
}
}
buildFeatures {
viewBinding true
}
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.0.2' // 更新为最新的版本
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10'
}
}
}
dependencies {
implementation libs.appcompat
implementation libs.material
implementation libs.constraintlayout
implementation files('libs\\fastjson-1.2.9.jar')
implementation files('libs\\okhttp-3.8.0.jar')
implementation files('libs\\okio-1.9.0.jar')
testImplementation libs.junit
androidTestImplementation libs.ext.junit
androidTestImplementation libs.espresso.core
}
3.生成签名密匙
可以在mt管理器里生成,也可以在 Android Studio生成。
混淆压缩dex
1.proguard-rules.pro
app目录下的:proguard-rules.pro 文件里添加以下代码
#-renamesourcefileattribute SourceFile
# 代码混淆和优化
-optimizationpasses 5
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
# 保留应用包中的所有类
-keep class com.ctz.zmws.** { *; }
# 保留 JNI 方法
-keepclasseswithmembernames class * {
native <methods>;
}
# 保留实现 Serializable 接口的类
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
# 保留注解
-keepattributes *Annotation*
# 混淆常量值(数字混淆)
-adaptclassstrings
# 保留主应用类
# 移除所有调试日志
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** w(...);
public static *** v(...);
public static *** i(...);
public static *** e(...);
}
# 保留使用到的第三方库
-keep class com.squareup.** { *; }
-keep class com.google.** { *; }
-keep class org.apache.** { *; }
# 压缩和优化代码
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
-dontoptimize
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
# 保留注解
-keepattributes *Annotation*
# Please add these rules to your existing keep rules in order to suppress warnings.
# This is generated automatically by the Android Gradle plugin.
-dontwarn javax.annotation.Nullable
-dontwarn javax.lang.model.element.Modifier
2.build.gradle
app的build.gradle文件里,添加buildTypes
plugins {
alias(libs.plugins.android.application)
}
android {
namespace 'com.ctz.zmws'
compileSdk 34
......
buildTypes {
release {
minifyEnabled true // 启用混淆
shrinkResources true // 启用资源压缩
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled true // 启用混淆
shrinkResources true // 启用资源压缩
signingConfig signingConfigs.debug
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
无线连接局域网安卓设备
1.环境变量
将Android SDK中的platform-tools增加到系统的Path环境变量中(比如我是D:\ProgramData\Android\sdk\platform-tools),增加完后最好重启下电脑。
是否增加成功可通过命令行或是AndroidStudio的终端输入:adb version查看
2.查看局域网设备ip
手机上查看wifi的网络详情,查看ip
3.连接
数据线连接电脑,然后终端输入adb tcpip 5555 打开5555端口
终端输入(ip+555端口号) adb connect 192.168.10.100:5555
断开连接:adb disconnect,或adb disconnect + IP地址
更换编译的模块
项目目录下的 settings.gradle文件里 更改:include ':app'
pluginManagement {
repositories {
google {
content {
includeGroupByRegex("com\\.android.*")
includeGroupByRegex("com\\.google.*")
includeGroupByRegex("androidx.*")
}
}
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
rootProject.name = "CtzZmws"
include ':app'