From 7af7cd64e65cfb98beb8480c1f9e1d08b8e6f7b8 Mon Sep 17 00:00:00 2001 From: iven Date: Sun, 7 Jun 2026 20:17:19 +0800 Subject: [PATCH] =?UTF-8?q?feat(app):=20E.1=20=E5=86=85=E6=B5=8B=20APK=20?= =?UTF-8?q?=E6=9E=84=E5=BB=BA=E9=85=8D=E7=BD=AE=20=E2=80=94=20Android=20?= =?UTF-8?q?=E5=93=81=E7=89=8C=E5=8C=96=20+=20=E7=AD=BE=E5=90=8D=20+=20ProG?= =?UTF-8?q?uard?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新应用名称为「暖记」(AndroidManifest + strings.xml) - 添加必要权限: INTERNET, CAMERA, READ_MEDIA_IMAGES, READ_EXTERNAL_STORAGE - 生成 release 签名密钥 (RSA 2048, 10000 天有效期) - 配置 ProGuard/R8 代码混淆 + 资源压缩 - 品牌化启动页: 奶油白背景 + 珊瑚色圆形「暖」字 logo - 品牌化应用图标: 各密度 mipmap (mdpi~xxxhdpi) - 添加阿里云 Maven 镜像加速依赖下载 - AGP 9.x 兼容: 自动为旧 Flutter 插件注入 namespace - Gradle 性能优化: 并行编译 + 构建缓存 --- app/android/app/build.gradle.kts | 36 +++++++++++++---- app/android/app/proguard-rules.pro | 38 ++++++++++++++++++ app/android/app/src/main/AndroidManifest.xml | 15 ++++++- .../main/res/drawable/launch_background.xml | 12 +++--- .../res/drawable/launch_background_dark.xml | 10 +++++ .../app/src/main/res/drawable/launch_logo.png | Bin 0 -> 24386 bytes .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 544 -> 4434 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 442 -> 2866 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 721 -> 6042 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 1031 -> 9154 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 1443 -> 12446 bytes .../app/src/main/res/values-night/colors.xml | 4 ++ .../app/src/main/res/values-night/styles.xml | 13 ++---- .../app/src/main/res/values-zh/strings.xml | 4 ++ .../app/src/main/res/values/colors.xml | 9 +++++ .../app/src/main/res/values/strings.xml | 4 ++ .../app/src/main/res/values/styles.xml | 11 +---- app/android/build.gradle.kts | 25 ++++++++++++ app/android/gradle.properties | 5 +++ app/android/settings.gradle.kts | 4 ++ 20 files changed, 155 insertions(+), 35 deletions(-) create mode 100644 app/android/app/proguard-rules.pro create mode 100644 app/android/app/src/main/res/drawable/launch_background_dark.xml create mode 100644 app/android/app/src/main/res/drawable/launch_logo.png create mode 100644 app/android/app/src/main/res/values-night/colors.xml create mode 100644 app/android/app/src/main/res/values-zh/strings.xml create mode 100644 app/android/app/src/main/res/values/colors.xml create mode 100644 app/android/app/src/main/res/values/strings.xml diff --git a/app/android/app/build.gradle.kts b/app/android/app/build.gradle.kts index e60d1ab..d3d6d57 100644 --- a/app/android/app/build.gradle.kts +++ b/app/android/app/build.gradle.kts @@ -1,9 +1,19 @@ +import java.util.Properties +import java.io.FileInputStream + plugins { id("com.android.application") // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id("dev.flutter.flutter-gradle-plugin") } +// 从 key.properties 加载签名配置 +val keystorePropertiesFile = rootProject.file("key.properties") +val keystoreProperties = Properties() +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(FileInputStream(keystorePropertiesFile)) +} + android { namespace = "com.nuanji.nuanji_app" compileSdk = flutter.compileSdkVersion @@ -15,21 +25,33 @@ android { } defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId = "com.nuanji.nuanji_app" - // You can update the following values to match your application needs. - // For more information, see: https://flutter.dev/to/review-gradle-config. - minSdk = flutter.minSdkVersion + minSdk = 24 // Android 7.0+ — 支持 Isar 原生库 + CameraX targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName } + signingConfigs { + create("release") { + if (keystorePropertiesFile.exists()) { + keyAlias = keystoreProperties["keyAlias"] as String + keyPassword = keystoreProperties["keyPassword"] as String + storeFile = file(keystoreProperties["storeFile"] as String) + storePassword = keystoreProperties["storePassword"] as String + } + } + } + buildTypes { release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.getByName("debug") + signingConfig = signingConfigs.getByName("release") + isMinifyEnabled = true + isShrinkResources = true + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) } } } diff --git a/app/android/app/proguard-rules.pro b/app/android/app/proguard-rules.pro new file mode 100644 index 0000000..ac3bd76 --- /dev/null +++ b/app/android/app/proguard-rules.pro @@ -0,0 +1,38 @@ +# 暖记 ProGuard 规则 +# 保留 Flutter 引擎 +-keep class io.flutter.app.** { *; } +-keep class io.flutter.plugin.** { *; } +-keep class io.flutter.util.** { *; } +-keep class io.flutter.view.** { *; } +-keep class io.flutter.** { *; } +-keep class io.flutter.plugins.** { *; } + +# Isar 数据库 — 保留 native 调用 +-keep class com.isor.** { *; } +-keep class isar.** { *; } +-keepclassmembers class ** { + native ; +} + +# Dio 网络库 +-dontwarn okhttp3.** +-dontwarn okio.** +-keep class okhttp3.** { *; } +-keep interface okhttp3.** { *; } + +# Gson / JSON 序列化 +-keepattributes Signature +-keepattributes *Annotation* +-keep class com.google.gson.** { *; } + +# freezed 生成的类 — 保留 JSON 序列化 +-keepclassmembers class **.models.** { + *** fromJson(...); + *** toJson(); +} + +# 保留所有序列化相关类 +-keepclassmembers class * { + *** INSTANCE; + *** Companion; +} diff --git a/app/android/app/src/main/AndroidManifest.xml b/app/android/app/src/main/AndroidManifest.xml index 791abdc..6432866 100644 --- a/app/android/app/src/main/AndroidManifest.xml +++ b/app/android/app/src/main/AndroidManifest.xml @@ -1,9 +1,20 @@ + + + + + + + + + + + android:networkSecurityConfig="@xml/network_security_config" + android:usesCleartextTraffic="false"> - + - - - - + android:src="@drawable/launch_logo" /> + diff --git a/app/android/app/src/main/res/drawable/launch_background_dark.xml b/app/android/app/src/main/res/drawable/launch_background_dark.xml new file mode 100644 index 0000000..e7e0f3d --- /dev/null +++ b/app/android/app/src/main/res/drawable/launch_background_dark.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/app/android/app/src/main/res/drawable/launch_logo.png b/app/android/app/src/main/res/drawable/launch_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e91b019466a7794ce9b00f65d85a922c9bd316b5 GIT binary patch literal 24386 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%0A&pig?2udDn&v}Q?!(Y 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 YALK2|P=}O0i~s-t07*qoM6N<$g0ZoGLI3~& literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ diff --git a/app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 17987b79bb8a35cc66c3c1fd44f5a5526c1b78be..b33c1175fa0425e6a9ac55d548ac27579d5701a0 100644 GIT binary patch literal 2866 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 QU;qFB07*qoM6N<$f*MeL82|tP literal 442 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 literal 721 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy!iOI#yLg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+5i=O3-AeX1=1l$e`s#|#^}+&7(N@w0CIr{$Oe+Uk^K-ZP~83C zcc@hG6rikF&NPT(23>y!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ diff --git a/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index d5f1c8d34e7a88e3f88bea192c3a370d44689c3c..799ec0444a11042169f09c6f4766d7e94e399fd8 100644 GIT binary patch literal 9154 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 diff --git a/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 4d6372eebdb28e45604e46eeda8dd24651419bc0..f11fb2fc8bf8da25018d3d01c68b4a78f7d27eca 100644 GIT binary patch literal 12446 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 literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` diff --git a/app/android/app/src/main/res/values-night/colors.xml b/app/android/app/src/main/res/values-night/colors.xml new file mode 100644 index 0000000..beb5395 --- /dev/null +++ b/app/android/app/src/main/res/values-night/colors.xml @@ -0,0 +1,4 @@ + + + #1A1614 + diff --git a/app/android/app/src/main/res/values-night/styles.xml b/app/android/app/src/main/res/values-night/styles.xml index 06952be..ba9470a 100644 --- a/app/android/app/src/main/res/values-night/styles.xml +++ b/app/android/app/src/main/res/values-night/styles.xml @@ -1,17 +1,10 @@ - + - diff --git a/app/android/app/src/main/res/values-zh/strings.xml b/app/android/app/src/main/res/values-zh/strings.xml new file mode 100644 index 0000000..57719bb --- /dev/null +++ b/app/android/app/src/main/res/values-zh/strings.xml @@ -0,0 +1,4 @@ + + + 暖记 + diff --git a/app/android/app/src/main/res/values/colors.xml b/app/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..ef034bd --- /dev/null +++ b/app/android/app/src/main/res/values/colors.xml @@ -0,0 +1,9 @@ + + + + #FFF8F0 + #1A1614 + #E07A5F + #2D2420 + #F0E8DF + diff --git a/app/android/app/src/main/res/values/strings.xml b/app/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..57719bb --- /dev/null +++ b/app/android/app/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + + 暖记 + diff --git a/app/android/app/src/main/res/values/styles.xml b/app/android/app/src/main/res/values/styles.xml index cb1ef88..fcc461a 100644 --- a/app/android/app/src/main/res/values/styles.xml +++ b/app/android/app/src/main/res/values/styles.xml @@ -1,17 +1,10 @@ - + - diff --git a/app/android/build.gradle.kts b/app/android/build.gradle.kts index dbee657..2147f68 100644 --- a/app/android/build.gradle.kts +++ b/app/android/build.gradle.kts @@ -1,5 +1,8 @@ allprojects { repositories { + // 阿里云 Maven 镜像 — 加速中国大陆依赖下载 + maven { url = uri("https://maven.aliyun.com/repository/google") } + maven { url = uri("https://maven.aliyun.com/repository/central") } google() mavenCentral() } @@ -15,6 +18,28 @@ subprojects { val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) project.layout.buildDirectory.value(newSubprojectBuildDir) } + +subprojects { + // 为缺少 namespace 的旧 Flutter 插件自动注入 namespace + // 解决 AGP 9.x 要求必须指定 namespace 的问题 + plugins.withId("com.android.library") { + val android = project.extensions.getByName("android") + if (android is com.android.build.gradle.LibraryExtension && android.namespace == null) { + val manifestFile = project.file("src/main/AndroidManifest.xml") + if (manifestFile.exists()) { + val packageName = manifestFile.readLines() + .firstOrNull { it.contains("package=") } + ?.let { line -> + Regex("package=\"([^\"]+)\"").find(line)?.groupValues?.get(1) + } + if (packageName != null) { + android.namespace = packageName + } + } + } + } +} + subprojects { project.evaluationDependsOn(":app") } diff --git a/app/android/gradle.properties b/app/android/gradle.properties index e96108c..2f4b32d 100644 --- a/app/android/gradle.properties +++ b/app/android/gradle.properties @@ -4,3 +4,8 @@ android.useAndroidX=true android.newDsl=false # This builtInKotlin flag was added by the Flutter template android.builtInKotlin=false +# 构建性能优化 +org.gradle.parallel=true +org.gradle.caching=true +# 暂不启用 configuration-cache(与 init 脚本冲突) +# org.gradle.configuration-cache=true diff --git a/app/android/settings.gradle.kts b/app/android/settings.gradle.kts index c21f0c5..2788107 100644 --- a/app/android/settings.gradle.kts +++ b/app/android/settings.gradle.kts @@ -11,6 +11,10 @@ pluginManagement { includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") repositories { + // 阿里云 Maven 镜像 — 加速中国大陆依赖下载 + maven { url = uri("https://maven.aliyun.com/repository/google") } + maven { url = uri("https://maven.aliyun.com/repository/central") } + maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin") } google() mavenCentral() gradlePluginPortal()