// 访问云端数据库
implementation 'cn.leancloud:storage-android:8.1.4'
// 即时通讯和推送
implementation 'cn.leancloud:realtime-android:8.1.4'
// 多线程
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
// android 混合推送
// implementation 'cn.leancloud:mixpush-android:8.1.4'
class App : Application() {
override fun onCreate() {
super.onCreate()
// 开启调试日志 每次网络请求的json文本和请求头都会打印出来
LeanCloud.setLogLevel(LCLogger.Level.DEBUG)
// 官网路径:控制台 > 设置 > 应用凭证
LeanCloud.initialize(
/*context*/,
/*appId 服务器地址下的后端程序Id*/,
/*appKey 客户端使用公开访问密钥,服务器使用私有访问密钥*/,
/*serverURL 服务器地址,用于发送增删改查请求*/
)
// 在 LeanCloud#initialize 之后调用,禁止自动发送推送服务的 login 请求。
// 只使用即时通讯,不使用推送 (LiveQuery 技术实现上依赖即时通讯的长连接)
LCIMOptions.getGlobalOptions().setDisableAutoLogin4Push(true)
// or
// 只使用 LiveQuery (不使用即时通讯和其他推送服务)
PushService.startIfRequired(android.content.Context context)
}
}
<--! 添加网络权限 -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:name=".App"
...
>
<--! 即时通讯和推送 -->
<service android:name="cn.leancloud.push.PushService"/>
<receiver android:name="cn.leancloud.push.LCBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.USER_PRESENT"/>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
...
// 进入 jdk目录
cd C:\Program Files\Android\android-studio\jre\bin
// 签名文件
keytool -list -v -keystore x:\x\xx.jks
// 获取指定签名证书的 SHA256 指纹
应用包名加签名证书指纹进行验证
官网路径:控制台 > 设置 > 安全中心 > Android 安全设置
下载 leancloud-jniLibs ,解压获取 jniLibs 文件夹
移动到:/app/src/main/jniLibs/
添加内容:/app/build.gradle/
android {
// 增加自动签名的内容
signingConfigs {
config {
keyAlias '{your key alias}'
keyPassword '{your key password}'
storeFile file('{your store file full name}')
storePassword '{your store password}'
}
}
buildTypes {
debug {
// 增加签名设置
signingConfig signingConfigs.config
}
release {
// 增加签名设置
signingConfig signingConfigs.config
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
class App : Application() {
override fun onCreate() {
super.onCreate()
// 开启调试日志 每次网络请求的json文本和请求头都会打印出来
LeanCloud.setLogLevel(LCLogger.Level.DEBUG)
// 官网路径:控制台 > 设置 > 应用凭证
LeanCloud.initializeSecurely(
/*context*/,
/*appId 服务器地址下的后端程序Id*/,
/*serverURL 服务器地址,用于发送增删改查请求*/
)
// 在 LeanCloud#initialize 之后调用,禁止自动发送推送服务的 login 请求。
LCIMOptions.getGlobalOptions().setDisableAutoLogin4Push(true)
// 只使用 LiveQuery (不使用即时通讯和其他推送服务)
PushService.startIfRequired(android.content.Context context)
}
}
# proguard.cfg
-keepattributes Signature
-dontwarn com.jcraft.jzlib.**
-keep class com.jcraft.jzlib.** { *;}
-dontwarn sun.misc.**
-keep class sun.misc.** { *;}
-dontwarn retrofit2.**
-keep class retrofit2.** { *;}
-dontwarn io.reactivex.**
-keep class io.reactivex.** { *;}
-dontwarn sun.security.**
-keep class sun.security.** { *; }
-dontwarn com.google.**
-keep class com.google.** { *;}
-dontwarn cn.leancloud.**
-keep class cn.leancloud.** { *;}
-keep public class android.net.http.SslError
-keep public class android.webkit.WebViewClient
-dontwarn android.webkit.WebView
-dontwarn android.net.http.SslError
-dontwarn android.webkit.WebViewClient
-dontwarn android.support.**
-dontwarn org.apache.**
-keep class org.apache.** { *;}
-dontwarn okhttp3.**
-keep class okhttp3.** { *;}
-keep interface okhttp3.** { *; }
-dontwarn okio.**
-keep class okio.** { *;}
-keepattributes *Annotation*