** 先在飞书文档中添加 applicationId,否则用不了 https://ifbz8hy4hh.feishu.cn/sheets/shtcnGZEHxm4s7GF6f8JQiqqgIb
-
页面状态 加载中,请求失败点击重试等 原理:把页面状态对应成 View 封装到对象中,再在 BaseVmFragment/BaseVmActivity 中动态添加到真实的布局中 再监听页面状态的 LiveData 进行对应 View 的显示隐藏
-
ViewModel 自动请求数据问题 查看 BaseViewModel 中 refreshTrigger,和 page 相关说明 主要原理就是使用 LiveData 观察 这两个对象,对象有变化就进行相应的请求,从而实现自动请求
-
提交新版本到阿里云云效 maven
- 修改 baselib -> build.gradle 中的版本信息
- AndroidStdio右侧 gradle -> baselib -> publishing -> 双击 publishReleasePublicationToMavenRepository
- 如果baselib 下方没有 publishing,Command+,打开设置页 - Experimental - 取消勾选 Do not build Gradle task....
-
在其他项目中使用的方法 0. 项目的 gradle 中
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
id 'com.android.application' version '7.2.2' apply false
id 'com.android.library' version '7.2.2' apply false
id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
}
task clean(type: Delete) {
delete rootProject.buildDir
}
1. 项目的 settings.gradle 文件中,只读密码放心用
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
maven {
url 'https://maven.aliyun.com/repository/public'
}
maven {
credentials {
username '6308a60201acbf842a4d05c0'
password ']5pr_euLTUHE'
}
url 'https://packages.aliyun.com/maven/repository/2124813-release-mj2kic/'
}
maven { url "https://jitpack.io" }
google()
mavenCentral()
}
}
- APP 的 gradle 文件中
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt'
id 'kotlin-parcelize'
id 'maven-publish'
}
kapt 和 applicationId 同级,defaultConfig 中
defaultConfig {
...
multiDexEnabled true
kapt {
includeCompileClasspath = true
arguments {
arg("AROUTER_MODULE_NAME", project.getName())
}
}
ndk {
//设置支持的SO库架构
abiFilters "arm64-v8a", "armeabi-v7a"
}
...
}
dexOptions {
javaMaxHeapSize "4g"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
buildFeatures {
viewBinding = true
dataBinding = true
}
lintOptions {
checkReleaseBuilds false
abortOnError false
}
使用baselib
implementation 'com.gzp1124.baselib:baselib:1.4.0'
kapt "com.alibaba:arouter-compiler:1.5.2"
kapt 'androidx.annotation:annotation:1.3.0'
用到 xui 的话添加
// XUI UI库 https://github.com/xuexiangjys/XUI/wiki
implementation 'com.github.xuexiangjys:XUI:1.1.9'
-
在 gradle.properties 中添加 android.useAndroidX=true android.enableJetifier=true
-
创建 Application 并在 mainifast.xml 中指定
-
使用欢迎页让用户接受隐私政策,不接受隐私政策不进入APP 因为最新的隐私政策原因,不这么做APP可能无法上线 参考:https://juejin.cn/post/6990643611130363917 步骤:
- Settings.useSplashCheckPrivacy = true
- Manifast 中 application 下 添加如下代码,name 固定,value 是欢迎页的全路径
- 欢迎页 CheckApp.getApp().isUserAgree() 来判断是否接受,注意 onResume 也要判断 查看隐私政策详情也要在欢迎页打开,不能跳转其他页面打开
- 点击接受:CheckApp.getApp().agree(this,false,getIntent().getExtras()); 执行完上面的代码,application 中的 initSDK() 会自动进行执行。
- 然后进行后续的继续操作。打开新页面之类的。
更多信息查看 说明.txt ,或者看代码