From b8e328d90368e092286f6661ea71d65d37e88bc0 Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期五, 28 九月 2018 22:02:00 +0800
Subject: [PATCH] update 极速SDK资源及sdk接入
---
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_nor.xml | 6
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/AndroidManifest.xml | 82
Project/js_sdk/proguard-rules.pro | 55
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/values/llsdk_styles.xml | 45
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_floating_icon.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_floating_view.xml | 5
Project/settings.gradle | 2
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_selector_btn.xml | 24
Project/js_sdk/src/game_jsgame/res/layout/llsdk_include_title.xml | 34
Project/js_sdk/src/game_jsgame/res/layout/llsdk_pay_view.xml | 162 +
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_verify_change_view.xml | 69
Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_floating_icon.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_gray_border.xml | 6
Project/js_sdk/src/main/java/com/secondworld/univeralsdk/LogUtil.java | 114
Project/js_sdk/libs/buglyagent.jar | 0
Project/js_sdk/src/main/AndroidManifest.xml | 105
Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_floating_arrow_l.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/values/llsdk_colors.xml | 9
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_demo_activity_main.xml | 116
Project/js_sdk/src/game_jsgame/res/values/llsdk_strings.xml | 35
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_back_big_right.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/libs/lingleisdk-2.1.0.jar | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/libs/lingleisdk-2.1.0.jar | 0
Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_gray_border.xml | 6
Project/js_sdk/src/game_jsgame/res/layout/llsdk_terms_view.xml | 46
Project/js_sdk/src/main/java/com/secondworld/univeralsdk/CrashCatchUtil.java | 233 +
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/layout/llsdk_verify_view.xml | 70
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_shape_gray_input.xml | 6
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/assets/llsdk_config.xml | 5
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable/llsdk_bg_nor.xml | 6
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable/llsdk_selector_btn.xml | 24
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/assets/llsdk_config.xml | 9
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_login_view.xml | 177 +
Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_down.png | 0
Project/js_sdk/libs/jcore-android-1.2.1.jar | 0
Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_back_big_right.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/anim/llsdk_view_hide.xml | 15
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/Android-SDK集成手册.html | 337 ++
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_back2.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_gary_no_top.xml | 15
SDK相关/极速SDK/iOS/SDK及SDK接入文档/服务端接入文档.pdf | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/values/llsdk_strings.xml | 35
Project/js_sdk/src/game_jsgame/res/drawable/llsdk_selector_forget_pwd.xml | 22
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/libs/android-support-v4.jar | 0
SDK相关/极速SDK/iOS/苹果内购ID证书签名/少年酒剑仙-签名及证书.zip | 0
Project/js_sdk/src/game_jsgame/res/layout/llsdk_login_view.xml | 177 +
Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_gary_nor.xml | 6
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_line_blue.xml | 9
Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_forget_pwd_pre.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_include_title.xml | 34
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/values/llsdk_colors.xml | 9
Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_gary_no_top.xml | 15
Project/js_sdk/src/game_jsgame/res/drawable/llsdk_shape_blue.xml | 21
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_floating_arrow_r.png | 0
Project/js_sdk/src/game_jsgame/java/com/secondworld/univeralsdk/JSPlatformUtil.java | 174 +
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_auth_view.xml | 64
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/layout/llsdk_pay_view.xml | 162 +
Project/js_sdk/src/game_jsgame/res/drawable/llsdk_line_blue.xml | 9
Project/js_sdk/src/main/res/drawable-hdpi/jpush_richpush_progressbar.xml | 20
Project/js_sdk/src/main/java/com/secondworld/univeralsdk/CodeU2A.java | 84
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/values/llsdk_styles.xml | 45
Project/js_sdk/src/main/java/com/secondworld/univeralsdk/UniqueID.java | 226 +
Project/js_sdk/libs/unity-classes.jar | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_shape_blue.xml | 21
SDK相关/极速SDK/iOS/苹果内购ID证书签名/少年酒剑仙-内购参数沙箱信息-0928.xlsx | 0
Project/js_sdk/libs/okio.jar | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable/llsdk_bg_gray_border.xml | 6
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable/llsdk_shape_blue.xml | 21
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/app.iml | 113
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable/llsdk_line_blue.xml | 9
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_register_view.xml | 82
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_white_nor.xml | 8
Project/js_sdk/src/main/java/com/secondworld/univeralsdk/DebugUtil.java | 59
Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_forget_pwd_nor.png | 0
Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_delete.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/.gitignore | 1
Project/js_sdk/libs/jpush-android-3.1.3.jar | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_floating_arrow_r.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_forget_pwd_nor.png | 0
Project/js_sdk/src/main/java/com/secondworld/univeralsdk/JPushReceiver.java | 147 +
Project/js_sdk/src/game_jsgame/res/drawable/llsdk_selector_btn.xml | 24
SDK相关/极速SDK/Android/SDK及接入文档/服务端接入文档.pdf | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_gary_nor.xml | 6
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_forget_pwd_pre.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable/llsdk_bg_green_border.xml | 6
Project/js_sdk/src/main/java/com/secondworld/univeralsdk/BatteryUtil.java | 113
Project/js_sdk/src/game_jsgame/res/layout/llsdk_verify_change_view.xml | 69
Project/js_sdk/src/main/java/com/secondworld/univeralsdk/FileUtil.java | 179 +
Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_close.png | 0
Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_floating_arrow_r.png | 0
Project/js_sdk/src/main/res/drawable-hdpi/jpush_richpush_btn_selector.xml | 21
Project/js_sdk/src/main/res/values/colors.xml | 6
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable/llsdk_bg_gary_nor.xml | 6
Project/js_sdk/src/main/java/com/secondworld/univeralsdk/UniversalUtil.java | 401 +++
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_close.png | 0
Project/js_sdk/src/main/res/values/styles.xml | 8
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_down.png | 0
Project/js_sdk/src/main/java/com/secondworld/univeralsdk/MainActivity.java | 199 +
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/layout/llsdk_auth_view.xml | 64
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_delete.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable/llsdk_shape_gray_input.xml | 6
Project/js_sdk/src/main/res/values/jpush_style.xml | 13
Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_white_nor.xml | 8
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/layout/llsdk_include_title.xml | 34
Project/js_sdk/libs/bugly.jar | 0
Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_green_border.xml | 6
Project/js_sdk/src/game_jsgame/res/anim/llsdk_view_hide.xml | 15
Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_nor.xml | 6
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_back2.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_delete.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable/llsdk_bg_gary_no_top.xml | 15
Project/js_sdk/src/game_jsgame/res/layout/llsdk_register_view.xml | 82
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/layout/llsdk_verify_change_view.xml | 69
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_floating_icon.png | 0
Project/js_sdk/src/main/res/layout/jpush_popwin_layout.xml | 15
SDK相关/极速SDK/游戏icon2.0/少年酒剑仙-icon-1024.png | 0
Project/js_sdk/src/game_jsgame/res/layout/llsdk_forget_view.xml | 56
Project/js_sdk/src/main/res/layout/activity_main.xml | 30
Project/js_sdk/.gitignore | 1
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_green_border.xml | 6
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/values/llsdk_strings.xml | 35
SDK相关/极速SDK/iOS/SDK及SDK接入文档/IOSSDK及接入文档.zip | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_floating_arrow_l.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable/llsdk_bg_floating_view.xml | 5
Project/js_sdk/src/main/res/layout/jpush_webview_layout.xml | 59
Project/js_sdk/build.gradle | 63
ChannelDiff/Android/jsgame/AndroidManifest.xml | 130 +
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/build.gradle | 32
Project/js_sdk/src/game_jsgame/res/drawable/llsdk_shape_gray_input.xml | 6
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable/llsdk_selector_forget_pwd.xml | 22
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_close.png | 0
Project/js_sdk/libs/android-support-v4.jar | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_back_big_left.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_down.png | 0
Project/js_sdk/src/game_jsgame/assets/llsdk_config.xml | 9
Project/js_sdk/src/main/java/com/secondworld/univeralsdk/StaticDefine.java | 18
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_selector_forget_pwd.xml | 22
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/anim/llsdk_view_hide.xml | 15
Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_back2.png | 0
Project/js_sdk/src/game_jsgame/res/layout/llsdk_auth_view.xml | 64
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_back_big_left.png | 0
Project/js_sdk/src/game_jsgame/res/values/llsdk_colors.xml | 9
Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_back.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/layout/llsdk_login_view.xml | 177 +
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/java/com/linglei/sdkdemoas/MainActivity.java | 283 ++
SDK相关/极速SDK/Android/少年酒剑仙_接入参数.txt | 10
Project/js_sdk/src/main/res/drawable/web_btn_close_icon.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_back_big_right.png | 0
ChannelDiff/Android/jsgame/libs/js_sdk-game_jsgame-release.aar | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_forget_view.xml | 56
Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_back_big_left.png | 0
Project/js_sdk/src/game_jsgame/java/com/secondworld/univeralsdk/H2EngineSDK.java | 416 +++
Project/js_sdk/src/game_jsgame/res/values/llsdk_styles.xml | 45
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_terms_view.xml | 46
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_back.png | 0
Project/js_sdk/src/main/res/drawable-hdpi/jpush_ic_richpush_actionbar_back.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/AndroidManifest.xml | 82
Project/js_sdk/src/main/java/com/secondworld/univeralsdk/CodeA2U.java | 59
Project/js_sdk/src/main/res/drawable-hdpi/jpush_ic_richpush_actionbar_divider.png | 0
Project/js_sdk/src/main/res/drawable/app_icon.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/layout/llsdk_register_view.xml | 82
Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_floating_view.xml | 5
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_verify_view.xml | 70
SDK相关/极速SDK/游戏icon2.0/少年酒剑仙-icon-512.png | 0
Project/js_sdk/libs/okhttp.jar | 0
Project/js_sdk/src/main/java/com/secondworld/univeralsdk/NotchPhoneUtil.java | 347 ++
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_floating_arrow_l.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_forget_pwd_pre.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_pay_view.xml | 162 +
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/layout/llsdk_forget_view.xml | 56
Project/js_sdk/src/game_jsgame/res/layout/llsdk_verify_view.xml | 70
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_back.png | 0
Project/js_sdk/src/main/res/xml/file_paths.xml | 5
/dev/null | 2
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/layout/llsdk_terms_view.xml | 46
Project/js_sdk/src/main/res/values/strings.xml | 3
Project/js_sdk/src/game_jsgame/AndroidManifest.xml | 71
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable/llsdk_bg_white_nor.xml | 8
SDK相关/极速SDK/游戏icon2.0/少年酒剑仙-icon-256.png | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_forget_pwd_nor.png | 0
Project/js_sdk/libs/lingleisdk-2.1.0.jar | 0
Project/js_sdk/src/main/java/com/secondworld/univeralsdk/WebViewUtil.java | 185 +
Project/js_sdk/libs/gson.jar | 0
SDK相关/极速SDK/Android/SDK及接入文档/android_SDK2.1.0/SDKDemo.apk | 0
184 files changed, 7,634 insertions(+), 2 deletions(-)
diff --git a/ChannelDiff/Android/jsgame/AndroidManifest.xml b/ChannelDiff/Android/jsgame/AndroidManifest.xml
new file mode 100644
index 0000000..6dd50ef
--- /dev/null
+++ b/ChannelDiff/Android/jsgame/AndroidManifest.xml
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.secondworld.univeralsdk"
+ android:installLocation="auto"
+ android:versionCode="1"
+ android:versionName="1.1.0" >
+
+ <uses-sdk
+ android:minSdkVersion="16"
+ android:targetSdkVersion="22" />
+
+ <!-- Required -->
+ <uses-permission android:name="android.permission.INTERNET" />
+ <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
+ <uses-permission android:name="android.permission.WAKE_LOCK" />
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+ <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+ <uses-permission android:name="android.permission.CALL_PHONE" />
+ <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
+ <uses-permission android:name="android.permission.GET_TASKS" />
+ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+ <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+ <uses-permission android:name="android.permission.VIBRATE" />
+ <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
+ <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
+ <uses-permission android:name="android.permission.RECORD_AUDIO" />
+ <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+ <uses-permission android:name="android.permission.WRITE_SETTINGS" />
+ <uses-permission android:name="android.permission.READ_LOGS" />
+ <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
+ <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" /> <!-- 濡傛灉鎮ㄥ綋鍓嶅簲鐢ㄧ▼搴忔湁鑷繁鐨凙pplication锛屽垯蹇呴』缁ф壙com.linglei.sdk.openapi.LLApplication -->
+ <!-- 濡傛灉娌℃湁锛岃鎸囧畾application鐨刵ame灞炴�т负com.linglei.sdk.openapi.LLApplication -->
+ <application
+ android:name="com.linglei.sdklib.open.LLApplication"
+ android:allowBackup="true"
+ android:hardwareAccelerated="false"
+ android:icon="@drawable/app_icon"
+ android:isGame="true"
+ android:label="@string/app_name"
+ android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" >
+
+ <!-- Required APPID -->
+ <meta-data
+ android:name="LL_APPID"
+ android:value="1073" />
+
+ <!-- Required 闂睆椤� 鍔″繀鎶奡DK鍚姩椤� action 鍜� category 淇敼涓轰互涓嬪�硷紝灞忓箷鏂瑰悜璇锋寚瀹氱珫灞忔垨妯睆 -->
+ <activity
+ android:name="com.linglei.sdklib.auth.SplashActivity"
+ android:configChanges="keyboardHidden|orientation|screenSize"
+ android:screenOrientation="landscape"
+ android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+
+ <!-- Required SDK鍐呴儴鐣岄潰 灞忓箷鏂瑰悜璇锋寚瀹氱珫灞忔垨妯睆, 涓婚鍔″繀涓嶈淇敼 -->
+ <activity
+ android:name="com.linglei.sdklib.auth.AuthActivity"
+ android:configChanges="keyboardHidden|orientation|screenSize"
+ android:screenOrientation="landscape"
+ android:theme="@style/llsdk_dialog" />
+
+ <!-- Required 鍏叡鐣岄潰 灞忓箷鏂瑰悜璇锋寚瀹氱珫灞忔垨妯睆 -->
+ <activity
+ android:name="com.linglei.sdklib.auth.CommonActivity"
+ android:configChanges="keyboardHidden|orientation|screenSize"
+ android:screenOrientation="landscape"
+ android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
+
+ <!-- Required SDK鏍稿績鏈嶅姟 -->
+ <service
+ android:name="com.linglei.sdklib.open.LLService"
+ android:exported="false" />
+
+ <meta-data
+ android:name="android.max_aspect"
+ android:value="1075838976.000000" />
+ <meta-data
+ android:name="com.samsung.android.keepalive.density"
+ android:value="true" />
+ <meta-data
+ android:name="android.notch_support"
+ android:value="true" />
+ <meta-data
+ android:name="notch.config"
+ android:value="portrait|landscape" />
+ <meta-data
+ android:name="android.vendor.full_screen"
+ android:value="true" />
+
+ <activity
+ android:name="com.secondworld.univeralsdk.MainActivity"
+ android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection"
+ android:label="@string/app_name"
+ android:launchMode="singleTask"
+ android:screenOrientation="sensorLandscape" >
+ <intent-filter>
+ <action android:name="com.lingleigame.shaonianqixiachuan.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
+ </intent-filter>
+
+ <meta-data
+ android:name="unityplayer.UnityActivity"
+ android:value="true" />
+ <meta-data
+ android:name="unityplayer.SkipPermissionsDialog"
+ android:value="true" />
+ <meta-data
+ android:name="android.vendor.home_indicator"
+ android:value="hide" />
+ <meta-data
+ android:name="android.max_aspect"
+ android:value="1075419520.000000" />
+ <meta-data
+ android:name="com.samsung.android.keepalive.density"
+ android:value="true" />
+ </activity>
+ </application>
+
+</manifest>
\ No newline at end of file
diff --git a/ChannelDiff/Android/jsgame/libs/js_sdk-game_jsgame-release.aar b/ChannelDiff/Android/jsgame/libs/js_sdk-game_jsgame-release.aar
new file mode 100644
index 0000000..459054c
--- /dev/null
+++ b/ChannelDiff/Android/jsgame/libs/js_sdk-game_jsgame-release.aar
Binary files differ
diff --git a/Project/js_sdk/.gitignore b/Project/js_sdk/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/Project/js_sdk/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/Project/js_sdk/build.gradle b/Project/js_sdk/build.gradle
new file mode 100644
index 0000000..c300746
--- /dev/null
+++ b/Project/js_sdk/build.gradle
@@ -0,0 +1,63 @@
+apply plugin: 'com.android.library'
+
+android {
+
+ compileSdkVersion 22
+
+ defaultConfig {
+ //applicationId "com.secondworld.univeralsdk"
+ minSdkVersion 16
+ targetSdkVersion 22
+ versionCode 1
+ versionName "1.1.0"
+ }
+
+ buildTypes {
+ release {
+ //娣锋穯
+ minifyEnabled true
+ //瀵归綈
+ zipAlignEnabled true
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+
+ }
+ }
+
+ flavorDimensions "default"
+ productFlavors {
+ game_jsgame {
+ dimension "default"
+ manifestPlaceholders.put("appId", "com.lingleigame.shaonianqixiachuan")
+ manifestPlaceholders.put("JpushAppKey", "803d5cb73efe51a59968bf52")
+ manifestPlaceholders.put("LL_APPID", "1073")
+// manifestPlaceholders.put("Mr_GAME_ID", "_559")
+ }
+ }
+}
+
+dependencies {
+ implementation files('libs/android-support-v4.jar')
+ implementation files('libs/jcore-android-1.2.1.jar')
+ implementation files('libs/jpush-android-3.1.3.jar')
+ implementation files('libs/gson.jar')
+ implementation files('libs/okhttp.jar')
+ implementation files('libs/okio.jar')
+ compileOnly files('libs/unity-classes.jar')
+ implementation files('libs/bugly.jar')
+ implementation files('libs/buglyagent.jar')
+ implementation files('libs/lingleisdk-2.1.0.jar')
+}
+
+task autoCopy_jsgame_Manifest(type: Copy) {
+ dependsOn 'assembleGame_jsgameRelease'
+ from zipTree("build/outputs/aar/js_sdk-game_jsgame-release.aar")
+ include "AndroidManifest.xml"
+ into "C:\\Unity3D_SDK\\ChannelDiff\\Android\\jsgame\\"
+}
+
+task autoCopy_jsgame(type: Copy) {
+ dependsOn autoCopy_jsgame_Manifest
+ from "build/outputs/aar/"
+ include "js_sdk-game_jsgame-release.aar"
+ into "C:\\Unity3D_SDK\\ChannelDiff\\Android\\jsgame\\libs\\"
+}
diff --git a/Project/js_sdk/libs/android-support-v4.jar b/Project/js_sdk/libs/android-support-v4.jar
new file mode 100644
index 0000000..2ff47f4
--- /dev/null
+++ b/Project/js_sdk/libs/android-support-v4.jar
Binary files differ
diff --git a/Project/js_sdk/libs/bugly.jar b/Project/js_sdk/libs/bugly.jar
new file mode 100644
index 0000000..618cff3
--- /dev/null
+++ b/Project/js_sdk/libs/bugly.jar
Binary files differ
diff --git a/Project/js_sdk/libs/buglyagent.jar b/Project/js_sdk/libs/buglyagent.jar
new file mode 100644
index 0000000..b3d5fcf
--- /dev/null
+++ b/Project/js_sdk/libs/buglyagent.jar
Binary files differ
diff --git a/Project/js_sdk/libs/gson.jar b/Project/js_sdk/libs/gson.jar
new file mode 100644
index 0000000..8e8ed7e
--- /dev/null
+++ b/Project/js_sdk/libs/gson.jar
Binary files differ
diff --git a/Project/js_sdk/libs/jcore-android-1.2.1.jar b/Project/js_sdk/libs/jcore-android-1.2.1.jar
new file mode 100644
index 0000000..9cb8439
--- /dev/null
+++ b/Project/js_sdk/libs/jcore-android-1.2.1.jar
Binary files differ
diff --git a/Project/js_sdk/libs/jpush-android-3.1.3.jar b/Project/js_sdk/libs/jpush-android-3.1.3.jar
new file mode 100644
index 0000000..ed4e115
--- /dev/null
+++ b/Project/js_sdk/libs/jpush-android-3.1.3.jar
Binary files differ
diff --git a/Project/js_sdk/libs/lingleisdk-2.1.0.jar b/Project/js_sdk/libs/lingleisdk-2.1.0.jar
new file mode 100644
index 0000000..2572ab2
--- /dev/null
+++ b/Project/js_sdk/libs/lingleisdk-2.1.0.jar
Binary files differ
diff --git a/Project/js_sdk/libs/okhttp.jar b/Project/js_sdk/libs/okhttp.jar
new file mode 100644
index 0000000..3ffd56a
--- /dev/null
+++ b/Project/js_sdk/libs/okhttp.jar
Binary files differ
diff --git a/Project/js_sdk/libs/okio.jar b/Project/js_sdk/libs/okio.jar
new file mode 100644
index 0000000..b99378b
--- /dev/null
+++ b/Project/js_sdk/libs/okio.jar
Binary files differ
diff --git a/Project/js_sdk/libs/unity-classes.jar b/Project/js_sdk/libs/unity-classes.jar
new file mode 100644
index 0000000..3c32bf7
--- /dev/null
+++ b/Project/js_sdk/libs/unity-classes.jar
Binary files differ
diff --git a/Project/js_sdk/proguard-rules.pro b/Project/js_sdk/proguard-rules.pro
new file mode 100644
index 0000000..0784294
--- /dev/null
+++ b/Project/js_sdk/proguard-rules.pro
@@ -0,0 +1,55 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
+-dontoptimize
+-dontpreverify
+
+-dontwarn okio.**
+-keep class okio.** { *;}
+-dontwarn com.squareup.okhttp.**
+-keep class com.squareup.okhttp.** { *;}
+-dontwarn cn.jpush.**
+-keep class cn.jpush.** { *; }
+-keep class * extends cn.jpush.android.helpers.JPushMessageReceiver { *; }
+-dontwarn cn.jiguang.**
+-keep class cn.jiguang.** { *; }
+-dontwarn cn.jiguang.android.service.**
+-keep class cn.jiguang.android.service.** { *;}
+-dontwarn com.google.gson.**
+-keep class com.google.gson.** { *;}
+-dontwarn com.tencent.bugly.**
+-keep class com.tencent.bugly.** { *;}
+-dontwarn android.support.**
+-keep class android.support.** { *;}
+-dontwarn com.reyun.tracking.**
+-keep class com.reyun.tracking.** { *;}
+-dontwarn com.ss.**
+-keep class com.ss.tracking.** { *;}
+-dontwarn com.bytedance.**
+-keep class com.bytedance.** { *;}
+-keep class com.linglei.sdk.** {*;}
+-dontwarn com.linglei.sdk.**
+-keep class com.linglei.sdklib.** {*;}
+-dontwarn com.linglei.sdklib.**
+-keep class com.lingleigame.ad.sdk.**{*;}
+-dontwarn com.lingleigame.ad.sdk.**
+-dontwarn com.secondworld.univeralsdk.**
+-keep class com.secondworld.univeralsdk.** { *;}
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/AndroidManifest.xml b/Project/js_sdk/src/game_jsgame/AndroidManifest.xml
new file mode 100644
index 0000000..ad0ca34
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/AndroidManifest.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.secondworld.univeralsdk">
+
+ <!-- Required -->
+ <uses-permission android:name="android.permission.INTERNET" />
+ <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
+ <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
+ <uses-permission android:name="android.permission.WAKE_LOCK" />
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+ <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+ <uses-permission android:name="android.permission.CALL_PHONE" />
+ <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
+ <uses-permission android:name="android.permission.GET_TASKS" />
+ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+ <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+ <uses-permission android:name="android.permission.VIBRATE" />
+ <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
+ <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
+
+ <!-- 濡傛灉鎮ㄥ綋鍓嶅簲鐢ㄧ▼搴忔湁鑷繁鐨凙pplication锛屽垯蹇呴』缁ф壙com.linglei.sdk.openapi.LLApplication-->
+ <!-- 濡傛灉娌℃湁锛岃鎸囧畾application鐨刵ame灞炴�т负com.linglei.sdk.openapi.LLApplication -->
+ <application
+ android:name="com.linglei.sdklib.open.LLApplication"
+ android:allowBackup="true"
+ android:icon="@drawable/app_icon"
+ android:label="@string/app_name"
+ android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen">
+
+ <!-- Required APPID-->
+ <meta-data
+ android:name="LL_APPID"
+ android:value="${LL_APPID}" />
+
+ <!-- Required 闂睆椤� 鍔″繀鎶奡DK鍚姩椤� action 鍜� category 淇敼涓轰互涓嬪�硷紝灞忓箷鏂瑰悜璇锋寚瀹氱珫灞忔垨妯睆-->
+ <activity
+ android:name="com.linglei.sdklib.auth.SplashActivity"
+ android:configChanges="keyboardHidden|orientation|screenSize"
+ android:screenOrientation="landscape"
+ android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+
+ <!-- Required SDK鍐呴儴鐣岄潰 灞忓箷鏂瑰悜璇锋寚瀹氱珫灞忔垨妯睆, 涓婚鍔″繀涓嶈淇敼-->
+ <activity
+ android:name="com.linglei.sdklib.auth.AuthActivity"
+ android:configChanges="keyboardHidden|orientation|screenSize"
+ android:screenOrientation="landscape"
+ android:theme="@style/llsdk_dialog" />
+
+ <!-- Required 鍏叡鐣岄潰 灞忓箷鏂瑰悜璇锋寚瀹氱珫灞忔垨妯睆-->
+ <activity
+ android:name="com.linglei.sdklib.auth.CommonActivity"
+ android:configChanges="keyboardHidden|orientation|screenSize"
+ android:screenOrientation="landscape"
+ android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
+
+ <!-- Required SDK鏍稿績鏈嶅姟-->
+ <service
+ android:name="com.linglei.sdklib.open.LLService"
+ android:exported="false" />
+
+ </application>
+
+</manifest>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/assets/llsdk_config.xml b/Project/js_sdk/src/game_jsgame/assets/llsdk_config.xml
new file mode 100644
index 0000000..305c3ee
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/assets/llsdk_config.xml
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
+<map>
+ <llsdkcl>1</llsdkcl>
+ <llsdkfg>DEFAULT</llsdkfg>
+ <!--apk鐗堟湰鍙�-->
+ <ll_v_code>1</ll_v_code>
+ <!--apk鐗堟湰鍚�-->
+ <ll_v_name>1.0.1</ll_v_name>
+</map>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/java/com/secondworld/univeralsdk/H2EngineSDK.java b/Project/js_sdk/src/game_jsgame/java/com/secondworld/univeralsdk/H2EngineSDK.java
new file mode 100644
index 0000000..cc0b3b7
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/java/com/secondworld/univeralsdk/H2EngineSDK.java
@@ -0,0 +1,416 @@
+package com.secondworld.univeralsdk;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.ClipData;
+import android.content.ClipboardManager;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.res.Configuration;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Environment;
+import android.provider.Settings;
+import android.widget.Toast;
+
+import com.linglei.sdk.openapi.LLSDK;
+import com.unity3d.player.UnityPlayer;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
+import cn.jpush.android.api.JPushInterface;
+import cn.jpush.android.data.JPushLocalNotification;
+
+public class H2EngineSDK
+{
+ private static final String TAG = "H2EngineSDK";
+ private static String APP_ID = "";
+
+ public static void HandleUnityMessage(String json)
+ {
+ LogUtil.i(TAG, "鏀跺埌Unity鍙戞潵鐨勪俊鎭�: " + json);
+ Activity _activity = UnityPlayer.currentActivity;
+ try
+ {
+ JSONObject _json = new JSONObject(json);
+
+ int _code = _json.getInt("code");
+
+ switch (_code)
+ {
+ case CodeU2A.Init:
+ APP_ID = _json.getString("appID");
+ init(_activity);
+ break;
+ case CodeU2A.AssetCopy:
+ FileUtil.copyAssets(_activity);
+ break;
+ case CodeU2A.BatteryListenStart:
+ BatteryUtil.getInstance().start(_activity);
+ break;
+ case CodeU2A.BatteryListenStop:
+ BatteryUtil.getInstance().stop(_activity);
+ break;
+ case CodeU2A.UniqueID:
+ break;
+ case CodeU2A.CopyContent:
+ CopyContent(_activity, _json.getString("content"));
+ break;
+ case CodeU2A.OpenWebView:
+ WebViewUtil.OpenWebView(_activity, _json.getString("url"));
+ break;
+ case CodeU2A.RestartApp:
+ RestartApp(_activity);
+ break;
+ case CodeU2A.InstallAPK:
+ InstallApp(_activity, _json.getString("path"));
+ break;
+ case CodeU2A.ExteneralStorage:
+ GetExternalStorage();
+ break;
+ case CodeU2A.RequestPermission:
+ break;
+ case CodeU2A.RequestManifestPermissions:
+ break;
+ case CodeU2A.FreePlatformInit:
+ JSPlatformUtil.getInstance().init(_activity);
+ break;
+ case CodeU2A.FreePlatformLogin:
+ JSPlatformUtil.getInstance().login(_activity);
+ break;
+ case CodeU2A.FreePlatformSwitchAccount:
+ break;
+ case CodeU2A.FreePlatformLogout:
+ JSPlatformUtil.getInstance().logout(_activity);
+ break;
+ case CodeU2A.FreePlatformPay:
+
+ JSONObject _extraData = new JSONObject();
+ _extraData.put("appid", APP_ID);
+ _extraData.put("cpinfo", _json.getString("cpInfo"));
+ _extraData.put("cporderid", _json.getString("orderId"));
+
+ JSPlatformUtil.getInstance().pay(_activity,
+ _json.getString("orderId"),
+ _json.getInt("mount"),
+ _json.getString("title"),
+ _extraData.toString());
+
+ JSPlatformUtil.getInstance().payProcessing = true;
+ break;
+ case CodeU2A.PayFinished:
+ JSPlatformUtil.getInstance().payProcessing = false;
+ break;
+ case CodeU2A.CreateRole:
+ break;
+ case CodeU2A.RoleLogin:
+ JSPlatformUtil.getInstance().enterWorld(_activity,
+ _json.getString("roleID"),
+ _json.getString("sid"),
+ _json.getString(
+ "roleName").trim().replace(" ",
+ ""),
+ _json.getString("level"),
+ _json.getString("vipLevel"),
+ _json.getString("money"));
+ break;
+ case CodeU2A.ClientPackage:
+ break;
+ case CodeU2A.JPushAddLocalMessage:
+ addLocalNotification(_activity,
+ _json.getInt("id"),
+ _json.getString("title"),
+ _json.getString("content"),
+ _json.getLong("fireTime"));
+ break;
+ case CodeU2A.JPushRemoveLocalMessage:
+ removeNotification(_activity, _json.getInt("id"));
+ break;
+ }
+
+ } catch (JSONException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ // 鏈湴鎺ㄩ��
+ public static void addLocalNotification(Activity activity, int id, String title, String content,
+ long fireTime)
+ {
+ try
+ {
+ JPushLocalNotification ln = new JPushLocalNotification();
+ ln.setBuilderId(0);// 璁剧疆鏍峰紡
+ ln.setNotificationId(id);// id
+ ln.setTitle(title);// 鏍囬
+
+ ln.setContent(content);// 鍐呭
+ ln.setBroadcastTime(fireTime);// 绛夊緟鏃堕棿
+ JPushInterface.addLocalNotification(activity, ln);
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ public static void removeNotification(Activity activity, int id)
+ {
+ JPushInterface.removeLocalNotification(activity, id);
+ }
+
+ public static void GetExternalStorage()
+ {
+ Map<String, Object> _msg = new HashMap<>();
+ _msg.put("code", CodeA2U.ExternalStorage);
+ _msg.put("path", Environment.getExternalStorageDirectory().getAbsolutePath());
+ UniversalUtil.sendMessageToUnity(_msg);
+ }
+
+ public static void InstallApp(Activity activity, String path)
+ {
+ File _file = new File(path);
+
+ if (_file == null)
+ {
+ LogUtil.i(TAG, "鎵句笉鍒扮粰瀹氬湴鍧�鐨刟pk: " + path);
+ return;
+ }
+
+ try
+ {
+ Intent _intent = new Intent(Intent.ACTION_VIEW);
+
+// if (Build.VERSION.SDK_INT >= 23)
+// {
+// _intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+// Uri _contentUri = FileProvider.getUriForFile(activity,
+// "com.shandangceshi.snxxz.fileProvider",
+// _file);
+// _intent.setDataAndType(_contentUri, "application/vnd.android.package-archive");
+//
+// }
+// else
+// {
+ _intent.setDataAndType(Uri.fromFile(_file),
+ "application/vnd.android.package-archive");
+ _intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+// }
+
+ activity.startActivity(_intent);
+
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ Toast.makeText(activity, "娌℃湁鎵惧埌鎵撳紑姝ょ被鏂囦欢鐨勭▼搴�", Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ public static void CopyContent(final Activity activity, final String content)
+ {
+ activity.runOnUiThread(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ ClipboardManager _mgr = (ClipboardManager) activity.getSystemService(
+ Context.CLIPBOARD_SERVICE);
+ ClipData _data = ClipData.newPlainText("playerId", content);
+ _mgr.setPrimaryClip(_data);
+ }
+ });
+ }
+
+ public static void RestartApp(final Activity activity)
+ {
+ activity.runOnUiThread(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ new Thread()
+ {
+ public void run()
+ {
+ String _pn = activity.getPackageName();
+ PackageManager _pm = activity.getPackageManager();
+ Intent _l = _pm.getLaunchIntentForPackage(_pn);
+ _l.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ activity.startActivity(_l);
+ android.os.Process.killProcess(android.os.Process.myPid());
+ }
+ }.start();
+ activity.finish();
+ }
+ });
+ }
+
+ public static void init(final Activity activity)
+ {
+ final int _memoryTotal = (int) (UniversalUtil.getMemTotal() / 1024);
+ if (_memoryTotal < 1024)
+ {
+ LogUtil.i(TAG, "妫�娴嬭澶囧唴瀛樹笉婊¤冻杩愯绋嬪簭鏍囧噯");
+ AlertDialog.Builder _builder = new AlertDialog.Builder(activity);
+ _builder.setIcon(R.drawable.app_icon);
+ _builder.setTitle("璀﹀憡");
+ _builder.setMessage("鎮ㄧ殑鎵嬫満鍐呭瓨涓嶈冻,鏃犳硶姝e父杩愯娓告垙");
+ _builder.setPositiveButton("纭畾", new DialogInterface.OnClickListener()
+ {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i)
+ {
+ android.os.Process.killProcess(android.os.Process.myPid());
+ }
+ });
+ _builder.show();
+ return;
+ }
+
+ new Thread(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ LogUtil.i(TAG, "寮�濮嬫墽琛屽垵濮嬪寲");
+
+ GetExternalStorage();
+
+ // ------------------------------- 璁惧淇℃伅 -------------------------------
+ Map<String, Object> _msgStruct = new HashMap<>();
+ _msgStruct.put("code", CodeA2U.DeviceInfo);
+ _msgStruct.put("userAgent", System.getProperty("http.agent"));
+ _msgStruct.put("mac", UniqueID.getLocalMac(activity));
+ _msgStruct.put("imei", UniqueID.getDeviceId(activity));
+ _msgStruct.put("android_id",
+ Settings.System.getString(activity.getContentResolver(),
+ Settings.System.ANDROID_ID));
+ _msgStruct.put("unique_id", UniqueID.get(activity));
+ _msgStruct.put("memoryTotal", _memoryTotal);
+ UniversalUtil.sendMessageToUnity(_msgStruct);
+
+ // ------------------------------- 鏋佸厜鎺ㄩ�� -------------------------------
+ JPushInterface.setDebugMode(true);
+ JPushInterface.init(activity);
+
+ final long _waitingTime = System.currentTimeMillis();
+
+ while (true)
+ {
+ // 绛夊緟鑾峰彇鏋佸厜registrationID
+ if (!JPushInterface.getRegistrationID(activity).equals(""))
+ {
+ break;
+ }
+
+ long _escapeTime = System.currentTimeMillis() - _waitingTime;
+
+ if (_escapeTime > 3000)
+ {
+ LogUtil.w(TAG, "绛夊緟鑾峰彇鏋佸厜鎺ㄩ�乺egistrationID瓒呮椂: 3绉�");
+ break;
+ }
+ }
+
+ _msgStruct.clear();
+ _msgStruct.put("code", CodeA2U.PushClientID);
+ _msgStruct.put("clientID", JPushInterface.getRegistrationID(activity));
+ UniversalUtil.sendMessageToUnity(_msgStruct);
+
+ _msgStruct.clear();
+ _msgStruct.put("code", CodeA2U.SdkInitComplete);
+ _msgStruct.put("channelPlatform", "mr");
+ UniversalUtil.sendMessageToUnity(_msgStruct);
+
+ LogUtil.i(TAG, "鍒濆鍖栨墽琛屽畬姣�");
+ }
+
+ }).start();
+ }
+
+ public static void onCreate(Activity activity, Bundle savedInstanceState)
+ {
+ // ------------------------------- 鐚�砈DK -------------------------------
+ JSPlatformUtil.getInstance().init(activity);
+ }
+
+ private static boolean m_IsFocus = true;
+
+ public static void onWindowFocusChanged(boolean b)
+ {
+ if (JSPlatformUtil.getInstance().payProcessing)
+ {
+ if (b)
+ {
+ Map<String, Object> _msgStruct = new HashMap<>();
+ _msgStruct.put("code", CodeA2U.FreePlatformPayCancel);
+ UniversalUtil.sendMessageToUnity(_msgStruct);
+ JSPlatformUtil.getInstance().payProcessing = false;
+ }
+ }
+ }
+
+ public static void onNewIntent(final Activity activity, final Intent intent)
+ {
+ LLSDK.getInstance().onNewIntent(intent);
+ }
+
+ public static void onActivityResult(int requestCode,
+ int resultCode,
+ final Intent data,
+ final Activity activity)
+ {
+ LLSDK.getInstance().onActivityResult(requestCode, resultCode, data);
+ }
+
+ public static void onConfigurationChanged(final Configuration newConfig)
+ {
+ LLSDK.getInstance().onConfigurationChanged(newConfig);
+ }
+
+ public static void onRestart(final Activity activity)
+ {
+ LLSDK.getInstance().onRestart();
+ }
+
+ public static void onStart(final Activity activity)
+ {
+ LLSDK.getInstance().onStart();
+ }
+
+ public static void onPause(final Activity activity)
+ {
+ LLSDK.getInstance().onPause();
+ }
+
+ public static void onResume(final Activity activity)
+ {
+ LLSDK.getInstance().onResume();
+
+ if (JSPlatformUtil.getInstance().payProcessing)
+ {
+ Map<String, Object> _msgStruct = new HashMap<>();
+ _msgStruct.put("code", CodeA2U.FreePlatformPayCancel);
+ UniversalUtil.sendMessageToUnity(_msgStruct);
+ JSPlatformUtil.getInstance().payProcessing = false;
+ }
+ }
+
+ public static void onStop(final Activity activity)
+ {
+ LLSDK.getInstance().onStop();
+ }
+
+ public static void onDestroy(final Activity activity)
+ {
+ LLSDK.getInstance().onDestory();
+ }
+}
diff --git a/Project/js_sdk/src/game_jsgame/java/com/secondworld/univeralsdk/JSPlatformUtil.java b/Project/js_sdk/src/game_jsgame/java/com/secondworld/univeralsdk/JSPlatformUtil.java
new file mode 100644
index 0000000..0f14a96
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/java/com/secondworld/univeralsdk/JSPlatformUtil.java
@@ -0,0 +1,174 @@
+package com.secondworld.univeralsdk;
+
+import android.app.Activity;
+
+import com.linglei.sdk.openapi.LLSDK;
+import com.linglei.sdklib.open.ILLSDKCallback;
+import com.linglei.sdklib.open.ILLSDKInitCallback;
+import com.linglei.sdklib.open.reqinfo.OrderReq;
+import com.linglei.sdklib.open.reqinfo.RoleInfoReq;
+import com.linglei.sdklib.open.respinfo.UserResp;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created by Administrator on 2018/9/3 0003.
+ */
+
+public class JSPlatformUtil
+{
+ private static final String TAG = "JSPlatformUtil";
+
+ private boolean m_Init = false;
+
+ private static JSPlatformUtil s_Instance;
+
+ public static JSPlatformUtil getInstance()
+ {
+ if (s_Instance == null)
+ {
+ s_Instance = new JSPlatformUtil();
+ }
+ return s_Instance;
+ }
+
+ public boolean payProcessing = false;
+
+ private Map<String, Object> m_Message = new HashMap<>();
+
+ public void init(final Activity activity)
+ {
+ if (m_Init)
+ {
+ return;
+ }
+
+ LLSDK.getInstance().initSDK(activity, new ILLSDKInitCallback()
+ {
+ @Override
+ public void onInitResponse(int i, String s)
+ {
+ m_Message.clear();
+ if (i == 1)
+ {
+ m_Init = true;
+ m_Message.put("code", CodeA2U.FreePlatformInitOk);
+ UniversalUtil.sendMessageToUnity(m_Message);
+ }
+ else
+ {
+ m_Message.clear();
+ m_Message.put("code", CodeA2U.FreePlatformInitFail);
+ UniversalUtil.sendMessageToUnity(m_Message);
+ }
+ }
+ });
+
+ LLSDK.getInstance().setLLSDKCallback(sdkCallback);
+ }
+
+ public void login(Activity activity)
+ {
+ LLSDK.getInstance().login(activity);
+ }
+
+ public void logout(final Activity activity)
+ {
+ LLSDK.getInstance().switchAccount();
+ }
+
+ public void pay(final Activity activity,
+ String orderID,
+ int amount,
+ String title,
+ String extraData)
+ {
+ OrderReq orderReq = new OrderReq(orderID, amount, title, extraData);
+ LLSDK.getInstance().pay(activity, orderReq);
+ }
+
+ public void enterWorld(final Activity activity,
+ String roleID,
+ String serverID,
+ String roleName,
+ String roleLevel,
+ String roleVipLevel,
+ String gold)
+ {
+ // 鐧诲綍鎴愬姛鍚庤璁剧疆瑙掕壊淇℃伅
+ // 鍙傛暟渚濇涓� 娓告垙甯佸綋鍓嶄綑棰濄�佽鑹茬殑绛夌骇銆佺敤鎴穠ip绛夌骇銆佽鑹插敮涓�鏍囪瘑銆佽鑹插悕銆佹墍鍦ㄥ尯鏈�
+ RoleInfoReq roleInfoReq = new RoleInfoReq(Integer.parseInt(gold), Integer.parseInt(roleLevel), Integer.parseInt(roleVipLevel), roleID, roleName, serverID);
+ LLSDK.getInstance().setRoleData(roleInfoReq);
+ }
+
+ private ILLSDKCallback sdkCallback = new ILLSDKCallback()
+ {
+ @Override
+ public void onLoginSuccess(UserResp userResp)
+ {
+ LogUtil.e(TAG, "鐧诲綍鎴愬姛");
+
+ // 鎴愬姛鍥炶皟UserResp绫�
+ // UserResp瀛楁锛�
+ // uid 鐢ㄦ埛鍞竴鏍囪瘑
+ // token cp鏈嶅姟鍣ㄦ牎楠屽��
+ // uid鍜宼oken淇℃伅涔熷彲浠ュ湪鐧诲綍鎴愬姛鍚庤皟鐢↙LSDK.getInstance().getAuth()鏉ヨ幏鍙�(鍔″繀鍋氶潪绌哄垽鏂�)
+
+ try
+ {
+ m_Message.clear();
+ JSONObject _info = new JSONObject();
+ _info.put("account", userResp.getUid());
+ _info.put("token", userResp.getToken());
+ _info.put("account_id", userResp.getUid());
+ m_Message.put("code", CodeA2U.FreePlatformLoginOk);
+ m_Message.put("info", _info);
+ UniversalUtil.sendMessageToUnity(m_Message);
+ } catch (JSONException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void onLoginFailure(int errorCode, String errorMsg)
+ {
+ LogUtil.e(TAG, "鐧诲綍澶辫触" + errorCode + " " + errorMsg);
+ m_Message.clear();
+ m_Message.put("code", CodeA2U.FreePlatformLoginFail);
+ UniversalUtil.sendMessageToUnity(m_Message);
+ }
+
+ @Override
+ public void onLogout()
+ {
+ // 琛ㄧず鐢ㄦ埛宸茬櫥鍑�, 鍒囨崲璐﹀彿鎺ュ彛浼氳蛋杩欎釜鍥炶皟锛屾父鎴忔敹鍒版娑堟伅閫氬父鎯呭喌涓嬶紝闇�瑕佷富鍔ㄨ皟鐢ㄧ櫥褰曟帴鍙�
+ m_Message.clear();
+ m_Message.put("code", CodeA2U.FreePlatformLogoutOk);
+ UniversalUtil.sendMessageToUnity(m_Message);
+ }
+
+ @Override
+ public void onPayResponse()
+ {
+ // 姝ゆ柟娉曞洖璋冨彧鑳借鏄庢敮浠樻搷浣滃畬姣曪紝鍏蜂綋鏄惁鏀粯鎴愬姛浠ユ帴鍏ユ柟鏈嶅姟绔负鍑�
+ m_Message.clear();
+ m_Message.put("code", CodeA2U.FreePlatformPayOk);
+ UniversalUtil.sendMessageToUnity(m_Message);
+ payProcessing = false;
+ }
+
+ @Override
+ public void onPayFailure(int errorCode, String errorMsg)
+ {
+ m_Message.clear();
+ m_Message.put("code", CodeA2U.FreePlatformPayFail);
+ UniversalUtil.sendMessageToUnity(m_Message);
+ payProcessing = false;
+ }
+ };
+}
diff --git a/Project/js_sdk/src/game_jsgame/res/anim/llsdk_view_hide.xml b/Project/js_sdk/src/game_jsgame/res/anim/llsdk_view_hide.xml
new file mode 100644
index 0000000..186a92d
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/anim/llsdk_view_hide.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+ <alpha
+ android:duration="200"
+ android:fromAlpha="1.0"
+ android:toAlpha="0.0"/>
+ <scale
+ android:duration="200"
+ android:fromXScale="1.0"
+ android:fromYScale="1.0"
+ android:pivotX="50.0%p"
+ android:pivotY="50.0%p"
+ android:toXScale="0.3"
+ android:toYScale="0.3"/>
+</set>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_back.png b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_back.png
new file mode 100644
index 0000000..8db72ad
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_back.png
Binary files differ
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_back2.png b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_back2.png
new file mode 100644
index 0000000..920e9f5
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_back2.png
Binary files differ
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_back_big_left.png b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_back_big_left.png
new file mode 100644
index 0000000..dea90db
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_back_big_left.png
Binary files differ
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_back_big_right.png b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_back_big_right.png
new file mode 100644
index 0000000..9a4b574
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_back_big_right.png
Binary files differ
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_close.png b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_close.png
new file mode 100644
index 0000000..c0d552f
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_close.png
Binary files differ
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_delete.png b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_delete.png
new file mode 100644
index 0000000..3aecb52
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_delete.png
Binary files differ
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_down.png b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_down.png
new file mode 100644
index 0000000..6f5bbe1
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_down.png
Binary files differ
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_floating_arrow_l.png b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_floating_arrow_l.png
new file mode 100644
index 0000000..e94a063
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_floating_arrow_l.png
Binary files differ
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_floating_arrow_r.png b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_floating_arrow_r.png
new file mode 100644
index 0000000..6d86946
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_floating_arrow_r.png
Binary files differ
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_floating_icon.png b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_floating_icon.png
new file mode 100644
index 0000000..fed4ee7
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_floating_icon.png
Binary files differ
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_forget_pwd_nor.png b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_forget_pwd_nor.png
new file mode 100644
index 0000000..417043e
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_forget_pwd_nor.png
Binary files differ
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_forget_pwd_pre.png b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_forget_pwd_pre.png
new file mode 100644
index 0000000..98ad434
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable-xhdpi/llsdk_ic_forget_pwd_pre.png
Binary files differ
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_floating_view.xml b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_floating_view.xml
new file mode 100644
index 0000000..fc72a9d
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_floating_view.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#70000000" />
+ <corners android:radius="180dp"/>
+</shape>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_gary_no_top.xml b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_gary_no_top.xml
new file mode 100644
index 0000000..a5dcf24
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_gary_no_top.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:top="-2dp"
+ android:right="-2dp"
+ android:left="-2dp"
+ android:bottom="-0.5dp">
+ <shape>
+ <solid android:color="#ffffff"/>
+ <stroke
+ android:width="1dp"
+ android:color="#cccccc"/>
+ </shape>
+ </item>
+</layer-list>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_gary_nor.xml b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_gary_nor.xml
new file mode 100644
index 0000000..1fc2d23
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_gary_nor.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#e8e8e8" />
+ <stroke android:color="#62b0ff" android:width="0dp"/>
+ <corners android:radius="12dp"/>
+</shape>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_gray_border.xml b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_gray_border.xml
new file mode 100644
index 0000000..0cbaecf
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_gray_border.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#ffffff" />
+ <stroke android:color="#d0d0d0" android:width="2.5dp"/>
+ <corners android:radius="1.8dp"/>
+</shape>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_green_border.xml b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_green_border.xml
new file mode 100644
index 0000000..40f0ebb
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_green_border.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#ffffff" />
+ <stroke android:color="#2b9581" android:width="1.6dp"/>
+ <corners android:radius="6dp"/>
+</shape>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_nor.xml b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_nor.xml
new file mode 100644
index 0000000..cec7595
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_nor.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#ffffff" />
+ <stroke android:color="#62b0ff" android:width="2.5dp"/>
+ <corners android:radius="12dp"/>
+</shape>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_white_nor.xml b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_white_nor.xml
new file mode 100644
index 0000000..7dea248
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_bg_white_nor.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#ffffff" />
+ <stroke android:color="#62b0ff" android:width="0dp"/>
+ <corners
+ android:topLeftRadius="12dp"
+ android:topRightRadius="12dp"/>
+</shape>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_line_blue.xml b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_line_blue.xml
new file mode 100644
index 0000000..21a75bf
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_line_blue.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <corners android:radius="100dp"/>
+ <gradient
+ android:angle="180"
+ android:startColor="#ffffff"
+ android:centerColor="#93d3ff"
+ android:endColor="#ffffff"/>
+</shape>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_selector_btn.xml b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_selector_btn.xml
new file mode 100644
index 0000000..8d79b80
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_selector_btn.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <corners
+ android:radius="5dp"/>
+ <gradient
+ android:angle="90"
+ android:startColor="#ff7900"
+ android:endColor="#ffb32f"/>
+ </shape>
+ </item>
+
+ <item android:state_pressed="false">
+ <shape>
+ <corners
+ android:radius="5dp"/>
+ <gradient
+ android:angle="90"
+ android:startColor="#0196fd"
+ android:endColor="#58c2fe"/>
+ </shape>
+ </item>
+</selector>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_selector_forget_pwd.xml b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_selector_forget_pwd.xml
new file mode 100644
index 0000000..4522da0
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_selector_forget_pwd.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <corners
+ android:radius="10dp"/>
+
+ <solid android:color="#ffffff"/>
+ <stroke android:color="#ff8e29" android:width="1.2dp"/>
+ </shape>
+ </item>
+
+ <item android:state_pressed="false">
+ <shape>
+ <corners
+ android:radius="10dp"/>
+ <solid android:color="#ffffff"/>
+ <stroke android:color="#56c9ff" android:width="1.2dp"/>
+
+ </shape>
+ </item>
+</selector>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_shape_blue.xml b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_shape_blue.xml
new file mode 100644
index 0000000..82287ce
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_shape_blue.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <corners
+ android:radius="12dp"/>
+ <solid android:color="#ff8e29"/>
+ <stroke android:color="#ff8e29"/>
+ </shape>
+ </item>
+
+ <item android:state_pressed="false">
+ <shape>
+ <corners
+ android:radius="12dp"/>
+ <solid android:color="#2b9eef"/>
+ <stroke android:color="#2b9eef"/>
+
+ </shape>
+ </item>
+</selector>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_shape_gray_input.xml b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_shape_gray_input.xml
new file mode 100644
index 0000000..072150f
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/drawable/llsdk_shape_gray_input.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#FFFFFF" />
+ <stroke android:color="#c1c1c1" android:width="1dp"/>
+ <corners android:radius="16dp"/>
+</shape>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/layout/llsdk_auth_view.xml b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_auth_view.xml
new file mode 100644
index 0000000..2a4d7fa
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_auth_view.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:orientation="vertical">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10dp"
+ android:gravity="center"
+ android:lineSpacingExtra="2dp"
+ android:text="@string/llsdk_auth_tip"
+ android:textColor="@color/llsdk_color_gary"
+ android:textSize="10sp" />
+
+ <EditText
+ android:id="@+id/ll_name_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="15dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_realname2"
+ android:inputType="text"
+ android:tag="4" />
+
+ <EditText
+ android:id="@+id/ll_id_number_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="6dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_idcard"
+ android:inputType="number"
+ android:tag="5" />
+
+ <Button
+ android:id="@+id/ll_submit_btn"
+ style="@style/llsdk_btn"
+ android:layout_gravity="center_horizontal"
+ android:layout_marginTop="12dp"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="纭瀹炲悕" />
+
+ </LinearLayout>
+ </ScrollView>
+</RelativeLayout>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/layout/llsdk_forget_view.xml b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_forget_view.xml
new file mode 100644
index 0000000..c859e15
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_forget_view.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:orientation="vertical">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <EditText
+ android:id="@+id/ll_new_pwd_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="20dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="杈撳叆鏂板瘑鐮�"
+ android:inputType="textPassword"
+ android:tag="2" />
+
+ <EditText
+ android:id="@+id/ll_submit_new_pwd_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="20dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="纭鏂板瘑鐮�"
+ android:inputType="textPassword"
+ android:tag="2" />
+
+ <Button
+ android:id="@+id/ll_change_btn"
+ style="@style/llsdk_btn"
+ android:layout_marginTop="20dp"
+ android:layout_marginRight="30dp"
+ android:layout_marginLeft="30dp"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="纭淇敼" />
+
+ </LinearLayout>
+
+ </ScrollView>
+</RelativeLayout>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/layout/llsdk_include_title.xml b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_include_title.xml
new file mode 100644
index 0000000..c63fe68
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_include_title.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/ll_title"
+ android:layout_width="match_parent"
+ android:layout_height="52dp"
+ android:paddingTop="5dp">
+
+ <ImageView
+ android:id="@+id/ll_close_iv"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_alignParentRight="true"
+ android:layout_centerInParent="true"
+ android:layout_centerVertical="true"
+ android:layout_marginRight="10dp"
+ android:scaleType="centerInside"
+ android:src="@drawable/llsdk_ic_back" />
+
+ <TextView
+ android:id="@+id/ll_dialog_tv"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerVertical="true"
+ android:layout_marginLeft="12dp"
+ android:textColor="@color/llsdk_color_blue"
+ android:textSize="17sp" />
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="2.5dp"
+ android:layout_alignParentBottom="true"
+ android:background="@color/llsdk_color_blue" />
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/layout/llsdk_login_view.xml b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_login_view.xml
new file mode 100644
index 0000000..88f7cd0
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_login_view.xml
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:orientation="vertical">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+
+ <Button
+ android:id="@+id/ll_quick_register_btn"
+ style="@style/llsdk_btn"
+ android:layout_alignParentBottom="true"
+ android:layout_alignParentRight="true"
+ android:layout_width="wrap_content"
+ android:layout_marginRight="15dp"
+ android:layout_height="28dp"
+ android:paddingLeft="8dp"
+ android:paddingRight="8dp"
+ android:layout_marginBottom="12dp"
+ android:layout_marginLeft="4dp"
+ android:textSize="14sp"
+ android:background="@drawable/llsdk_shape_blue"
+ android:text="@string/llsdk_quick_register" />
+
+ <TextView
+ android:id="@+id/ll_notice_tv"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:layout_marginBottom="15dp"
+ android:layout_marginLeft="15dp"
+ android:layout_marginTop="16dp"
+ android:layout_toLeftOf="@id/ll_quick_register_btn"
+ android:gravity="left"
+ android:maxLines="2"
+ android:layout_marginRight="10dp"
+ android:textColor="#8f8f8f"
+ android:textSize="14sp" />
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:layout_above="@id/ll_quick_register_btn"
+ android:scrollbars="none">
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingTop="12dp"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <RelativeLayout
+ android:id="@+id/ll_username_et_rl"
+ android:layout_width="match_parent"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:layout_height="44dp">
+
+ <ImageView
+ android:id="@+id/ll_down_iv"
+ android:layout_width="22dp"
+ android:layout_height="22dp"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:layout_marginRight="15dp"
+ android:src="@drawable/llsdk_ic_down"
+ android:visibility="visible" />
+
+ <EditText
+ android:id="@+id/ll_username_et"
+ style="@style/llsdk_edit_et"
+ android:paddingRight="10dp"
+ android:inputType="text"
+ android:maxLength="16"
+ android:layout_toLeftOf="@id/ll_down_iv"
+ android:hint="@string/llsdk_account"
+ android:tag="1" />
+
+ </RelativeLayout>
+
+
+ <RelativeLayout
+ android:id="@+id/ll_password_et_rl"
+ android:layout_width="match_parent"
+ android:layout_height="44dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:layout_marginTop="8dp"
+ android:layout_below="@id/ll_username_et_rl">
+
+ <TextView
+ android:id="@+id/ll_forget_pwd_btn"
+ android:layout_width="77dp"
+ android:layout_height="23dp"
+ android:layout_centerVertical="true"
+ android:text="蹇樿瀵嗙爜"
+ android:paddingLeft="5dp"
+ android:textColor="#56c9ff"
+ android:paddingRight="5dp"
+ android:textSize="13sp"
+ android:background="@drawable/llsdk_selector_forget_pwd"
+ android:layout_alignParentRight="true"
+ android:layout_marginRight="15dp"
+ android:gravity="center"
+ />
+
+ <EditText
+ android:id="@+id/ll_password_et"
+ style="@style/llsdk_edit_et"
+ android:maxLength="16"
+ android:paddingLeft="10dp"
+ android:layout_toLeftOf="@id/ll_forget_pwd_btn"
+ android:inputType="textPassword"
+ android:hint="@string/llsdk_pwd"
+ android:tag="2" />
+
+ </RelativeLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/ll_password_et_rl"
+ android:orientation="horizontal"
+ android:layout_marginTop="13dp">
+ <Button
+ android:id="@+id/ll_register_btn"
+ style="@style/llsdk_btn"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="@string/llsdk_register2" />
+
+ <Button
+ android:id="@+id/ll_login_btn"
+ style="@style/llsdk_btn"
+ android:layout_marginTop="12dp"
+ android:layout_marginLeft="8dp"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="@string/llsdk_login2" />
+ </LinearLayout>
+
+ </RelativeLayout>
+ </ScrollView>
+
+ <!--list-->
+ <RelativeLayout
+ android:id="@+id/ll_list_rl"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@android:color/transparent"
+ android:paddingLeft="15dp"
+ android:visibility="gone"
+ android:paddingRight="15dp">
+
+ <ListView
+ android:id="@+id/ll_user_list"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="30dp"
+ android:layout_marginTop="108dp"
+ android:divider="#cccccc"
+ android:dividerHeight="0.4dp"
+ android:scrollbars="vertical"
+ android:background="@drawable/llsdk_bg_gary_no_top"
+ android:visibility="visible">
+
+ </ListView>
+ </RelativeLayout>
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/layout/llsdk_pay_view.xml b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_pay_view.xml
new file mode 100644
index 0000000..34697f6
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_pay_view.xml
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="300dp"
+ android:background="@drawable/llsdk_bg_gary_nor"
+ android:orientation="vertical">
+
+ <RelativeLayout
+ android:id="@+id/ll_title"
+ android:layout_width="match_parent"
+ android:layout_height="52dp"
+ android:background="@drawable/llsdk_bg_white_nor"
+ android:paddingTop="5dp">
+
+ <ImageView
+ android:id="@+id/ll_close_iv"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_alignParentRight="true"
+ android:layout_centerInParent="true"
+ android:layout_centerVertical="true"
+ android:layout_marginRight="10dp"
+ android:scaleType="centerInside"
+ android:src="@drawable/llsdk_ic_close" />
+
+ <TextView
+ android:id="@+id/ll_dialog_tv"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:layout_marginLeft="6dp"
+ android:text="鏀粯涓績"
+ android:textColor="#ff7e00"
+ android:textSize="17sp" />
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:layout_alignParentBottom="true"
+ android:background="#d0d0d0" />
+
+ </RelativeLayout>
+
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="5dp"
+ android:layout_marginTop="5dp"
+ android:text="璐拱淇℃伅"
+ android:textColor="@color/llsdk_color_black"
+ android:textSize="16sp" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@drawable/llsdk_bg_gray_border"
+ android:orientation="vertical">
+
+ <TextView
+ android:id="@+id/ll_pay_name"
+ android:layout_width="match_parent"
+ android:layout_height="38dp"
+ android:gravity="center_vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="5dp"
+ android:text="鍟嗗搧鍚嶇О: "
+ android:textColor="@color/llsdk_color_black"
+ android:textSize="16sp" />
+
+ <View
+ android:id="@+id/ll_pay_account_v"
+ android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:background="#d0d0d0" />
+
+ <TextView
+ android:id="@+id/ll_pay_account"
+ android:layout_width="match_parent"
+ android:layout_height="38dp"
+ android:gravity="center_vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="5dp"
+ android:text="鏀粯璐﹀彿: "
+ android:textColor="@color/llsdk_color_black"
+ android:textSize="16sp" />
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:background="#d0d0d0" />
+
+ <TextView
+ android:id="@+id/ll_pay_money"
+ android:layout_width="match_parent"
+ android:layout_height="38dp"
+ android:gravity="center_vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="5dp"
+ android:text="鏀粯閲戦: "
+ android:textColor="@color/llsdk_color_black"
+ android:textSize="16sp" />
+
+ </LinearLayout>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="5dp"
+ android:layout_marginTop="5dp"
+ android:text="璇烽�夋嫨鏀粯鏂瑰紡锛�"
+ android:textColor="@color/llsdk_color_black"
+ android:textSize="16sp" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="56dp">
+
+ <ImageView
+ android:id="@+id/ll_pay_left"
+ android:layout_width="34dp"
+ android:layout_height="34dp"
+ android:layout_gravity="center_vertical"
+ android:scaleType="centerInside"
+ android:src="@drawable/llsdk_ic_back_big_left" />
+
+ <com.linglei.sdklib.view.HorizontalListView
+ android:id="@+id/ll_pay_lv"
+ android:layout_width="0dp"
+ android:layout_height="50dp"
+ android:layout_gravity="center_vertical"
+ android:layout_weight="1"
+ android:scrollbars="horizontal" />
+
+ <ImageView
+ android:id="@+id/ll_pay_right"
+ android:layout_width="34dp"
+ android:layout_height="34dp"
+ android:layout_gravity="center_vertical"
+ android:scaleType="centerInside"
+ android:src="@drawable/llsdk_ic_back_big_right" />
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ </ScrollView>
+</RelativeLayout>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/layout/llsdk_register_view.xml b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_register_view.xml
new file mode 100644
index 0000000..ceb54d9
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_register_view.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:orientation="vertical">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp"
+ android:paddingTop="6dp">
+
+ <EditText
+ android:id="@+id/ll_username_et"
+ style="@style/llsdk_edit_et"
+ android:layout_height="40dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_account"
+ android:inputType="text"
+ android:maxLength="16"
+ android:tag="1" />
+
+ <EditText
+ android:id="@+id/ll_password_et"
+ style="@style/llsdk_edit_et"
+ android:layout_height="40dp"
+ android:layout_marginTop="5dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_pwd"
+ android:inputType="textPassword"
+ android:maxLength="16"
+ android:tag="2" />
+
+ <EditText
+ android:id="@+id/ll_password_again_et"
+ style="@style/llsdk_edit_et"
+ android:layout_height="40dp"
+ android:layout_marginTop="5dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_confirm_pwd"
+ android:inputType="textPassword"
+ android:maxLength="16"
+ android:tag="2" />
+
+ <TextView
+ android:id="@+id/ll_terms_btn"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginBottom="2dp"
+ android:layout_marginTop="2dp"
+ android:gravity="center"
+ android:paddingBottom="3dp"
+ android:paddingTop="3dp"
+ android:text="@string/llsdk_read_terms"
+ android:textColor="#8f8f8f"
+ android:textSize="13sp" />
+
+ <Button
+ android:id="@+id/ll_register_btn"
+ style="@style/llsdk_btn"
+ android:layout_marginLeft="30dp"
+ android:layout_marginRight="30dp"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="@string/llsdk_register" />
+ </LinearLayout>
+ </ScrollView>
+</RelativeLayout>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/layout/llsdk_terms_view.xml b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_terms_view.xml
new file mode 100644
index 0000000..e2ad339
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_terms_view.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:orientation="vertical">
+
+ <RelativeLayout
+ android:id="@+id/ll_title"
+ android:layout_width="match_parent"
+ android:layout_height="52dp"
+ android:paddingTop="5dp"
+ >
+
+ <ImageView
+ android:id="@+id/ll_close_iv"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:scaleType="centerInside"
+ android:layout_centerInParent="true"
+ android:layout_marginRight="10dp"
+ android:src="@drawable/llsdk_ic_back" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:text="鐢ㄦ埛鍗忚"
+ android:layout_marginLeft="6dp"
+ android:textColor="@color/llsdk_color_blue"
+ android:textSize="17sp"
+ android:id="@+id/ll_dialog_tv"/>
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:layout_marginLeft="3dp"
+ android:layout_marginRight="3dp"
+ android:background="@drawable/llsdk_line_blue"
+ android:layout_alignParentBottom="true"/>
+
+ </RelativeLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/layout/llsdk_verify_change_view.xml b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_verify_change_view.xml
new file mode 100644
index 0000000..3e456aa
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_verify_change_view.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/ll_phone_root_rl"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:visibility="visible">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <EditText
+ android:id="@+id/ll_username_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="14dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_account"
+ android:inputType="text"
+ android:tag="1" />
+ <TextView
+ android:id="@+id/ll_get_verify_num"
+ android:layout_width="wrap_content"
+ android:layout_height="30dp"
+ android:background="@drawable/llsdk_bg_green_border"
+ android:gravity="center"
+ android:paddingLeft="8dp"
+ android:paddingRight="8dp"
+ android:layout_gravity="center_horizontal"
+ android:layout_marginTop="8dp"
+ android:text="@string/llsdk_get_verify_num"
+ android:textColor="@color/llsdk_color_green"
+ android:textSize="15sp" />
+
+ <EditText
+ android:id="@+id/ll_verify_num_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginRight="5dp"
+ android:hint="@string/llsdk_verify_num"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:inputType="phone"
+ android:layout_marginTop="10dp"
+ android:tag="6" />
+
+ <Button
+ android:id="@+id/ll_commit_btn"
+ style="@style/llsdk_btn"
+ android:layout_marginTop="10dp"
+ android:layout_marginLeft="30dp"
+ android:layout_marginRight="30dp"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="@string/llsdk_submit" />
+ </LinearLayout>
+ </ScrollView>
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/layout/llsdk_verify_view.xml b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_verify_view.xml
new file mode 100644
index 0000000..6c7823a
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/layout/llsdk_verify_view.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/ll_phone_root_rl"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:visibility="visible">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <EditText
+ android:id="@+id/ll_phone_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="14dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_phone_two2"
+ android:inputType="phone"
+ android:tag="3" />
+ <TextView
+ android:id="@+id/ll_get_verify_num"
+ android:layout_width="wrap_content"
+ android:layout_height="30dp"
+ android:background="@drawable/llsdk_bg_green_border"
+ android:gravity="center"
+ android:paddingLeft="8dp"
+ android:paddingRight="8dp"
+ android:layout_gravity="center_horizontal"
+ android:layout_marginTop="8dp"
+ android:text="@string/llsdk_get_verify_num"
+ android:textColor="@color/llsdk_color_green"
+ android:textSize="15sp" />
+
+ <EditText
+ android:id="@+id/ll_verify_num_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginRight="5dp"
+ android:hint="@string/llsdk_rule_tip_two"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:inputType="phone"
+ android:layout_marginTop="10dp"
+ android:tag="6" />
+
+ <Button
+ android:id="@+id/ll_commit_btn"
+ style="@style/llsdk_btn"
+ android:layout_marginTop="10dp"
+ android:layout_marginLeft="30dp"
+ android:layout_marginRight="30dp"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="@string/llsdk_submit" />
+ </LinearLayout>
+ </ScrollView>
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/values/llsdk_colors.xml b/Project/js_sdk/src/game_jsgame/res/values/llsdk_colors.xml
new file mode 100644
index 0000000..ac25741
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/values/llsdk_colors.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <color name="llsdk_color_white">#FFFFFF</color>
+ <color name="llsdk_color_black">#000000</color>
+ <color name="llsdk_color_red">#eb9500</color>
+ <color name="llsdk_color_green">#2b9581</color>
+ <color name="llsdk_color_gary">#8f8f8f</color>
+ <color name="llsdk_color_blue">#62b0ff</color>
+</resources>
\ No newline at end of file
diff --git a/Project/js_sdk/src/game_jsgame/res/values/llsdk_strings.xml b/Project/js_sdk/src/game_jsgame/res/values/llsdk_strings.xml
new file mode 100644
index 0000000..59b3beb
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/values/llsdk_strings.xml
@@ -0,0 +1,35 @@
+<resources>
+ <string name="llsdk_forget_pwd">蹇樿瀵嗙爜</string>
+ <string name="llsdk_account">璐﹀彿</string>
+ <string name="llsdk_pwd">瀵嗙爜</string>
+ <string name="llsdk_login">鐧诲綍</string>
+ <string name="llsdk_login2">杩涘叆娓告垙</string>
+ <string name="llsdk_register">娉ㄥ唽</string>
+ <string name="llsdk_register2">娉ㄥ唽璐﹀彿</string>
+ <string name="llsdk_quick_register">涓�閿敞鍐�</string>
+ <string name="llsdk_account_two">璐�        鍙�</string>
+ <string name="llsdk_pwd_two">瀵�        鐮�</string>
+ <string name="llsdk_account_three">璐�    鍙�</string>
+ <string name="llsdk_verify_num">楠岃瘉鐮�</string>
+ <string name="llsdk_get_verify_num">鑾峰彇楠岃瘉鐮�</string>
+ <string name="llsdk_confirm_pwd">纭瀵嗙爜</string>
+ <string name="llsdk_read_terms">闃呰鏈嶅姟鏉℃</string>
+ <string name="llsdk_bind_phone">缁戝畾鎵嬫満</string>
+ <string name="llsdk_phone_two">鎵�    鏈�</string>
+ <string name="llsdk_phone_two2">鎵嬫満</string>
+ <string name="llsdk_submit">鎻愪氦</string>
+ <string name="llsdk_bind_phone_tip">灏婃暚鐨勭敤鎴凤紝鎮ㄧ殑璐﹀彿鍙兘瀛樺湪椋庨櫓锛屼负纭繚鎮ㄧ殑璐﹀彿瀹夊叏锛岃绔嬪嵆缁戝畾鎵嬫満</string>
+ <string name="llsdk_new_pwd">鏂�  瀵�  鐮�</string>
+ <string name="llsdk_confirm">纭</string>
+ <string name="llsdk_auth">瀹炲悕璁よ瘉</string>
+ <string name="llsdk_auth_tip">灏婃暚鐨勭敤鎴�,搴斿浗瀹惰姹�,娓告垙鐢ㄦ埛闇�杩涜瀹炲悕璁よ瘉\n锛堣祫鏂欎繚瀵嗭紝鏈垚骞翠汉鏀粯闄愰锛�</string>
+ <string name="llsdk_realname">濮�    鍚�</string>
+ <string name="llsdk_realname2">濮撳悕</string>
+ <string name="llsdk_idcard">韬唤璇�</string>
+ <string name="llsdk_rule_tip_one">6–16浣嶆暟瀛楁垨瀛楁瘝</string>
+ <string name="llsdk_rule_tip_two">6浣嶆暟楠岃瘉鐮�</string>
+ <string name="llsdk_rule_tip_three">11浣嶆暟瀛楁墜鏈�</string>
+ <string name="llsdk_rule_tip_four">2–15浣嶄腑鏂囧瓧绗�</string>
+ <string name="llsdk_rule_tip_five">18浣嶆暟瀛楄韩浠借瘉</string>
+
+</resources>
diff --git a/Project/js_sdk/src/game_jsgame/res/values/llsdk_styles.xml b/Project/js_sdk/src/game_jsgame/res/values/llsdk_styles.xml
new file mode 100644
index 0000000..9501f5c
--- /dev/null
+++ b/Project/js_sdk/src/game_jsgame/res/values/llsdk_styles.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <style name="llsdk_dialog" parent="@android:style/Theme.NoTitleBar">
+ <item name="android:windowFrame">@null</item>
+ <item name="android:windowNoTitle">true</item>
+ <item name="android:windowBackground">@android:color/transparent</item>
+ <item name="android:windowIsFloating">true</item>
+ <item name="android:windowIsTranslucent">true</item>
+ <item name="android:windowContentOverlay">@null</item>
+ <item name="android:windowAnimationStyle">@null</item>
+ <!--<item name="android:windowFullscreen">true</item>-->
+ <item name="android:backgroundDimEnabled">true</item>
+ </style>
+
+ <style name="llsdk_edit_tv">
+ <item name="android:layout_width">wrap_content</item>
+ <item name="android:layout_height">wrap_content</item>
+ <item name="android:layout_centerVertical">true</item>
+ <item name="android:padding">3dp</item>
+ <item name="android:layout_marginLeft">2dp</item>
+ <item name="android:textColor">#8f8f8f</item>
+ <item name="android:textSize">15sp</item>
+ </style>
+
+ <style name="llsdk_edit_et">
+ <item name="android:layout_width">match_parent</item>
+ <item name="android:layout_height">44dp</item>
+ <item name="android:layout_centerVertical">true</item>
+ <item name="android:background">@android:color/transparent</item>
+ <item name="android:gravity">center_vertical</item>
+ <item name="android:textColor">#111111</item>
+ <item name="android:textSize">15sp</item>
+ <item name="android:paddingLeft">10dp</item>
+ <item name="android:textColorHint">#cfcfcf</item>
+ <item name="android:lines">1</item>
+ </style>
+
+ <style name="llsdk_btn">
+ <item name="android:layout_gravity">center_horizontal</item>
+ <item name="android:layout_width">match_parent</item>
+ <item name="android:layout_height">44dp</item>
+ <item name="android:textColor">@color/llsdk_color_white</item>
+ <item name="android:textSize">16sp</item>
+ </style>
+</resources>
\ No newline at end of file
diff --git a/Project/js_sdk/src/main/AndroidManifest.xml b/Project/js_sdk/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..e7c1caa
--- /dev/null
+++ b/Project/js_sdk/src/main/AndroidManifest.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.secondworld.univeralsdk"
+ android:installLocation="auto"
+ android:versionCode="1"
+ android:versionName="1.1.0">
+
+ <uses-sdk
+ android:minSdkVersion="16"
+ android:targetSdkVersion="22" />
+
+ <uses-permission android:name="android.permission.INTERNET" />
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+ <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
+ <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+ <uses-permission android:name="android.permission.RECORD_AUDIO" />
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.WAKE_LOCK" />
+ <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+ <uses-permission android:name="android.permission.VIBRATE" />
+ <uses-permission android:name="android.permission.GET_TASKS" />
+ <uses-permission android:name="android.permission.WRITE_SETTINGS" />
+ <uses-permission android:name="android.permission.READ_LOGS" />
+ <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
+ <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
+ <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
+
+ <application
+ android:allowBackup="true"
+ android:icon="@drawable/app_icon"
+ android:hardwareAccelerated="false"
+ android:isGame="true"
+ android:label="@string/app_name"
+ android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen">
+
+ <meta-data
+ android:name="android.max_aspect"
+ android:value="1075838976.000000" />
+
+ <meta-data
+ android:name="com.samsung.android.keepalive.density"
+ android:value="true" />
+
+ <meta-data
+ android:name="android.notch_support"
+ android:value="true" />
+
+ <meta-data
+ android:name="notch.config"
+ android:value="portrait|landscape" />
+
+ <meta-data
+ android:name="android.vendor.full_screen"
+ android:value="true" />
+
+ <activity
+ android:name="com.secondworld.univeralsdk.MainActivity"
+ android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection"
+ android:label="@string/app_name"
+ android:launchMode="singleTask"
+ android:screenOrientation="sensorLandscape">
+ <intent-filter>
+ <action android:name="${appId}.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
+ </intent-filter>
+
+ <meta-data
+ android:name="unityplayer.UnityActivity"
+ android:value="true" />
+ <meta-data
+ android:name="unityplayer.SkipPermissionsDialog"
+ android:value="true" />
+
+ <meta-data
+ android:name="android.vendor.home_indicator"
+ android:value="hide" />
+
+ <meta-data
+ android:name="android.max_aspect"
+ android:value="1075419520.000000" />
+
+ <meta-data
+ android:name="com.samsung.android.keepalive.density"
+ android:value="true" />
+
+ </activity>
+
+ <!-- 閽堝7.0浠ヤ笂鐨刟pi寮�鏀剧殑鏂囦欢鏉冮檺 -->
+ <!--<provider-->
+ <!--android:name="android.support.v4.content.FileProvider"-->
+ <!--android:authorities="${appId}.fileProvider"-->
+ <!--android:grantUriPermissions="true"-->
+ <!--android:exported="false">-->
+ <!--<meta-data-->
+ <!--android:name="android.support.FILE_PROVIDER_PATHS"-->
+ <!--android:resource="@xml/file_paths" />-->
+ <!--</provider>-->
+
+ </application>
+
+</manifest>
\ No newline at end of file
diff --git a/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/BatteryUtil.java b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/BatteryUtil.java
new file mode 100644
index 0000000..abd77fb
--- /dev/null
+++ b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/BatteryUtil.java
@@ -0,0 +1,113 @@
+package com.secondworld.univeralsdk;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.BatteryManager;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created by Administrator on 2018/7/15 0015.
+ */
+
+public class BatteryUtil
+{
+ private static BatteryUtil s_Instance = null;
+
+ public static BatteryUtil getInstance()
+ {
+ if (s_Instance == null)
+ {
+ s_Instance = new BatteryUtil();
+ }
+ return s_Instance;
+ }
+
+ private BatteryBroadCastReceiver m_BatteryBroadCastReceiver;
+
+ private BatteryUtil() {}
+
+ public void start(Context context)
+ {
+ m_BatteryBroadCastReceiver = new BatteryBroadCastReceiver();
+ IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
+ context.registerReceiver(m_BatteryBroadCastReceiver, filter);
+ }
+
+ public void stop(Context context)
+ {
+ context.unregisterReceiver(m_BatteryBroadCastReceiver);
+ m_BatteryBroadCastReceiver = null;
+ }
+
+ private class BatteryBroadCastReceiver extends BroadcastReceiver
+ {
+ private int m_BatteryLevel;
+ private int m_Status;
+
+ public BatteryBroadCastReceiver()
+ {
+ m_BatteryLevel = 0;
+ }
+
+ @Override
+ public void onReceive(Context context, Intent intent)
+ {
+ if (intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED))
+ {
+ int _batteryLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
+
+ Map<String, Object> _msg = new HashMap<>();
+
+ if (_batteryLevel != m_BatteryLevel)
+ {
+ try
+ {
+ _msg.put("code", CodeA2U.BatteryLevel);
+ _msg.put("level", _batteryLevel);
+
+ UniversalUtil.sendMessageToUnity(_msg);
+
+ m_BatteryLevel = _batteryLevel;
+
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ int _status = intent.getIntExtra("status", 0);
+
+ if (_status != m_Status)
+ {
+ _msg.clear();
+
+ int _transCode = 0;
+ if (_status == BatteryManager.BATTERY_STATUS_CHARGING)
+ {
+ _transCode = 2;
+ }
+ else if (_status == BatteryManager.BATTERY_STATUS_NOT_CHARGING ||
+ _status == BatteryManager.BATTERY_STATUS_DISCHARGING)
+ {
+ _transCode = 1;
+ }
+ else if (_status == BatteryManager.BATTERY_STATUS_FULL)
+ {
+ _transCode = 3;
+ }
+
+ _msg.put("code", CodeA2U.BatteryCharging);
+ _msg.put("status", _transCode);
+
+ UniversalUtil.sendMessageToUnity(_msg);
+
+ m_Status = _status;
+ }
+ }
+ }
+ }
+}
diff --git a/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/CodeA2U.java b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/CodeA2U.java
new file mode 100644
index 0000000..f74f976
--- /dev/null
+++ b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/CodeA2U.java
@@ -0,0 +1,59 @@
+package com.secondworld.univeralsdk;
+
+/**
+ * Created by Administrator on 2018/7/18 0018.
+ */
+
+public class CodeA2U
+{
+ /**
+ * 璧勬簮鎷疯礉瀹屾垚
+ */
+ public static final int AssetCopyFinished = 0;
+ /**
+ * 鐢甸噺鏀瑰彉
+ */
+ public static final int BatteryLevel = 1;
+ /**
+ * 鍏呯數鐘舵�佹敼鍙�
+ */
+ public static final int BatteryCharging = 2;
+ /**
+ * 鍥炶皟sdk閫昏緫瀹屾瘯
+ * */
+ public static final int SdkInitComplete = 90;
+ /**
+ * 鍥炶皟android璁惧淇℃伅
+ * */
+ public static final int DeviceInfo = 3;
+ /**
+ * 鍥炶皟鎺ㄩ�佺殑鐙珛id
+ * */
+ public static final int PushClientID = 4;
+ /**
+ * 鍥炶皟澶栭儴瀛樺偍鏍圭洰褰曞湴鍧�
+ */
+ public static final int ExternalStorage = 5;
+
+ /**
+ * --------------------------------------------------------------------------------------------
+ * 浠ヤ笅涓哄悇鑷」鐩甋DK鐩稿叧
+ * --------------------------------------------------------------------------------------------
+ */
+
+ // ------------------------------------------------------------------------------------------
+ // 鑷敱SDK鐩稿叧鍥炶皟Code
+ // ------------------------------------------------------------------------------------------
+ public static final int FreePlatformInitOk = 10;
+ public static final int FreePlatformInitFail = 11;
+ public static final int FreePlatformLoginOk = 12;
+ public static final int FreePlatformLoginFail = 13;
+ public static final int FreePlatformLoginCancel = 14;
+ public static final int FreePlatformLogoutOk = 15;
+ public static final int FreePlatformLogoutFail = 16;
+ public static final int FreePlatformSwitchAccountOk = 17;
+ public static final int FreePlatformPayOk = 18;
+ public static final int FreePlatformPayFail = 19;
+ public static final int FreePlatformPayCancel = 20;
+ public static final int FreePlatformRegisterOk = 21;
+}
diff --git a/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/CodeU2A.java b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/CodeU2A.java
new file mode 100644
index 0000000..7a30a74
--- /dev/null
+++ b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/CodeU2A.java
@@ -0,0 +1,84 @@
+package com.secondworld.univeralsdk;
+
+/**
+ * Created by Administrator on 2018/7/18 0018.
+ */
+
+public class CodeU2A
+{
+ /**
+ * 鎵ц璧勬簮鎷疯礉
+ */
+ public static final int AssetCopy = 0;
+ /**
+ * 鎵ц寮�濮嬬數閲忔敼鍙�,鍏呯數鐘舵�佹敼鍙樼洃鍚�
+ */
+ public static final int BatteryListenStart = 1;
+ /**
+ * 鎵ц鍋滄鐢甸噺鏀瑰彉,鍏呯數鐘舵�佹敼鍙樼洃鍚�
+ */
+ public static final int BatteryListenStop = 2;
+ /**
+ * 鑾峰彇鍞竴璇嗗埆鐮�
+ */
+ public static final int UniqueID = 3;
+ /**
+ * 鐢宠鍦ˋndroidManifest鏂囦欢涓�
+ */
+ public static final int RequestManifestPermissions = 4;
+ /**
+ * 鍗曠嫭鍔ㄦ�佺敵璇锋煇涓�涓潈闄�
+ */
+ public static final int RequestPermission = 5;
+ /**
+ * 閲嶅惎搴旂敤
+ */
+ public static final int RestartApp = 6;
+ /**
+ * 鎷疯礉鏂囨湰淇℃伅
+ */
+ public static final int CopyContent = 7;
+ /**
+ * 鎵撳紑缃戝潃
+ */
+ public static final int OpenWebView = 8;
+ /**
+ * SDK鍒濆鍖�, 瀹屽叏鑷姩鍒濆鍖栫殑娴佺▼, 瀹屾垚蹇呰閫昏緫鍚庡啀鍥炶皟鍥炲幓
+ */
+ public static final int Init = 9;
+ /**
+ * 瀹夎搴旂敤
+ */
+ public static final int InstallAPK = 10;
+ /**
+ * 澶栭儴瀛樺偍鏍圭洰褰曞湴鍧�
+ */
+ public static final int ExteneralStorage = 11;
+
+ /**
+ * --------------------------------------------------------------------------------------------
+ * 浠ヤ笅涓哄悇鑷」鐩甋DK鐩稿叧
+ * --------------------------------------------------------------------------------------------
+ */
+ /**
+ * 鑷敱sdk鐩稿叧
+ * */
+ public static final int FreePlatformInit = 100;
+ public static final int FreePlatformLogin = 101;
+ public static final int FreePlatformLogout = 102;
+ public static final int FreePlatformSwitchAccount = 103;
+ public static final int FreePlatformPay = 104;
+ public static final int PayFinished = 105;
+ public static final int CreateRole = 106;
+ public static final int RoleLogin = 107;
+ public static final int RoleLevelUp = 108;
+ /**
+ * 鏋佸厜鎺ㄩ��
+ * */
+ public static final int JPushAddLocalMessage = 200;
+ public static final int JPushRemoveLocalMessage = 201;
+ /**
+ * ClientPackage鍚憇dk鍙戦�佸垎鍖卛d
+ */
+ public static final int ClientPackage = 400;
+}
diff --git a/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/CrashCatchUtil.java b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/CrashCatchUtil.java
new file mode 100644
index 0000000..21f1d5c
--- /dev/null
+++ b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/CrashCatchUtil.java
@@ -0,0 +1,233 @@
+package com.secondworld.univeralsdk;
+
+import android.content.Context;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.os.Build;
+import android.os.Looper;
+import android.os.SystemClock;
+import android.widget.Toast;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FilenameFilter;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created by Administrator on 2018/7/19 0019.
+ */
+
+public class CrashCatchUtil implements Thread.UncaughtExceptionHandler
+{
+ private static final String TAG = "CrashCatchUtil";
+ private Context m_Context;
+ private Thread.UncaughtExceptionHandler m_UncaughtExceptionHandler;
+ private Map<String, String> m_DevicceInfo = new HashMap<>();
+
+ private CrashCatchUtil() {}
+
+ private static CrashCatchUtil m_Instance;
+
+ public static CrashCatchUtil getInstance()
+ {
+ if (m_Instance == null)
+ {
+ m_Instance = new CrashCatchUtil();
+ }
+ return m_Instance;
+ }
+
+ public void init(Context context)
+ {
+ m_Context = context;
+ m_UncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
+ Thread.setDefaultUncaughtExceptionHandler(this);
+ autoClear(5);
+ }
+
+ @Override
+ public void uncaughtException(Thread thread, Throwable throwable)
+ {
+ if (!handleException(throwable) && m_UncaughtExceptionHandler != null)
+ {
+ m_UncaughtExceptionHandler.uncaughtException(thread, throwable);
+ }
+ else
+ {
+ SystemClock.sleep(3000);
+ android.os.Process.killProcess(android.os.Process.myPid());
+ System.exit(1);
+ }
+ }
+
+ private void recordDeviceInfo()
+ {
+ m_DevicceInfo.clear();
+ m_DevicceInfo.put("brand", Build.BRAND);
+ m_DevicceInfo.put("model", Build.MODEL);
+ m_DevicceInfo.put("android_version", String.valueOf(Build.VERSION.SDK_INT));
+ try
+ {
+ PackageManager _pkgMgr = m_Context.getPackageManager();
+ PackageInfo _pkgInfo = _pkgMgr.getPackageInfo(m_Context.getPackageName(),
+ PackageManager.GET_ACTIVITIES);
+ if (_pkgInfo != null)
+ {
+ m_DevicceInfo.put("versionName", _pkgInfo.versionName);
+ m_DevicceInfo.put("versionCode", String.valueOf(_pkgInfo.versionCode));
+ }
+ } catch (PackageManager.NameNotFoundException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ private boolean handleException(Throwable throwable)
+ {
+ if (throwable == null)
+ {
+ return false;
+ }
+
+ try
+ {
+ new Thread(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ Looper.prepare();
+ Toast.makeText(m_Context, "绋嬪簭鍑虹幇寮傚父,鍗冲皢閲嶅惎", Toast.LENGTH_LONG).show();
+ Looper.loop();
+ }
+ }).start();
+
+ recordDeviceInfo();
+
+ save(throwable);
+
+ SystemClock.sleep(3000);
+
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ return true;
+ }
+
+ private String save(Throwable throwable) throws Exception
+ {
+ StringBuffer sb = new StringBuffer();
+ try
+ {
+ SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String date = sDateFormat.format(new Date());
+ sb.append("\r\n" + date + "\n");
+ for (Map.Entry<String, String> entry : m_DevicceInfo.entrySet())
+ {
+ String key = entry.getKey();
+ String value = entry.getValue();
+ sb.append(key + "=" + value + "\n");
+ }
+
+ Writer writer = new StringWriter();
+ PrintWriter printWriter = new PrintWriter(writer);
+ throwable.printStackTrace(printWriter);
+ Throwable cause = throwable.getCause();
+ while (cause != null)
+ {
+ cause.printStackTrace(printWriter);
+ cause = cause.getCause();
+ }
+ printWriter.flush();
+ printWriter.close();
+ String result = writer.toString();
+ sb.append(result);
+
+ String fileName = writeFile(sb.toString());
+ return fileName;
+ } catch (Exception e)
+ {
+ sb.append("鍐欏叆宕╂簝鏃ュ織鏃�, 鍑虹幇浜嗗紓甯哥姸鍐�...\r\n");
+ writeFile(sb.toString());
+ }
+ return null;
+
+ }
+
+ private DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+
+ private String writeFile(String sb) throws Exception
+ {
+ String time = formatter.format(new Date());
+ String fileName = "crash-" + time + ".log";
+ String path = getPath();
+ File dir = new File(getPath());
+ if (!dir.exists())
+ {
+ dir.mkdirs();
+ }
+ FileOutputStream fos = new FileOutputStream(path + fileName, true);
+ fos.write(sb.getBytes());
+ fos.flush();
+ fos.close();
+ return fileName;
+ }
+
+ private String getPath()
+ {
+ return m_Context.getExternalFilesDir("").getAbsolutePath()
+ + File.separator
+ + "crash"
+ + File.separator;
+ }
+
+ /**
+ * 鏂囦欢鍒犻櫎
+ *
+ * @param autoClearDay 鏂囦欢淇濆瓨澶╂暟
+ */
+ public void autoClear(final int autoClearDay)
+ {
+ delete(getPath(), new FilenameFilter()
+ {
+ @Override
+ public boolean accept(File file, String filename)
+ {
+ String s = FileUtil.getFileNameWithoutExtension(filename);
+ int day = autoClearDay < 0 ? autoClearDay : -1 * autoClearDay;
+ String date = "crash-" + getOtherDay(day);
+ return date.compareTo(s) >= 0;
+ }
+ });
+ }
+
+ private void delete(String path, FilenameFilter filter)
+ {
+ File _file = new File(path);
+ if (!_file.exists())
+ {
+ return;
+ }
+ File[] _files = _file.listFiles(filter);
+ for (int i = _files.length - 1; i >= 0; i--)
+ {
+ _files[i].delete();
+ }
+ }
+
+ private String getOtherDay(int offset)
+ {
+ Calendar _calendar = Calendar.getInstance();
+ _calendar.add(Calendar.DATE, offset);
+ return formatter.format(_calendar.getTime());
+ }
+}
diff --git a/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/DebugUtil.java b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/DebugUtil.java
new file mode 100644
index 0000000..5e6da5d
--- /dev/null
+++ b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/DebugUtil.java
@@ -0,0 +1,59 @@
+package com.secondworld.univeralsdk;
+
+import android.app.Activity;
+import android.os.Environment;
+import android.util.Log;
+
+import java.io.File;
+
+/**
+ * Created by Administrator on 2018/7/20 0020.
+ */
+
+public class DebugUtil
+{
+ private final String TAG = "DebugUtil";
+
+ private static DebugUtil s_Instance;
+
+ public static DebugUtil getInstance()
+ {
+ if (s_Instance == null)
+ {
+ s_Instance = new DebugUtil();
+ }
+ return s_Instance;
+ }
+
+ private DebugUtil() {}
+
+ private boolean m_Enable = false;
+
+ private Activity m_Activity;
+
+ public void init(Activity activity)
+ {
+ m_Activity = activity;
+
+ String _path = Environment.getExternalStorageDirectory() + File.separator + activity.getPackageName();
+ Log.i(TAG, _path);
+ File _dir = new File(_path);
+ if (!_dir.exists())
+ {
+ _dir.mkdir();
+ }
+ _path = _path + File.separator + "SdkDebug";
+ _dir = new File(_path);
+ m_Enable = _dir.exists();
+ if(m_Enable){
+ Log.i(TAG, "--------- SDK璋冭瘯妯″紡: 寮�鍚� ---------");
+ }else{
+ Log.i(TAG, "--------- SDK璋冭瘯妯″紡: 鍏抽棴 ---------");
+ }
+ }
+
+ public boolean enable()
+ {
+ return m_Enable;
+ }
+}
diff --git a/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/FileUtil.java b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/FileUtil.java
new file mode 100644
index 0000000..fbb1a8d
--- /dev/null
+++ b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/FileUtil.java
@@ -0,0 +1,179 @@
+package com.secondworld.univeralsdk;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.content.res.AssetManager;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created by Administrator on 2018/6/14 0014.
+ */
+
+public class FileUtil
+{
+
+ private static final String TAG = "H2Engine_FileUtil";
+
+ /**
+ * Unity闅忓寘璧勬簮(StreamingAssets)鎷疯礉鑷� persistentDataPath 璺緞涓�
+ */
+ public static void copyAssets(final Activity activity)
+ {
+
+ // 鍒ゆ柇鏄惁宸茬粡鎵ц杩�
+ SharedPreferences _sp = activity.getPreferences(Context.MODE_PRIVATE);
+ Boolean _isCopied = hasCopy(activity);
+
+ LogUtil.i(TAG, "鏄惁宸茬粡鎵ц杩囨嫹璐濋�昏緫: " + _isCopied);
+
+ // 鑾峰彇褰撳墠鍖呯殑鐗堟湰鍙�
+ final String _currentVer = UniversalUtil.GetVersionName(activity);
+
+ // 宸茬粡鎷疯礉杩�, 鍒欏啀娆″垽鏂竴娆$増鏈彿
+ // 濡傛灉鐗堟湰鍙蜂笉鐩稿悓, 鍒欓噸鏂拌繘琛屾嫹璐�
+ // 鑾峰彇鏈湴瀛樺偍鐨勭増鏈彿
+ String _installVer = _sp.getString(StaticDefine.LS_KEY_VERSION, "");
+
+ if (!_installVer.equals(_currentVer))
+ {
+ LogUtil.i(TAG, "鐗堟湰姣旇緝杩囧悗鍙戠幇涓嶅悓: " + _installVer + " != " + _currentVer);
+ SharedPreferences.Editor _editor = _sp.edit();
+ // 瀛樺偍姝ゆ鐨勭増鏈俊鎭�
+ _editor.putString(StaticDefine.LS_KEY_VERSION, _currentVer);
+ _editor.apply();
+
+ if (_isCopied)
+ {
+ // 灏嗘湰鍦板瓨鍌ㄤ慨鏀逛负鏈嫹璐濊繃
+ deleteRecord(activity);
+ _isCopied = false;
+ }
+ }
+
+ if (_isCopied)
+ {
+ Map<String, Object> _msg = new HashMap<>();
+ _msg.put("code", CodeA2U.AssetCopyFinished);
+ UniversalUtil.sendMessageToUnity(_msg);
+ return;
+ }
+
+ new Thread(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+
+ String _dest = activity.getExternalFilesDir("").getAbsolutePath();
+ AssetManager _assetMgr = activity.getAssets();
+
+ try
+ {
+
+ String[] _fileNames = _assetMgr.list("android");
+ if (_fileNames != null)
+ {
+ for (String _fileName : _fileNames)
+ {
+ copy(activity, "android" + File.separator + _fileName,
+ _dest + File.separator + _fileName);
+ }
+ }
+
+ recordCopy(activity);
+
+ Map<String, Object> _msg = new HashMap<>();
+ _msg.put("code", CodeA2U.AssetCopyFinished);
+ UniversalUtil.sendMessageToUnity(_msg);
+
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+
+ }
+ }).start();
+ }
+
+ public static void copy(Context context, String original, String dest)
+ {
+ try
+ {
+ String _fileNames[] = context.getAssets().list(original);
+ if (_fileNames.length > 0)
+ {
+ File _dir = new File(dest);
+ _dir.mkdir();
+ LogUtil.i("FileUtil", "[" + original + "] 鏄竴涓枃浠跺す, 鍒涘缓鏂囦欢澶�: [" + dest + "]");
+ for (String _fileName : _fileNames)
+ {
+ copy(context, original + File.separator + _fileName,
+ dest + File.separator + _fileName);
+ }
+ }
+ else
+ {
+ InputStream _is = context.getAssets().open(original);
+ FileOutputStream _fos = new FileOutputStream(new File(dest));
+ byte[] _buffer = new byte[1024];
+ int _byteCount;
+ while ((_byteCount = _is.read(_buffer)) != -1)
+ {
+ _fos.write(_buffer, 0, _byteCount);
+ }
+ _fos.flush();
+ _is.close();
+ _fos.close();
+ LogUtil.i("FileUtil", "鏂囦欢: " + original + " 宸叉嫹璐濊嚦: " + dest);
+ }
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ public static String getFileNameWithoutExtension(String fileName)
+ {
+ return fileName.substring(0, fileName.lastIndexOf("."));
+ }
+
+ private static boolean hasCopy(Context context)
+ {
+ File _file = new File(context.getExternalFilesDir(""), "/assetCopyFinish.txt");
+ return _file.exists();
+ }
+
+ private static void deleteRecord(Context context)
+ {
+ File _file = new File(context.getExternalFilesDir(""), "/assetCopyFinish.txt");
+ if (_file.exists())
+ {
+ _file.delete();
+ }
+ }
+
+ private static void recordCopy(Context context)
+ {
+ File _file = new File(context.getExternalFilesDir(""), "/assetCopyFinish.txt");
+ try
+ {
+ FileOutputStream _fos = new FileOutputStream(_file);
+ Writer _writer = new OutputStreamWriter(_fos, "UTF-8");
+ _writer.write(1);
+ _writer.close();
+ _fos.close();
+ } catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/JPushReceiver.java b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/JPushReceiver.java
new file mode 100644
index 0000000..9ec4e3b
--- /dev/null
+++ b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/JPushReceiver.java
@@ -0,0 +1,147 @@
+package com.secondworld.univeralsdk;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import cn.jpush.android.api.JPushInterface;
+
+/**
+ * Created by Administrator on 2018/6/16 0016.
+ */
+public class JPushReceiver extends BroadcastReceiver
+{
+ private static final String TAG = "JPushReceiver";
+
+ @Override
+ public void onReceive(Context context, Intent intent)
+ {
+ try
+ {
+ Bundle bundle = intent.getExtras();
+ Log.d(TAG,
+ "[MyReceiver] onReceive - " + intent.getAction() + ", extras: " + printBundle(
+ bundle));
+
+ if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction()))
+ {
+ String regId = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);
+ Log.d(TAG, "[MyReceiver] 鎺ユ敹Registration Id : " + regId);
+ //send the Registration Id to your server...
+ Map<String, Object> _msgStruct = new HashMap<>();
+ _msgStruct.put("code", CodeA2U.PushClientID);
+ _msgStruct.put("clientID", regId);
+ UniversalUtil.sendMessageToUnity(_msgStruct);
+ }
+ else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction()))
+ {
+ processCustomMessage(context, bundle);
+ }
+ else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction()))
+ {
+ Log.d(TAG, "[MyReceiver] 鎺ユ敹鍒版帹閫佷笅鏉ョ殑閫氱煡");
+ int notifactionId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID);
+ Log.d(TAG, "[MyReceiver] 鎺ユ敹鍒版帹閫佷笅鏉ョ殑閫氱煡鐨処D: " + notifactionId);
+ }
+ else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction()))
+ {
+ Log.d(TAG, "[MyReceiver] 鐢ㄦ埛鐐瑰嚮鎵撳紑浜嗛�氱煡");
+ //鎵撳紑鑷畾涔夌殑Activity
+ Intent i = new Intent(context, MainActivity.class);
+ i.putExtras(bundle);
+ i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ context.startActivity(i);
+ }
+ else if (JPushInterface.ACTION_RICHPUSH_CALLBACK.equals(intent.getAction()))
+ {
+ Log.d(TAG, "[MyReceiver] 鐢ㄦ埛鏀跺埌鍒癛ICH PUSH CALLBACK: " + bundle.getString(
+ JPushInterface.EXTRA_EXTRA));
+ //鍦ㄨ繖閲屾牴鎹� JPushInterface.EXTRA_EXTRA 鐨勫唴瀹瑰鐞嗕唬鐮侊紝姣斿鎵撳紑鏂扮殑Activity锛� 鎵撳紑涓�涓綉椤电瓑..
+ }
+ else if (JPushInterface.ACTION_CONNECTION_CHANGE.equals(intent.getAction()))
+ {
+ boolean connected = intent.getBooleanExtra(JPushInterface.EXTRA_CONNECTION_CHANGE,
+ false);
+ Log.w(TAG,
+ "[MyReceiver]" + intent.getAction() + " connected state change to " + connected);
+ }
+ else
+ {
+ Log.d(TAG, "[MyReceiver] Unhandled intent - " + intent.getAction());
+ }
+ } catch (Exception e)
+ {
+
+ }
+
+ }
+
+ // 鎵撳嵃鎵�鏈夌殑 intent extra 鏁版嵁
+ private static String printBundle(Bundle bundle)
+ {
+ StringBuilder sb = new StringBuilder();
+// for (String key : bundle.keySet()) {
+// if (key.equals(JPushInterface.EXTRA_NOTIFICATION_ID)) {
+// sb.append("\nkey:" + key + ", value:" + bundle.getInt(key));
+// }else if(key.equals(JPushInterface.EXTRA_CONNECTION_CHANGE)){
+// sb.append("\nkey:" + key + ", value:" + bundle.getBoolean(key));
+// } else if (key.equals(JPushInterface.EXTRA_EXTRA)) {
+// if (TextUtils.isEmpty(bundle.getString(JPushInterface.EXTRA_EXTRA))) {
+// Logger.i(TAG, "This message has no Extra data");
+// continue;
+// }
+//
+// try {
+// JSONObject json = new JSONObject(bundle.getString(JPushInterface.EXTRA_EXTRA));
+// Iterator<String> it = json.keys();
+//
+// while (it.hasNext()) {
+// String myKey = it.next();
+// sb.append("\nkey:" + key + ", value: [" +
+// myKey + " - " +json.optString(myKey) + "]");
+// }
+// } catch (JSONException e) {
+// Logger.e(TAG, "Get message extra JSON error!");
+// }
+//
+// } else {
+// sb.append("\nkey:" + key + ", value:" + bundle.get(key));
+// }
+// }
+ return sb.toString();
+ }
+
+// public static final String KEY_TITLE = "title";
+// public static final String KEY_MESSAGE = "message";
+// public static final String KEY_EXTRAS = "extras";
+
+ //send msg to MainActivity
+ private void processCustomMessage(Context context, Bundle bundle)
+ {
+ Log.d(TAG, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!![MyReceiver] 鎺ユ敹鍒版帹閫佷笅鏉ョ殑鑷畾涔夋秷鎭�: " + bundle.getString(
+ JPushInterface.EXTRA_MESSAGE));
+// if (MainActivity.isForeground) {
+// String message = bundle.getString(JPushInterface.EXTRA_MESSAGE);
+// String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
+// Intent msgIntent = new Intent(MainActivity.MESSAGE_RECEIVED_ACTION);
+// msgIntent.putExtra(MainActivity.KEY_MESSAGE, message);
+// if (!UniversalUtil.isEmpty(extras)) {
+// try {
+// JSONObject extraJson = new JSONObject(extras);
+// if (extraJson.length() > 0) {
+// msgIntent.putExtra(MainActivity.KEY_EXTRAS, extras);
+// }
+// } catch (JSONException e) {
+//
+// }
+//
+// }
+// LocalBroadcastManager.getInstance(context).sendBroadcast(msgIntent);
+// }
+ }
+}
diff --git a/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/LogUtil.java b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/LogUtil.java
new file mode 100644
index 0000000..f92fca1
--- /dev/null
+++ b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/LogUtil.java
@@ -0,0 +1,114 @@
+package com.secondworld.univeralsdk;
+
+import android.app.Activity;
+import android.util.Log;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * Created by Administrator on 2018/7/25 0025.
+ */
+
+public class LogUtil
+{
+ private static final String Global_TAG = "h2EngineSdk";
+ private static final String TAG = "LogUtil";
+ public static boolean UPLOAD = false;
+ private static boolean SAVE = false;
+ private static boolean SHOW = true;
+
+ private final static SimpleDateFormat m_DateFormatMS = new SimpleDateFormat(
+ "yyyy-MM-dd HH:mm:ss.SSS");
+ private final static SimpleDateFormat m_DateFormatDay = new SimpleDateFormat("yyyy-MM-dd");
+
+ private static Activity m_Activity;
+
+ public static void init(Activity activity, boolean showLog)
+ {
+ m_Activity = activity;
+ SHOW = showLog;
+ File _file = new File(getPath());
+ if (_file.exists())
+ {
+ SAVE = true;
+ i(TAG, "鍚姩鏈湴log瀛樺偍鍔熻兘");
+ }
+ else
+ {
+ SAVE = false;
+ i(TAG, "鏈惎鍔ㄦ湰鍦發og瀛樺偍鍔熻兘");
+ }
+ }
+
+ public static void i(String tag, String content)
+ {
+ content = ("[" + m_DateFormatMS.format(new Date()) + "]") + "[" + tag + "] " + content;
+ Log.i(Global_TAG, content);
+ if (SAVE)
+ {
+ write(content);
+ }
+ }
+
+ public static void w(String tag, String content)
+ {
+ content = ("[" + m_DateFormatMS.format(new Date()) + "]") + "[" + tag + "] " + content;
+ Log.w(Global_TAG, content);
+ if (SAVE)
+ {
+ write(content);
+ }
+ }
+
+ public static void e(String tag, String content)
+ {
+ content = ("[" + m_DateFormatMS.format(new Date()) + "]") + "[" + tag + "] " + content;
+ Log.e(Global_TAG, content);
+ if (SAVE)
+ {
+ write(content);
+ }
+ }
+
+ private static String getPath()
+ {
+ if (m_Activity.getExternalFilesDir("") == null)
+ {
+ Log.i(TAG,"m_Activity.getExternalFilesDir(\"\") == null");
+ return "";
+ }
+
+ return m_Activity.getExternalFilesDir("").getAbsolutePath()
+ + File.separator
+ + "debugLog"
+ + File.separator;
+ }
+
+ private static void write(String content)
+ {
+ try
+ {
+ String time = m_DateFormatDay.format(new Date());
+ String fileName = "log_" + time + ".log";
+ FileOutputStream fos = new FileOutputStream(getPath() + fileName, true);
+ fos.write(content.getBytes());
+ fos.flush();
+ fos.close();
+ } catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ public static void upLoad()
+ {
+ if (!UPLOAD)
+ {
+ return;
+ }
+ }
+}
diff --git a/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/MainActivity.java b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/MainActivity.java
new file mode 100644
index 0000000..aed6f2c
--- /dev/null
+++ b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/MainActivity.java
@@ -0,0 +1,199 @@
+package com.secondworld.univeralsdk;
+
+import android.Manifest;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.res.Configuration;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Process;
+import android.provider.Settings;
+import android.support.v4.content.PermissionChecker;
+import android.view.View;
+import android.widget.FrameLayout;
+import android.widget.RelativeLayout;
+
+import com.unity3d.player.UnityPlayerActivity;
+
+public class MainActivity extends UnityPlayerActivity
+{
+ private static final String TAG = "MainActivity";
+ public static boolean isForeground = false;
+ // 鍚敤6.0浠ヤ笂鏉冮檺鍥炶皟code
+ // private static final int CODE_REQUEST_PERMISSION = 1000;
+
+ private RelativeLayout m_MainContainer;
+ private int mType;
+ private boolean isNotch = false;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+
+ LogUtil.i(TAG, "onCreate");
+ LogUtil.init(this, true);
+
+ setContentView(R.layout.activity_main);
+
+ m_MainContainer = (RelativeLayout) findViewById(R.id.main_container);
+
+ String _brand = NotchPhoneUtil.getDeviceBrand();
+ if (_brand.indexOf("vivo") >= 0)
+ {
+ isNotch = NotchPhoneUtil.HasNotchVivo(MainActivity.this);
+ mType = 1;
+ }
+ else if (_brand.indexOf("HUAWEI") >= 0)
+ {
+ isNotch = NotchPhoneUtil.HasNotchVivo(MainActivity.this);
+ mType = 2;
+ }
+ else if (_brand.indexOf("OPPO") >= 0)
+ {
+ isNotch = NotchPhoneUtil.HasNotchVivo(MainActivity.this);
+ mType = 3;
+ }
+ else if (_brand.indexOf("Xiaomi") >= 0)
+ {
+ isNotch = NotchPhoneUtil.HasNotchVivo(MainActivity.this);
+ mType = 4;
+ }
+
+ NotchPhoneUtil.onConfigurationChanged(this, isNotch, mType, m_MainContainer);
+
+ FrameLayout _frameLayout = (FrameLayout) findViewById(R.id.unity_view);
+ View unityView = mUnityPlayer.getView();
+ _frameLayout.addView(unityView);
+
+ H2EngineSDK.onCreate(this, savedInstanceState);
+ }
+
+ @Override
+ public void onWindowFocusChanged(boolean b)
+ {
+ super.onWindowFocusChanged(b);
+ H2EngineSDK.onWindowFocusChanged(b);
+ }
+
+ @Override
+ protected void onNewIntent(Intent intent)
+ {
+ super.onNewIntent(intent);
+ H2EngineSDK.onNewIntent(this, intent);
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data)
+ {
+ H2EngineSDK.onActivityResult(requestCode, resultCode, data, this);
+ super.onActivityResult(requestCode, resultCode, data);
+ }
+
+ @Override
+ public void onConfigurationChanged(Configuration newConfig)
+ {
+ NotchPhoneUtil.onConfigurationChanged(this, isNotch, mType, m_MainContainer);
+
+ H2EngineSDK.onConfigurationChanged(newConfig);
+
+ super.onConfigurationChanged(newConfig);
+ }
+
+ @Override
+ protected void onStart()
+ {
+ H2EngineSDK.onStart(this);
+
+ super.onStart();
+ }
+
+ @Override
+ protected void onStop()
+ {
+ isForeground = false;
+ H2EngineSDK.onStop(this);
+
+ super.onStop();
+ }
+
+ @Override
+ protected void onResume()
+ {
+ isForeground = true;
+ H2EngineSDK.onResume(this);
+
+ super.onResume();
+
+ // 妫�娴嬫湰鍦板瓨鍌ㄦ潈闄愭槸鍚︽湁, 娌℃湁鐨勮瘽瑕佹彁绀虹敤鎴�
+ if (PermissionChecker.checkPermission(this,
+ Manifest.permission.WRITE_EXTERNAL_STORAGE,
+ Process.myPid(), Process.myUid(),
+ getPackageName()) != PackageManager.PERMISSION_GRANTED
+ || PermissionChecker.checkPermission(this,
+ Manifest.permission.READ_EXTERNAL_STORAGE,
+ Process.myPid(), Process.myUid(),
+ getPackageName()) != PackageManager.PERMISSION_GRANTED)
+ {
+ new AlertDialog.Builder(this)
+ .setMessage("搴旂敤娌℃湁瀛樺偍璇诲彇鏉冮檺,鐐瑰嚮纭畾鑷宠缃腑寮�鍚�,鍚﹀垯鏃犳硶缁х画娓告垙.")
+ .setCancelable(false)
+ .setPositiveButton("纭畾",
+ new DialogInterface.OnClickListener()
+ {
+ @Override
+ public void onClick(DialogInterface dialogInterface,
+ int i)
+ {
+ UniversalUtil.hasGoToSetting = true;
+ Intent intent = new Intent(
+ Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ Uri uri = Uri.fromParts("package",
+ getPackageName(),
+ null);
+ intent.setData(uri);
+ startActivity(intent);
+ }
+ })
+ .setNegativeButton("鎷掔粷",
+ new DialogInterface.OnClickListener()
+ {
+ @Override
+ public void onClick(DialogInterface dialogInterface,
+ int i)
+ {
+ finish();
+ }
+ })
+ .show();
+ }
+ }
+
+ @Override
+ protected void onPause()
+ {
+ H2EngineSDK.onPause(this);
+
+ super.onPause();
+ }
+
+ @Override
+ protected void onDestroy()
+ {
+ H2EngineSDK.onDestroy(this);
+
+ super.onDestroy();
+ }
+
+ @Override
+ protected void onRestart()
+ {
+ H2EngineSDK.onRestart(this);
+
+ super.onRestart();
+ }
+
+}
diff --git a/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/NotchPhoneUtil.java b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/NotchPhoneUtil.java
new file mode 100644
index 0000000..51a355c
--- /dev/null
+++ b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/NotchPhoneUtil.java
@@ -0,0 +1,347 @@
+package com.secondworld.univeralsdk;
+
+import android.app.Activity;
+import android.content.Context;
+import android.view.Surface;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+
+import java.lang.reflect.Method;
+
+/**
+ * Created by Administrator on 2018/9/11 0011.
+ */
+
+public class NotchPhoneUtil
+{
+ private final static String TAG = "Notch";
+ /**
+ * 鍗庝负鎵嬫満鍒ゆ柇鏄笉鏄垬娴锋墜鏈�
+ *
+ * @param context
+ * @return
+ */
+ public static boolean hasNotchAtHuawei(Context context)
+ {
+ boolean ret = false;
+ try
+ {
+ ClassLoader classLoader = context.getClassLoader();
+ Class HwNotchSizeUtil = classLoader.loadClass(
+ "com.huawei.android.util.HwNotchSizeUtil");
+ Method get = HwNotchSizeUtil.getMethod("hasNotchInScreen");
+ ret = (boolean) get.invoke(HwNotchSizeUtil);
+ } catch (ClassNotFoundException e)
+ {
+ LogUtil.e(TAG, "hasNotchAtHuawei ClassNotFoundException");
+ } catch (NoSuchMethodException e)
+ {
+ LogUtil.e(TAG, "hasNotchAtHuawei NoSuchMethodException");
+ } catch (Exception e)
+ {
+ LogUtil.e(TAG, "hasNotchAtHuawei Exception");
+ } finally
+ {
+ return ret;
+ }
+ }
+
+
+ /**
+ * 鍗庝负鎵嬫満鑾峰彇鍒樻捣鐨勫楂�
+ * int[0]鍊间负鍒樻捣瀹藉害 int[1]鍊间负鍒樻捣楂樺害
+ */
+ public static int[] getNotchSizeAtHuawei(Context context)
+ {
+ int[] ret = new int[]{0, 0};
+ try
+ {
+ ClassLoader cl = context.getClassLoader();
+ Class HwNotchSizeUtil = cl.loadClass("com.huawei.android.util.HwNotchSizeUtil");
+ Method get = HwNotchSizeUtil.getMethod("getNotchSize");
+ ret = (int[]) get.invoke(HwNotchSizeUtil);
+ } catch (ClassNotFoundException e)
+ {
+ LogUtil.e(TAG, "getNotchSizeAtHuawei ClassNotFoundException");
+ } catch (NoSuchMethodException e)
+ {
+ LogUtil.e(TAG, "getNotchSizeAtHuawei NoSuchMethodException");
+ } catch (Exception e)
+ {
+ LogUtil.e(TAG, "getNotchSizeAtHuawei Exception");
+ } finally
+ {
+ return ret;
+ }
+ }
+
+
+ /**
+ * OPPO鍒ゆ柇鏄笉鏄垬娴锋墜鏈�,
+ * OPPO涓嶆彁渚涙帴鍙h幏鍙栧垬娴峰昂瀵革紝鐩墠鍏舵湁鍒樻捣灞忕殑鏈哄瀷灏哄瑙勬牸閮芥槸缁熶竴鐨勩�備笉鎺掗櫎浠ュ悗鏈哄瀷浼氭湁鍙樺寲銆�
+ * 鍒樻捣鍖哄煙鍒欓兘鏄搴︿负324px, 楂樺害涓�80px銆�
+ *
+ * @param context
+ * @return
+ */
+ public static boolean HasNotchOPPO(Context context)
+ {
+ return context.getPackageManager().hasSystemFeature(
+ "com.oppo.feature.screen.heteromorphism");
+ }
+
+
+ public static final int VIVO_NOTCH = 0x00000020;//鏄惁鏈夊垬娴�
+
+ /**
+ * vivo鍒ゆ柇鏄笉鏄垬娴锋墜鏈�
+ */
+ public static boolean HasNotchVivo(Context context)
+ {
+ boolean ret = false;
+ try
+ {
+ ClassLoader classLoader = context.getClassLoader();
+ Class FtFeature = classLoader.loadClass("android.util.FtFeature");
+ Method method = FtFeature.getMethod("isFeatureSupport", int.class);
+ ret = (boolean) method.invoke(FtFeature, VIVO_NOTCH);
+ } catch (ClassNotFoundException e)
+ {
+ LogUtil.e(TAG, "hasNotchAtVivo ClassNotFoundException");
+ } catch (NoSuchMethodException e)
+ {
+ LogUtil.e(TAG, "hasNotchAtVivo NoSuchMethodException");
+ } catch (Exception e)
+ {
+ LogUtil.e(TAG, "hasNotchAtVivo Exception");
+ } finally
+ {
+ return ret;
+ }
+
+ }
+
+ /**
+ * 灏忕背鎵嬫満鍒ゆ柇鏄笉鏄垬娴锋墜鏈�
+ *
+ * @return
+ */
+ public static boolean HasNotchXiaoMi()
+ {
+ Boolean _hasNotchXiaoMi = getPropertyInt("ro.miui.notch", 0) == 1 ? true : false;
+ LogUtil.i(TAG,"鏄惁鏄皬绫冲垬娴锋墜鏈�: " + _hasNotchXiaoMi);
+ return _hasNotchXiaoMi;
+ }
+
+ private static int getPropertyInt(String key,int defaultValue)
+ {
+ int value = defaultValue;
+ try
+ {
+ Class<?> c = Class.forName("android.os.SystemProperties");
+ Method get = c.getMethod("get", String.class, String.class);
+ value = (int) (get.invoke(c, key, "unknown"));
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ } finally
+ {
+ return value;
+ }
+ }
+
+ /**
+ * 灏忕背鎵嬫満鑾峰彇鍒樻捣鐨勯珮搴�
+ */
+ public static int getStatusBarHeight(Context context)
+ {
+ int statusBarHeight = 0;
+ int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen",
+ "android");
+ if (resourceId > 0)
+ {
+ statusBarHeight = context.getResources().getDimensionPixelSize(resourceId);
+ }
+ return statusBarHeight;
+ }
+
+ /**
+ * 灞忓箷鏃嬭浆姹囨�荤殑鏂规硶
+ *
+ * @param activity
+ * @param isNotch
+ * @param type
+ * @param viewGroup
+ */
+ public static void onConfigurationChanged(Activity activity, Boolean isNotch, int type,
+ ViewGroup viewGroup)
+ {
+ if (getDisplayRotation(activity) == 0)
+ {
+ if (isNotch)
+ {
+ switch (type)
+ {
+ case 1: //vivo
+ FrameLayout.LayoutParams lpvivo = (FrameLayout.LayoutParams) viewGroup.getLayoutParams();
+ lpvivo.topMargin = dp2px(activity, 32);
+ lpvivo.leftMargin = 0;
+ lpvivo.rightMargin = 0;
+ viewGroup.setLayoutParams(lpvivo);
+ break;
+ case 2: //HUAWEI
+
+ int[] sizeAtHuawei = NotchPhoneUtil.getNotchSizeAtHuawei(activity);
+ FrameLayout.LayoutParams lphuawei = (FrameLayout.LayoutParams) viewGroup.getLayoutParams();
+ lphuawei.topMargin = sizeAtHuawei[1];
+ lphuawei.leftMargin = 0;
+ lphuawei.rightMargin = 0;
+ viewGroup.setLayoutParams(lphuawei);
+
+ break;
+ case 3: //OPPO 鐩墠閮戒负 80px
+ FrameLayout.LayoutParams lpOppo = (FrameLayout.LayoutParams) viewGroup.getLayoutParams();
+ lpOppo.topMargin = 80;
+ lpOppo.leftMargin = 0;
+ lpOppo.rightMargin = 0;
+ viewGroup.setLayoutParams(lpOppo);
+
+
+ break;
+ case 4: //Xiaomi
+ int sizeAtXiaomi = NotchPhoneUtil.getStatusBarHeight(activity);
+ FrameLayout.LayoutParams lpXiaomi = (FrameLayout.LayoutParams) viewGroup.getLayoutParams();
+ lpXiaomi.topMargin = sizeAtXiaomi;
+ lpXiaomi.leftMargin = 0;
+ lpXiaomi.rightMargin = 0;
+ viewGroup.setLayoutParams(lpXiaomi);
+
+ break;
+ }
+
+ }
+
+ }
+ else if (getDisplayRotation(activity) == 90)
+ {
+ leftAndRightChange(activity, isNotch, type, viewGroup);
+ }
+ else if (getDisplayRotation(activity) == 180)
+ {
+ }
+ else if (getDisplayRotation(activity) == 270)
+ {
+ leftAndRightChange(activity, isNotch, type, viewGroup);
+ }
+
+
+ }
+
+ /**
+ * 宸﹀彸妯睆閮芥槸璁� leftMargin 鍜宺ightMargin 绌哄嚭涓�涓垬娴风殑璺濈
+ *
+ * @param activity
+ * @param isNotch
+ * @param type
+ * @param viewGroup
+ */
+ private static void leftAndRightChange(Activity activity, Boolean isNotch, int type,
+ ViewGroup viewGroup)
+ {
+ if (isNotch)
+ {
+ switch (type)
+ {
+ case 1: //vivo
+ FrameLayout.LayoutParams lpvivo = (FrameLayout.LayoutParams) viewGroup.getLayoutParams();
+ lpvivo.leftMargin = dp2px(activity, 32);
+ lpvivo.rightMargin = dp2px(activity, 32);
+ lpvivo.topMargin = 0;
+ lpvivo.bottomMargin = 0;
+ viewGroup.setLayoutParams(lpvivo);
+ break;
+ case 2: //HUAWEI
+
+ int[] sizeAtHuawei = NotchPhoneUtil.getNotchSizeAtHuawei(activity);
+ FrameLayout.LayoutParams lphuawei = (FrameLayout.LayoutParams) viewGroup.getLayoutParams();
+ lphuawei.leftMargin = sizeAtHuawei[1];
+ lphuawei.rightMargin = sizeAtHuawei[1];
+ lphuawei.topMargin = 0;
+ lphuawei.bottomMargin = 0;
+ viewGroup.setLayoutParams(lphuawei);
+
+ break;
+ case 3: //OPPO 鐩墠閮戒负 80px
+ FrameLayout.LayoutParams lpOppo = (FrameLayout.LayoutParams) viewGroup.getLayoutParams();
+ lpOppo.leftMargin = 80;
+ lpOppo.rightMargin = 80;
+ lpOppo.topMargin = 0;
+ lpOppo.bottomMargin = 0;
+ viewGroup.setLayoutParams(lpOppo);
+
+ break;
+ case 4: //Xiaomi
+ int sizeAtXiaomi = NotchPhoneUtil.getStatusBarHeight(activity);
+ FrameLayout.LayoutParams lpXiaomi = (FrameLayout.LayoutParams) viewGroup.getLayoutParams();
+ lpXiaomi.leftMargin = sizeAtXiaomi;
+ lpXiaomi.rightMargin = sizeAtXiaomi;
+ lpXiaomi.topMargin = 0;
+ lpXiaomi.bottomMargin = 0;
+ viewGroup.setLayoutParams(lpXiaomi);
+ break;
+ }
+
+ }
+ }
+
+ /**
+ * 鑾峰彇褰撳墠灞忓箷鏃嬭浆瑙掑害
+ *
+ * @param activity
+ * @return 0琛ㄧず鏄珫灞�; 90琛ㄧず鏄乏妯睆; 180琛ㄧず鏄弽鍚戠珫灞�; 270琛ㄧず鏄彸妯睆
+ */
+ public static int getDisplayRotation(Activity activity)
+ {
+ if (activity == null)
+ {
+ return 0;
+ }
+
+ int rotation = activity.getWindowManager().getDefaultDisplay()
+ .getRotation();
+ switch (rotation)
+ {
+ case Surface.ROTATION_0:
+ return 0;
+ case Surface.ROTATION_90:
+ return 90;
+ case Surface.ROTATION_180:
+ return 180;
+ case Surface.ROTATION_270:
+ return 270;
+ }
+ return 0;
+ }
+
+ /**
+ * px杞琩p
+ *
+ * @param context
+ * @param dipValue
+ */
+ public static int dp2px(Context context, float dipValue)
+ {
+ final float scale = context.getResources().getDisplayMetrics().density;
+ return (int) (dipValue * scale + 0.5f);
+ }
+
+ /**
+ * 鑾峰彇鎵嬫満鍘傚晢
+ *
+ * @return 鎵嬫満鍘傚晢 Xiaomi HUAWEI vivo
+ */
+ public static String getDeviceBrand()
+ {
+ return android.os.Build.BRAND;
+ }
+}
diff --git a/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/StaticDefine.java b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/StaticDefine.java
new file mode 100644
index 0000000..c53009b
--- /dev/null
+++ b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/StaticDefine.java
@@ -0,0 +1,18 @@
+package com.secondworld.univeralsdk;
+
+/**
+ * Created by Administrator on 2018/6/14 0014.
+ */
+
+public class StaticDefine {
+
+ public static final String UnityGameObjectName = "SDKUtility";
+ public static final String UnityHandleFuncName = "HandleSdkMessage";
+
+ public static final String LS_KEY_VERSION = "H2Engine_App_Version";
+ public static final String LS_KEY_COPIED = "H2Engine_Copy_Finished";
+ public final static String LS_KEY_IMEI = "H2Engine_DEVICE_IMEI";
+ public final static String LS_KEY_MAC = "H2Engine_DEVICE_MAC";
+ public final static String LS_KEY_ANDROID_ID = "H2Engine_DEVICE_ANDROID_ID";
+
+}
diff --git a/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/UniqueID.java b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/UniqueID.java
new file mode 100644
index 0000000..11899ea
--- /dev/null
+++ b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/UniqueID.java
@@ -0,0 +1,226 @@
+package com.secondworld.univeralsdk;
+
+import android.Manifest;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
+import android.provider.Settings;
+import android.support.v4.content.ContextCompat;
+import android.telephony.TelephonyManager;
+import android.util.Log;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.Reader;
+import java.io.Writer;
+import java.net.NetworkInterface;
+import java.net.SocketException;
+import java.security.MessageDigest;
+import java.util.UUID;
+
+/**
+ * Created by Administrator on 2018/7/12 0012.
+ */
+
+public class UniqueID
+{
+ public static String get(Context context)
+ {
+ String _id = read(context);
+
+ if (_id != null && !_id.equals(""))
+ {
+ return _id;
+ }
+
+ StringBuffer _buffer = new StringBuffer();
+
+ _id = getDeviceId(context);
+ _buffer.append(_id);
+
+ _id = getLocalMac(context).replace(":", "");
+ _buffer.append(_id);
+
+ if (_buffer == null || _buffer.length() <= 0)
+ {
+ UUID _uuid = UUID.randomUUID();
+ _id = _uuid.toString().replace("-", "");
+ _buffer.append(_id);
+ }
+
+ _id = getMD5(_buffer.toString(), false);
+
+ if (_id.length() > 0)
+ {
+ save(_id, context);
+ }
+ return _id;
+ }
+
+ private static String read(Context context)
+ {
+ File _file = new File(context.getExternalFilesDir(""), "/tsw_device_unique_id.txt");
+ if (!_file.exists())
+ {
+ return null;
+ }
+ StringBuffer _buffer = new StringBuffer();
+ try
+ {
+ FileInputStream _fis = new FileInputStream(_file);
+ InputStreamReader _isr = new InputStreamReader(_fis, "UTF-8");
+ Reader _in = new BufferedReader(_isr);
+ int _index;
+ while ((_index = _in.read()) > -1)
+ {
+ _buffer.append((char) _index);
+ }
+ _in.close();
+ return _buffer.toString();
+ } catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ private static void save(String id, Context context)
+ {
+ File _file = new File(context.getExternalFilesDir(""), "/tsw_device_unique_id.txt");
+ try
+ {
+ Log.i("UniqueIDUtil", "path: " + _file.getAbsolutePath());
+ FileOutputStream _fos = new FileOutputStream(_file);
+ Writer _writer = new OutputStreamWriter(_fos, "UTF-8");
+ _writer.write(id);
+ _writer.close();
+ _fos.close();
+ } catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ public static String getAndroidID(Context context)
+ {
+ return Settings.System.getString(context.getContentResolver(), Settings.System.ANDROID_ID);
+ }
+
+ public static String getDeviceId(Context context)
+ {
+ SharedPreferences _sp = context.getSharedPreferences(context.getPackageName(),
+ Context.MODE_PRIVATE);
+ String _deviceId = _sp.getString(StaticDefine.LS_KEY_IMEI, "");
+ if (!_deviceId.equals(""))
+ {
+ return _deviceId;
+ }
+
+ TelephonyManager tm = (TelephonyManager) context
+ .getSystemService(Context.TELEPHONY_SERVICE);
+
+ if (ContextCompat.checkSelfPermission(context,
+ Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED)
+ {
+ _deviceId = tm.getDeviceId();
+ SharedPreferences.Editor _e = _sp.edit();
+ _e.putString(StaticDefine.LS_KEY_IMEI, _deviceId);
+ _e.apply();
+ return _deviceId;
+ }
+ return "";
+ }
+
+ public static String getLocalMac(Context context)
+ {
+ SharedPreferences _sp = context.getSharedPreferences(context.getPackageName(),
+ Context.MODE_PRIVATE);
+ String _macAddress = _sp.getString(StaticDefine.LS_KEY_MAC, "");
+ if (!_macAddress.equals(""))
+ {
+ return _macAddress;
+ }
+ StringBuffer _buffer = new StringBuffer();
+ NetworkInterface _networkInterface;
+ try
+ {
+ _networkInterface = NetworkInterface.getByName("eth1");
+ if (_networkInterface == null)
+ {
+ _networkInterface = NetworkInterface.getByName("wlan0");
+ }
+ if (_networkInterface == null)
+ {
+ return "";
+ }
+ byte[] _addresses = _networkInterface.getHardwareAddress();
+ for (byte b : _addresses)
+ {
+ _buffer.append(String.format("%02X:", b));
+ }
+ if (_buffer.length() > 0)
+ {
+ _buffer.deleteCharAt(_buffer.length() - 1);
+ }
+ _macAddress = _buffer.toString();
+ SharedPreferences.Editor _e = _sp.edit();
+ _e.putString(StaticDefine.LS_KEY_MAC, _macAddress);
+ _e.apply();
+ } catch (SocketException e)
+ {
+ e.printStackTrace();
+ return "";
+ }
+ return _macAddress;
+ }
+
+ public static String getMD5(String message, boolean upperCase)
+ {
+ String md5str = "";
+ try
+ {
+ MessageDigest md = MessageDigest.getInstance("MD5");
+
+ byte[] input = message.getBytes();
+
+ byte[] buff = md.digest(input);
+
+ md5str = bytesToHex(buff, upperCase);
+
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ return md5str;
+ }
+
+ private static String bytesToHex(byte[] bytes, boolean upperCase)
+ {
+ StringBuffer md5str = new StringBuffer();
+ int digital;
+ for (int i = 0; i < bytes.length; i++)
+ {
+ digital = bytes[i];
+
+ if (digital < 0)
+ {
+ digital += 256;
+ }
+ if (digital < 16)
+ {
+ md5str.append("0");
+ }
+ md5str.append(Integer.toHexString(digital));
+ }
+ if (upperCase)
+ {
+ return md5str.toString().toUpperCase();
+ }
+ return md5str.toString().toLowerCase();
+ }
+}
diff --git a/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/UniversalUtil.java b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/UniversalUtil.java
new file mode 100644
index 0000000..8b2a47c
--- /dev/null
+++ b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/UniversalUtil.java
@@ -0,0 +1,401 @@
+package com.secondworld.univeralsdk;
+
+import android.Manifest;
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.ClipData;
+import android.content.ClipboardManager;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.PermissionInfo;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.net.Uri;
+import android.net.wifi.WifiInfo;
+import android.net.wifi.WifiManager;
+import android.os.Process;
+import android.provider.Settings;
+import android.support.v4.content.PermissionChecker;
+import android.widget.Toast;
+
+import com.unity3d.player.UnityPlayer;
+
+import org.json.JSONObject;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.Inet4Address;
+import java.net.InetAddress;
+import java.net.NetworkInterface;
+import java.net.SocketException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.Enumeration;
+import java.util.Map;
+
+/**
+ * Created by Administrator on 2018/6/15 0015.
+ */
+
+public class UniversalUtil
+{
+ private final static String TAG = "UniversalUtil";
+
+ /**
+ * 鑾峰緱搴旂敤鐨勭増鏈彿
+ */
+ public static String GetVersionName(Context context)
+ {
+ PackageManager _packageManager = context.getPackageManager();
+ PackageInfo _packageInfo = null;
+
+ try
+ {
+ _packageInfo = _packageManager.getPackageInfo(context.getPackageName(), 0);
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+
+ if (_packageInfo != null)
+ {
+ return _packageInfo.versionName;
+ }
+ return null;
+ }
+
+ public static void sendMessageToUnity(Map<String, Object> jsonMap)
+ {
+ if (jsonMap == null || jsonMap.isEmpty())
+ {
+ return;
+ }
+
+ JSONObject _jsonObject = new JSONObject(jsonMap);
+
+ UnityPlayer.UnitySendMessage(StaticDefine.UnityGameObjectName,
+ StaticDefine.UnityHandleFuncName,
+ _jsonObject.toString());
+ }
+
+ public static void InstallAPK(Context context, final String path)
+ {
+ File _file = new File(path);
+
+ if (_file == null)
+ {
+ Toast.makeText(context, "缁欏畾鐨勫湴鍧�[" + path + "]鎵句笉鍒拌瀹夎鐨勫簲鐢ㄦ枃浠�", Toast.LENGTH_SHORT).show();
+ return;
+ }
+
+ try
+ {
+ Intent _intent = new Intent(Intent.ACTION_VIEW);
+
+// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
+// {
+// _intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+// Uri _contentUri = FileProvider.getUriForFile(context,
+// context.getPackageName() + ".fileProvider",
+// _file);
+// _intent.setDataAndType(_contentUri, "application/vnd.android.package-archive");
+// }
+// else
+// {
+ _intent.setDataAndType(Uri.fromFile(_file),
+ "application/vnd.android.package-archive");
+ _intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+// }
+
+ context.startActivity(_intent);
+
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ Toast.makeText(context, "鎵句笉鍒版墦寮�姝ょ被鍨嬫枃浠剁殑绋嬪簭", Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ public static void CopyTextToClipboard(final Activity activity, final String text)
+ {
+ activity.runOnUiThread(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ ClipboardManager _mgr = (ClipboardManager) activity.getSystemService(
+ Context.CLIPBOARD_SERVICE);
+ ClipData _data = ClipData.newPlainText("playerId", text);
+ _mgr.setPrimaryClip(_data);
+ }
+ });
+ }
+
+ public static long getMemTotal()
+ {
+ try
+ {
+ FileReader fileReader = new FileReader("/proc/meminfo");
+ BufferedReader bufferedReader = new BufferedReader(fileReader, 4 * 1024);
+ String str;
+ while ((str = bufferedReader.readLine()) != null)
+ {
+ if (str.contains("MemTotal"))
+ {
+ break;
+ }
+ }
+ bufferedReader.close();
+ fileReader.close();
+ String[] array = str.split("\\s+");
+ // 鑾峰緱绯荤粺鎬诲唴瀛橈紝鍗曚綅鏄疜B
+ return Integer.valueOf(array[1]).intValue();
+ } catch (FileNotFoundException e)
+ {
+ e.printStackTrace();
+ } catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ return 0;
+ }
+
+ public static String getPublicIp(boolean useHttps)
+ {
+ String _ip;
+ try
+ {
+ URL ipify = useHttps ? new URL("https://api.ipify.org") : new URL(
+ "http://api.ipify.org");
+ URLConnection conn = ipify.openConnection();
+ BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
+ _ip = in.readLine();
+ in.close();
+ } catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ return "";
+ }
+
+ public static String getIP(Context context)
+ {
+ NetworkInfo info = ((ConnectivityManager) context
+ .getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
+ if (info != null && info.isConnected())
+ {
+ if (info.getType() == ConnectivityManager.TYPE_MOBILE)
+ {//褰撳墠浣跨敤2G/3G/4G缃戠粶
+ try
+ {
+ for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); )
+ {
+ NetworkInterface intf = en.nextElement();
+ for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); )
+ {
+ InetAddress inetAddress = enumIpAddr.nextElement();
+ if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address)
+ {
+ return inetAddress.getHostAddress();
+ }
+ }
+ }
+ } catch (SocketException e)
+ {
+ e.printStackTrace();
+ }
+
+ }
+ else if (info.getType() == ConnectivityManager.TYPE_WIFI)
+ {//褰撳墠浣跨敤鏃犵嚎缃戠粶
+ WifiManager wifiManager = (WifiManager) context.getSystemService(
+ Context.WIFI_SERVICE);
+ WifiInfo wifiInfo = wifiManager.getConnectionInfo();
+ return intIP2StringIP(wifiInfo.getIpAddress());
+ }
+ }
+ else
+ {
+ //褰撳墠鏃犵綉缁滆繛鎺�,璇峰湪璁剧疆涓墦寮�缃戠粶
+ }
+ return null;
+ }
+
+ private static String intIP2StringIP(int ip)
+ {
+ return (ip & 0xFF) + "." +
+ ((ip >> 8) & 0xFF) + "." +
+ ((ip >> 16) & 0xFF) + "." +
+ (ip >> 24 & 0xFF);
+ }
+
+ public static boolean hasRWP = false;
+ public static boolean hasGoToSetting = false;
+
+ public static void CheckWriteAndReadExternalStorage(final Activity activity)
+ {
+ //Log.i("MainActivity", "CheckWriteAndReadExternalStorage 寮�濮� hasGoToSetting: " + hasGoToSetting);
+
+ if (hasRWP && !hasGoToSetting)
+ {
+ //Log.i("MainActivity", "1111 鏈夋潈闄�");
+ return;
+ }
+
+ if (PermissionChecker.checkPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE,
+ Process.myPid(), Process.myUid(),
+ activity.getPackageName()) == PackageManager.PERMISSION_GRANTED)
+ {
+ //Log.i("MainActivity", "鏈夋潈闄�");
+ hasRWP = true;
+ if (hasGoToSetting)
+ {
+ //Log.i("MainActivity", "鍘昏繃璁剧疆鐣岄潰, 杩欓噷閲嶅惎");
+ activity.runOnUiThread(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ new Thread()
+ {
+ public void run()
+ {
+ String _packageName = activity.getPackageName();
+ Intent _launch = activity.getBaseContext().getPackageManager().getLaunchIntentForPackage(
+ _packageName);
+ _launch.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ activity.startActivity(_launch);
+ Process.killProcess(Process.myPid());
+ }
+ }.start();
+ activity.finish();
+ }
+ });
+ }
+ return;
+ }
+
+ if (!hasRWP)
+ {
+ new AlertDialog.Builder(activity)
+ .setMessage("搴旂敤娌℃湁瀛樺偍璇诲彇鏉冮檺,鐐瑰嚮纭畾鑷宠缃腑寮�鍚�,鍚﹀垯鏃犳硶缁х画娓告垙.")
+ .setCancelable(false)
+ .setPositiveButton("纭畾",
+ new DialogInterface.OnClickListener()
+ {
+ @Override
+ public void onClick(DialogInterface dialogInterface,
+ int i)
+ {
+ UniversalUtil.hasGoToSetting = true;
+ Intent intent = new Intent(
+ Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ Uri uri = Uri.fromParts("package",
+ activity.getPackageName(),
+ null);
+ intent.setData(uri);
+ activity.startActivity(intent);
+ }
+ })
+ .setNegativeButton("鎷掔粷",
+ new DialogInterface.OnClickListener()
+ {
+ @Override
+ public void onClick(DialogInterface dialogInterface,
+ int i)
+ {
+ activity.finish();
+ }
+ })
+ .show();
+ }
+ }
+
+ public static boolean checkPermission22(Activity activity, String permission)
+ {
+ PackageManager _pkgMgr = activity.getPackageManager();
+ LogUtil.i(TAG, "寮�濮嬫娴嬫潈闄�: " + permission);
+ try
+ {
+ PermissionInfo _info = _pkgMgr.getPermissionInfo(permission,
+ PackageManager.GET_META_DATA);
+
+ LogUtil.i(TAG, " |-- 淇濇姢绾у埆: " + _info.protectionLevel);
+ if (_info.protectionLevel != PermissionInfo.PROTECTION_DANGEROUS && _info.protectionLevel != 4097)
+ {
+ LogUtil.i(TAG, " |-- 涓嶆槸鍗遍櫓鏉冮檺.");
+ return false;
+ }
+
+ } catch (PackageManager.NameNotFoundException e)
+ {
+ e.printStackTrace();
+ }
+
+ int _result = PermissionChecker.checkPermission(activity, permission,
+ Process.myPid(), Process.myUid(),
+ activity.getPackageName());
+
+ LogUtil.i(TAG, " |-- 鑾峰彇绫诲瀷: " + _result);
+
+ if (_result == PackageManager.PERMISSION_GRANTED)
+ {
+ LogUtil.i(TAG, permission + " 鏈夎繖涓潈闄�.");
+ return false;
+ }
+
+ return true;
+ }
+
+ public static String getMetaString(Activity activity, String key)
+ {
+ PackageManager _pkgMgr = activity.getPackageManager();
+ ApplicationInfo _appInfo;
+ try
+ {
+ _appInfo = _pkgMgr.getApplicationInfo(activity.getPackageName(),
+ PackageManager.GET_META_DATA);
+ return _appInfo.metaData.getString(key);
+ } catch (PackageManager.NameNotFoundException e)
+ {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public static int getMetaInt(Activity activity, String key)
+ {
+ LogUtil.i(TAG, "灏嗚鑾峰彇鐨凪etaKey: " + key);
+ PackageManager _pkgMgr = activity.getPackageManager();
+ ApplicationInfo _appInfo;
+ try
+ {
+ _appInfo = _pkgMgr.getApplicationInfo(activity.getPackageName(),
+ PackageManager.GET_META_DATA);
+ return _appInfo.metaData.getInt(key);
+ } catch (PackageManager.NameNotFoundException e)
+ {
+ e.printStackTrace();
+ }
+ return -1;
+ }
+
+ public static boolean isEmpty(String s) {
+ if (null == s)
+ return true;
+ if (s.length() == 0)
+ return true;
+ if (s.trim().length() == 0)
+ return true;
+ return false;
+ }
+}
diff --git a/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/WebViewUtil.java b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/WebViewUtil.java
new file mode 100644
index 0000000..8c14377
--- /dev/null
+++ b/Project/js_sdk/src/main/java/com/secondworld/univeralsdk/WebViewUtil.java
@@ -0,0 +1,185 @@
+package com.secondworld.univeralsdk;
+
+import android.app.Activity;
+import android.content.ActivityNotFoundException;
+import android.content.Intent;
+import android.net.Uri;
+import android.util.DisplayMetrics;
+import android.view.View;
+import android.view.ViewGroup;
+import android.webkit.WebChromeClient;
+import android.webkit.WebResourceResponse;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
+import android.widget.Button;
+import android.widget.RelativeLayout;
+
+/**
+ * Created by Administrator on 2018/8/1 0001.
+ */
+public class WebViewUtil
+{
+ private static Activity m_Activity;
+ private static String m_ReceivedUrl;
+ private static WebView m_WebView;
+ private static Button m_BtnClose;
+
+ public static void OpenWebView(final Activity activity, final String url)
+ {
+ m_Activity = activity;
+ m_ReceivedUrl = url;
+
+ activity.runOnUiThread(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ if (m_WebView != null && m_WebView.getVisibility() == View.VISIBLE)
+ {
+ processClose();
+ return;
+ }
+
+ DisplayMetrics _dm = new DisplayMetrics();
+ m_Activity.getWindowManager().getDefaultDisplay().getMetrics(_dm);
+ final float _scale = _dm.widthPixels * 1f / 1344;
+ final int _width = (int) (_scale * 982);
+ final int _height = (int) (_scale * 560);
+
+ m_BtnClose = (Button) m_Activity.findViewById(R.id.webView_btn_close);
+ ViewGroup.MarginLayoutParams _margin = new ViewGroup.MarginLayoutParams(
+ m_BtnClose.getLayoutParams());
+ RelativeLayout.LayoutParams _params = new RelativeLayout.LayoutParams(_margin);
+ _params.width = 0;
+ _params.height = 0;
+ _params.addRule(RelativeLayout.ALIGN_BOTTOM, R.id.webView);
+ _params.addRule(RelativeLayout.ALIGN_RIGHT, R.id.webView);
+ m_BtnClose.setLayoutParams(_params);
+
+ m_BtnClose.setOnClickListener(new View.OnClickListener()
+ {
+ @Override
+ public void onClick(View view)
+ {
+ processClose();
+ }
+ });
+
+ m_WebView = (WebView) m_Activity.findViewById(R.id.webView);
+ ViewGroup.MarginLayoutParams margin = new ViewGroup.MarginLayoutParams(
+ m_WebView.getLayoutParams());
+ RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(margin);
+ layoutParams.width = 0;
+ layoutParams.height = 0;
+ layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
+ m_WebView.setLayoutParams(layoutParams);
+ m_WebView.getSettings().setJavaScriptEnabled(true);
+ m_WebView.setWebViewClient(new WebViewClient()
+ {
+ @Override
+ public void onReceivedError(WebView view, int errorCode, String description,
+ String failingUrl)
+ {
+ super.onReceivedError(view, errorCode, description, failingUrl);
+ view.loadUrl(m_ReceivedUrl);
+ }
+
+ @Override
+ public boolean shouldOverrideUrlLoading(WebView view, String url)
+ {
+ if (url.startsWith("http") || url.startsWith("https"))
+ { //http鍜宧ttps鍗忚寮�澶寸殑鎵ц姝e父鐨勬祦绋�
+ view.loadUrl(url);
+ return true;
+ }
+ else
+ { //鍏朵粬鐨刄RL鍒欎細寮�鍚竴涓狝citity鐒跺悗鍘昏皟鐢ㄥ師鐢烝PP
+ return super.shouldOverrideUrlLoading(view, url);
+ }
+ }
+
+ @Override
+ public WebResourceResponse shouldInterceptRequest(WebView view, String url)
+ {
+ if (url.startsWith("http") || url.startsWith("https"))
+ { //http鍜宧ttps鍗忚寮�澶寸殑鎵ц姝e父鐨勬祦绋�
+ return super.shouldInterceptRequest(view, url);
+ }
+ else
+ { //鍏朵粬鐨刄RL鍒欎細寮�鍚竴涓狝citity鐒跺悗鍘昏皟鐢ㄥ師鐢烝PP
+ try
+ {
+ Intent in = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
+ m_Activity.startActivity(in);
+ } catch (ActivityNotFoundException e)
+ {
+ e.printStackTrace();
+ }
+ return null;
+ }
+ }
+ });
+ m_WebView.setWebChromeClient(new WebChromeClient()
+ {
+ @Override
+ public void onReceivedTitle(WebView view, String title)
+ {
+ if (title.contains("I'm QQ"))
+ {
+ m_WebView.loadUrl(m_ReceivedUrl);
+ }
+ super.onReceivedTitle(view, title);
+ }
+
+ @Override
+ public void onProgressChanged(WebView view, int newProgress)
+ {
+ if (newProgress == 100)
+ {
+ if (view.getUrl().contains("noticeweb"))
+ {
+
+ ViewGroup.MarginLayoutParams margin = new ViewGroup.MarginLayoutParams(
+ m_WebView.getLayoutParams());
+ RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
+ margin);
+ layoutParams.width = _width;
+ layoutParams.height = _height;
+ layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT,
+ RelativeLayout.TRUE);
+ m_WebView.setLayoutParams(layoutParams);
+
+ ViewGroup.MarginLayoutParams _margin = new ViewGroup.MarginLayoutParams(
+ m_BtnClose.getLayoutParams());
+ RelativeLayout.LayoutParams _params = new RelativeLayout.LayoutParams(
+ _margin);
+ _params.width = (int) (180 * _scale);
+ _params.height = (int) (72 * _scale);
+ _params.rightMargin = (int) (250 * _scale);
+ _params.bottomMargin = (int) (10 * _scale);
+ _params.addRule(RelativeLayout.ALIGN_BOTTOM, R.id.webView);
+ _params.addRule(RelativeLayout.ALIGN_RIGHT, R.id.webView);
+ m_BtnClose.setLayoutParams(_params);
+ }
+ }
+ }
+ });
+
+ m_WebView.loadUrl(m_ReceivedUrl);
+
+ m_WebView.setVisibility(View.VISIBLE);
+ m_BtnClose.setVisibility(View.VISIBLE);
+ }
+ });
+ }
+
+ private static void processClose()
+ {
+ m_WebView.clearFocus();
+ m_WebView.clearCache(true);
+ m_WebView.clearHistory();
+ m_WebView.clearFormData();
+ m_WebView.setVisibility(View.INVISIBLE);
+ m_BtnClose.setVisibility(View.INVISIBLE);
+ }
+}
diff --git a/Project/js_sdk/src/main/res/drawable-hdpi/jpush_ic_richpush_actionbar_back.png b/Project/js_sdk/src/main/res/drawable-hdpi/jpush_ic_richpush_actionbar_back.png
new file mode 100644
index 0000000..c9f4e4d
--- /dev/null
+++ b/Project/js_sdk/src/main/res/drawable-hdpi/jpush_ic_richpush_actionbar_back.png
Binary files differ
diff --git a/Project/js_sdk/src/main/res/drawable-hdpi/jpush_ic_richpush_actionbar_divider.png b/Project/js_sdk/src/main/res/drawable-hdpi/jpush_ic_richpush_actionbar_divider.png
new file mode 100644
index 0000000..f289651
--- /dev/null
+++ b/Project/js_sdk/src/main/res/drawable-hdpi/jpush_ic_richpush_actionbar_divider.png
Binary files differ
diff --git a/Project/js_sdk/src/main/res/drawable-hdpi/jpush_richpush_btn_selector.xml b/Project/js_sdk/src/main/res/drawable-hdpi/jpush_richpush_btn_selector.xml
new file mode 100644
index 0000000..c6dd002
--- /dev/null
+++ b/Project/js_sdk/src/main/res/drawable-hdpi/jpush_richpush_btn_selector.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android" >
+ <!-- 鑾峰緱鐒︾偣浣嗘湭鎸変笅鏃剁殑鑳屾櫙鍥剧墖 -->
+ <item
+ android:state_focused="true"
+ android:state_enabled="true"
+ android:state_pressed="false"
+ android:drawable="@drawable/jpush_ic_richpush_actionbar_back" />
+ <!-- 鎸変笅鏃剁殑鑳屾櫙鍥剧墖 -->
+ <item
+ android:state_enabled="true"
+ android:state_pressed="true"
+ android:drawable="@android:color/darker_gray" />
+ <!-- 鎸変笅鏃剁殑鑳屾櫙鍥剧墖 -->
+ <item
+ android:state_enabled="true"
+ android:state_checked="true"
+ android:drawable="@android:color/darker_gray" />
+ <!-- 榛樿鏃剁殑鑳屾櫙鍥剧墖 -->
+ <item android:drawable="@drawable/jpush_ic_richpush_actionbar_back" />
+</selector>
\ No newline at end of file
diff --git a/Project/js_sdk/src/main/res/drawable-hdpi/jpush_richpush_progressbar.xml b/Project/js_sdk/src/main/res/drawable-hdpi/jpush_richpush_progressbar.xml
new file mode 100644
index 0000000..a1d9b8f
--- /dev/null
+++ b/Project/js_sdk/src/main/res/drawable-hdpi/jpush_richpush_progressbar.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <!-- 鑳屾櫙 gradient鏄笎鍙�,corners瀹氫箟鐨勬槸鍦嗚 -->
+ <item android:id="@android:id/background">
+ <shape>
+ <solid android:color="#ffffff" />
+ </shape>
+ </item>
+
+ <!-- 杩涘害鏉� -->
+ <item android:id="@android:id/progress">
+ <clip>
+ <shape>
+ <solid android:color="#4393ea" />
+ </shape>
+ </clip>
+ </item>
+
+</layer-list>
\ No newline at end of file
diff --git a/Project/js_sdk/src/main/res/drawable/app_icon.png b/Project/js_sdk/src/main/res/drawable/app_icon.png
new file mode 100644
index 0000000..9f03b9d
--- /dev/null
+++ b/Project/js_sdk/src/main/res/drawable/app_icon.png
Binary files differ
diff --git a/Project/js_sdk/src/main/res/drawable/web_btn_close_icon.png b/Project/js_sdk/src/main/res/drawable/web_btn_close_icon.png
new file mode 100644
index 0000000..7ac8e4d
--- /dev/null
+++ b/Project/js_sdk/src/main/res/drawable/web_btn_close_icon.png
Binary files differ
diff --git a/Project/js_sdk/src/main/res/layout/activity_main.xml b/Project/js_sdk/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..4bf1374
--- /dev/null
+++ b/Project/js_sdk/src/main/res/layout/activity_main.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/main_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <FrameLayout
+ android:id="@+id/unity_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+
+ <WebView
+ android:id="@+id/webView"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:visibility="invisible" />
+
+ <Button
+ android:id="@+id/webView_btn_close"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignBottom="@id/webView"
+ android:layout_alignRight="@id/webView"
+ android:background="@drawable/web_btn_close_icon"
+ android:text="鎴戠煡閬撲簡"
+ android:textSize="16dp"
+ android:visibility="invisible" />
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/Project/js_sdk/src/main/res/layout/jpush_popwin_layout.xml b/Project/js_sdk/src/main/res/layout/jpush_popwin_layout.xml
new file mode 100644
index 0000000..f43e478
--- /dev/null
+++ b/Project/js_sdk/src/main/res/layout/jpush_popwin_layout.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/popLayoutId"
+ style="@style/MyDialogStyle"
+ android:orientation="vertical"
+ android:layout_width="280dp"
+ android:layout_height="250dp" >
+
+ <WebView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:id="@+id/wvPopwin"/>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/Project/js_sdk/src/main/res/layout/jpush_webview_layout.xml b/Project/js_sdk/src/main/res/layout/jpush_webview_layout.xml
new file mode 100644
index 0000000..bebdd61
--- /dev/null
+++ b/Project/js_sdk/src/main/res/layout/jpush_webview_layout.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<cn.jpush.android.ui.FullScreenView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/actionbarLayoutId"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical" >
+
+ <RelativeLayout
+ android:id="@+id/rlRichpushTitleBar"
+ android:layout_width="match_parent"
+ android:layout_height="40.0dp"
+ android:background="#29313a">
+
+ <ImageButton
+ android:id="@+id/imgRichpushBtnBack"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerVertical="true"
+ android:layout_marginLeft="9dp"
+ android:layout_marginRight="10dp"
+ android:background="@drawable/jpush_richpush_btn_selector" />
+
+ <ImageView
+ android:id="@+id/imgView"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerVertical="true"
+ android:layout_toRightOf="@id/imgRichpushBtnBack"
+ android:clickable="false"
+ android:src="@drawable/jpush_ic_richpush_actionbar_divider" />
+
+ <TextView
+ android:id="@+id/tvRichpushTitle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerVertical="true"
+ android:layout_marginLeft="7dp"
+ android:layout_marginRight="5dp"
+ android:layout_toRightOf="@id/imgView"
+ android:clickable="false"
+ android:text=" "
+ android:textSize="20sp"
+ android:textColor="#ffffff" />
+ </RelativeLayout>
+
+ <ProgressBar
+ android:id="@+id/pushPrograssBar"
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:progress="0"
+ android:progressDrawable="@drawable/jpush_richpush_progressbar"
+ style="?android:attr/progressBarStyleHorizontal" />
+ <WebView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:id="@+id/fullWebView"
+ android:background="#000000" />
+
+</cn.jpush.android.ui.FullScreenView>
\ No newline at end of file
diff --git a/Project/js_sdk/src/main/res/values/colors.xml b/Project/js_sdk/src/main/res/values/colors.xml
new file mode 100644
index 0000000..3ab3e9c
--- /dev/null
+++ b/Project/js_sdk/src/main/res/values/colors.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <color name="colorPrimary">#3F51B5</color>
+ <color name="colorPrimaryDark">#303F9F</color>
+ <color name="colorAccent">#FF4081</color>
+</resources>
diff --git a/Project/js_sdk/src/main/res/values/jpush_style.xml b/Project/js_sdk/src/main/res/values/jpush_style.xml
new file mode 100644
index 0000000..81dfdbb
--- /dev/null
+++ b/Project/js_sdk/src/main/res/values/jpush_style.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+ <style name="MyDialogStyle">
+ <item name="android:windowBackground">@android:color/transparent</item>
+ <item name="android:windowFrame">@null</item>
+ <item name="android:windowNoTitle">true</item>
+ <item name="android:windowIsFloating">true</item>
+ <item name="android:windowIsTranslucent">true</item>
+ <item name="android:windowContentOverlay">@null</item>
+ <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
+ <item name="android:backgroundDimEnabled">true</item>
+ </style>
+</resources>
\ No newline at end of file
diff --git a/Project/js_sdk/src/main/res/values/strings.xml b/Project/js_sdk/src/main/res/values/strings.xml
new file mode 100644
index 0000000..c17e5b3
--- /dev/null
+++ b/Project/js_sdk/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+<resources>
+ <string name="app_name">UniveralSDK</string>
+</resources>
diff --git a/Project/js_sdk/src/main/res/values/styles.xml b/Project/js_sdk/src/main/res/values/styles.xml
new file mode 100644
index 0000000..ff6c9d2
--- /dev/null
+++ b/Project/js_sdk/src/main/res/values/styles.xml
@@ -0,0 +1,8 @@
+<resources>
+
+ <!-- Base application theme. -->
+ <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
+ <!-- Customize your theme here. -->
+ </style>
+
+</resources>
diff --git a/Project/js_sdk/src/main/res/xml/file_paths.xml b/Project/js_sdk/src/main/res/xml/file_paths.xml
new file mode 100644
index 0000000..517ede7
--- /dev/null
+++ b/Project/js_sdk/src/main/res/xml/file_paths.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<paths>
+ <external-path path="Android/data/com.shandangceshi.snxxz/" name="files_root" />
+ <external-path path="." name="external_storage_root" />
+</paths>
\ No newline at end of file
diff --git a/Project/settings.gradle b/Project/settings.gradle
index 416ce70..0c0f71e 100644
--- a/Project/settings.gradle
+++ b/Project/settings.gradle
@@ -1 +1 @@
-include ':app', ':mr_sdk', ':sp_sdk'
+include ':app', ':mr_sdk', ':sp_sdk', ':js_sdk'
diff --git "a/SDK\347\233\270\345\205\263/\345\244\264\346\235\241Android\347\253\257logSDK2.0.1/.DS_Store" "b/SDK\347\233\270\345\205\263/\345\244\264\346\235\241Android\347\253\257logSDK2.0.1/.DS_Store"
deleted file mode 100644
index 5008ddf..0000000
--- "a/SDK\347\233\270\345\205\263/\345\244\264\346\235\241Android\347\253\257logSDK2.0.1/.DS_Store"
+++ /dev/null
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\345\244\264\346\235\241Android\347\253\257logSDK2.0.1/\346\216\245\345\205\245\345\256\236\344\276\213\344\273\243\347\240\201/__MACOSX/applogtobdemo/._.DS_Store" "b/SDK\347\233\270\345\205\263/\345\244\264\346\235\241Android\347\253\257logSDK2.0.1/\346\216\245\345\205\245\345\256\236\344\276\213\344\273\243\347\240\201/__MACOSX/applogtobdemo/._.DS_Store"
deleted file mode 100644
index 09fa6bd..0000000
--- "a/SDK\347\233\270\345\205\263/\345\244\264\346\235\241Android\347\253\257logSDK2.0.1/\346\216\245\345\205\245\345\256\236\344\276\213\344\273\243\347\240\201/__MACOSX/applogtobdemo/._.DS_Store"
+++ /dev/null
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\345\244\264\346\235\241Android\347\253\257logSDK2.0.1/\346\216\245\345\205\245\345\256\236\344\276\213\344\273\243\347\240\201/__MACOSX/applogtobdemo/app/._.DS_Store" "b/SDK\347\233\270\345\205\263/\345\244\264\346\235\241Android\347\253\257logSDK2.0.1/\346\216\245\345\205\245\345\256\236\344\276\213\344\273\243\347\240\201/__MACOSX/applogtobdemo/app/._.DS_Store"
deleted file mode 100644
index 09fa6bd..0000000
--- "a/SDK\347\233\270\345\205\263/\345\244\264\346\235\241Android\347\253\257logSDK2.0.1/\346\216\245\345\205\245\345\256\236\344\276\213\344\273\243\347\240\201/__MACOSX/applogtobdemo/app/._.DS_Store"
+++ /dev/null
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\345\244\264\346\235\241Android\347\253\257logSDK2.0.1/\346\216\245\345\205\245\345\256\236\344\276\213\344\273\243\347\240\201/applogtobdemo" "b/SDK\347\233\270\345\205\263/\345\244\264\346\235\241Android\347\253\257logSDK2.0.1/\346\216\245\345\205\245\345\256\236\344\276\213\344\273\243\347\240\201/applogtobdemo"
deleted file mode 160000
index b6f6b58..0000000
--- "a/SDK\347\233\270\345\205\263/\345\244\264\346\235\241Android\347\253\257logSDK2.0.1/\346\216\245\345\205\245\345\256\236\344\276\213\344\273\243\347\240\201/applogtobdemo"
+++ /dev/null
@@ -1 +1 @@
-Subproject commit b6f6b5881a290f6fb1732bf76d738c07c1723b6b
+Subproject commit 0000000000000000000000000000000000000000
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/Android-SDK\351\233\206\346\210\220\346\211\213\345\206\214.html" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/Android-SDK\351\233\206\346\210\220\346\211\213\345\206\214.html"
new file mode 100644
index 0000000..120bdda
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/Android-SDK\351\233\206\346\210\220\346\211\213\345\206\214.html"
@@ -0,0 +1,337 @@
+<!doctype html>
+<html>
+<head>
+<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>
+<title>Android-SDK闆嗘垚鎵嬪唽.md</title><style type='text/css'>html {overflow-x: initial !important;}.CodeMirror { height: auto; }
+.CodeMirror-scroll { overflow-y: hidden; overflow-x: auto; }
+.CodeMirror-lines { padding: 4px 0px; }
+.CodeMirror pre { }
+.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { background-color: white; }
+.CodeMirror-gutters { border-right: 1px solid rgb(221, 221, 221); background-color: rgb(247, 247, 247); white-space: nowrap; }
+.CodeMirror-linenumbers { }
+.CodeMirror-linenumber { padding: 0px 3px 0px 5px; text-align: right; color: rgb(153, 153, 153); }
+.CodeMirror div.CodeMirror-cursor { border-left: 1px solid black; z-index: 3; }
+.CodeMirror div.CodeMirror-secondarycursor { border-left: 1px solid silver; }
+.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor { width: auto; border: 0px; background: rgb(119, 238, 119); z-index: 1; }
+.CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite { }
+.cm-tab { display: inline-block; }
+.cm-s-typora-default .cm-header, .cm-s-typora-default .cm-property { color: rgb(217, 79, 138); }
+.cm-s-typora-default pre.cm-header1:not(.cm-atom) :not(.cm-overlay) { font-size: 2rem; line-height: 2rem; }
+.cm-s-typora-default pre.cm-header2:not(.cm-atom) :not(.cm-overlay) { font-size: 1.4rem; line-height: 1.4rem; }
+.cm-s-typora-default .cm-atom, .cm-s-typora-default .cm-number { color: rgb(149, 132, 134); }
+.cm-s-typora-default .cm-table-row, .cm-s-typora-default .cm-block-start { font-family: monospace; }
+.cm-s-typora-default .cm-comment, .cm-s-typora-default .cm-code { color: rgb(74, 90, 159); font-family: monospace; }
+.cm-s-typora-default .cm-tag { color: rgb(169, 68, 66); }
+.cm-s-typora-default .cm-string { color: rgb(126, 134, 169); }
+.cm-s-typora-default .cm-link { color: rgb(196, 122, 15); text-decoration: underline; }
+.cm-s-typora-default .cm-variable-2, .cm-s-typora-default .cm-variable-1 { color: inherit; }
+.cm-s-typora-default .cm-overlay { font-family: monospace; }
+.CodeMirror.cm-s-typora-default div.CodeMirror-cursor { border-left: 3px solid rgb(228, 98, 154); }
+.cm-s-typora-default .CodeMirror-activeline-background { left: -60px; right: -30px; background: rgba(204, 204, 204, 0.2); }
+.cm-s-typora-default .CodeMirror-gutters { border-right: none; background-color: inherit; }
+.cm-s-typora-default .cm-trailing-space-new-line::after, .cm-startspace::after, .cm-starttab .cm-tab::after { content: "鈥�"; position: absolute; left: 0px; opacity: 0; font-family: LetterGothicStd, monospace; }
+.os-windows .cm-startspace::after, .os-windows .cm-starttab .cm-tab::after { left: -0.1em; }
+.cm-starttab .cm-tab::after { content: " "; }
+.cm-startspace, .cm-tab, .cm-starttab, .cm-trailing-space-a, .cm-trailing-space-b, .cm-trailing-space-new-line { font-family: monospace; position: relative; }
+.cm-s-typora-default .cm-trailing-space-new-line::after { content: "鈫�"; opacity: 0.3; }
+.cm-s-inner .cm-keyword { color: rgb(119, 0, 136); }
+.cm-s-inner .cm-atom, .cm-s-inner.cm-atom { color: rgb(34, 17, 153); }
+.cm-s-inner .cm-number { color: rgb(17, 102, 68); }
+.cm-s-inner .cm-def { color: rgb(0, 0, 255); }
+.cm-s-inner .cm-variable { color: black; }
+.cm-s-inner .cm-variable-2 { color: rgb(0, 85, 170); }
+.cm-s-inner .cm-variable-3 { color: rgb(0, 136, 85); }
+.cm-s-inner .cm-property { color: black; }
+.cm-s-inner .cm-operator { color: rgb(152, 26, 26); }
+.cm-s-inner .cm-comment, .cm-s-inner.cm-comment { color: rgb(170, 85, 0); }
+.cm-s-inner .cm-string { color: rgb(170, 17, 17); }
+.cm-s-inner .cm-string-2 { color: rgb(255, 85, 0); }
+.cm-s-inner .cm-meta { color: rgb(85, 85, 85); }
+.cm-s-inner .cm-qualifier { color: rgb(85, 85, 85); }
+.cm-s-inner .cm-builtin { color: rgb(51, 0, 170); }
+.cm-s-inner .cm-bracket { color: rgb(153, 153, 119); }
+.cm-s-inner .cm-tag { color: rgb(17, 119, 0); }
+.cm-s-inner .cm-attribute { color: rgb(0, 0, 204); }
+.cm-s-inner .cm-header, .cm-s-inner.cm-header { color: blue; }
+.cm-s-inner .cm-quote, .cm-s-inner.cm-quote { color: rgb(0, 153, 0); }
+.cm-s-inner .cm-hr, .cm-s-inner.cm-hr { color: rgb(153, 153, 153); }
+.cm-s-inner .cm-link, .cm-s-inner.cm-link { color: rgb(0, 0, 204); }
+.cm-negative { color: rgb(221, 68, 68); }
+.cm-positive { color: rgb(34, 153, 34); }
+.cm-header, .cm-strong { font-weight: bold; }
+.cm-del { text-decoration: line-through; }
+.cm-em { font-style: italic; }
+.cm-link { text-decoration: underline; }
+.cm-error { color: rgb(255, 0, 0); }
+.cm-invalidchar { color: rgb(255, 0, 0); }
+.cm-constant { color: rgb(38, 139, 210); }
+.cm-defined { color: rgb(181, 137, 0); }
+div.CodeMirror span.CodeMirror-matchingbracket { color: rgb(0, 255, 0); }
+div.CodeMirror span.CodeMirror-nonmatchingbracket { color: rgb(255, 34, 34); }
+.cm-s-inner .CodeMirror-activeline-background { background: inherit; }
+.CodeMirror { position: relative; overflow: hidden; }
+.CodeMirror-scroll { margin-bottom: -30px; margin-right: -30px; padding-bottom: 30px; padding-right: 30px; height: 100%; outline: none; position: relative; box-sizing: content-box; }
+.CodeMirror-sizer { position: relative; }
+.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { position: absolute; z-index: 6; display: none; }
+.CodeMirror-vscrollbar { right: 0px; top: 0px; overflow-x: hidden; overflow-y: scroll; }
+.CodeMirror-hscrollbar { bottom: 0px; left: 0px; overflow-y: hidden; overflow-x: scroll; }
+.CodeMirror-scrollbar-filler { right: 0px; bottom: 0px; }
+.CodeMirror-gutter-filler { left: 0px; bottom: 0px; }
+.CodeMirror-gutters { position: absolute; left: 0px; top: 0px; padding-bottom: 30px; z-index: 3; }
+.CodeMirror-gutter { white-space: normal; height: 100%; box-sizing: content-box; padding-bottom: 30px; margin-bottom: -32px; display: inline-block; }
+.CodeMirror-gutter-wrapper { position: absolute; z-index: 4; background: none !important; border: none !important; }
+.CodeMirror-gutter-background { position: absolute; top: 0px; bottom: 0px; z-index: 4; }
+.CodeMirror-gutter-elt { position: absolute; cursor: default; z-index: 4; }
+.CodeMirror-lines { cursor: text; }
+.CodeMirror pre { border-radius: 0px; border-width: 0px; background: transparent; font-family: inherit; font-size: inherit; margin: 0px; white-space: pre; word-wrap: normal; color: inherit; z-index: 2; position: relative; overflow: visible; }
+.CodeMirror-wrap pre { word-wrap: break-word; white-space: pre-wrap; word-break: normal; }
+.CodeMirror-code pre { border-right: 30px solid transparent; width: fit-content; }
+.CodeMirror-wrap .CodeMirror-code pre { border-right: none; width: auto; }
+.CodeMirror-linebackground { position: absolute; left: 0px; right: 0px; top: 0px; bottom: 0px; z-index: 0; }
+.CodeMirror-linewidget { position: relative; z-index: 2; overflow: auto; }
+.CodeMirror-widget { }
+.CodeMirror-wrap .CodeMirror-scroll { overflow-x: hidden; }
+.CodeMirror-measure { position: absolute; width: 100%; height: 0px; overflow: hidden; visibility: hidden; }
+.CodeMirror-measure pre { position: static; }
+.CodeMirror div.CodeMirror-cursor { position: absolute; visibility: hidden; border-right: none; width: 0px; }
+.CodeMirror div.CodeMirror-cursor { visibility: hidden; }
+.CodeMirror-focused div.CodeMirror-cursor { visibility: inherit; }
+.CodeMirror-selected { background: rgb(217, 217, 217); }
+.CodeMirror-focused .CodeMirror-selected { background: rgb(215, 212, 240); }
+.cm-searching { background: rgba(255, 255, 0, 0.4); }
+.CodeMirror span { }
+@media print {
+ .CodeMirror div.CodeMirror-cursor { visibility: hidden; }
+}
+.CodeMirror-lint-markers { width: 16px; }
+.CodeMirror-lint-tooltip { background-color: infobackground; border: 1px solid black; border-radius: 4px; color: infotext; font-family: monospace; overflow: hidden; padding: 2px 5px; position: fixed; white-space: pre-wrap; z-index: 10000; max-width: 600px; opacity: 0; transition: opacity 0.4s; font-size: 0.8em; }
+.CodeMirror-lint-mark-error, .CodeMirror-lint-mark-warning { background-position: left bottom; background-repeat: repeat-x; }
+.CodeMirror-lint-mark-error { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg=="); }
+.CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning { background-position: center center; background-repeat: no-repeat; cursor: pointer; display: inline-block; height: 16px; width: 16px; vertical-align: middle; position: relative; }
+.CodeMirror-lint-message-error, .CodeMirror-lint-message-warning { padding-left: 18px; background-position: left top; background-repeat: no-repeat; }
+.CodeMirror-lint-marker-error, .CodeMirror-lint-message-error { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII="); }
+.CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII="); }
+.CodeMirror-lint-marker-multiple { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC"); background-repeat: no-repeat; background-position: right bottom; width: 100%; height: 100%; }
+
+
+:root { --bg-color: #ffffff; --text-color: #333333; --code-block-bg-color: inherit; }
+html { font-size: 14px; background-color: var(--bg-color); color: var(--text-color); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
+body { margin: 0px; padding: 0px; height: auto; bottom: 0px; top: 0px; left: 0px; right: 0px; font-size: 1rem; line-height: 1.42857; overflow-x: hidden; background: inherit; }
+a:active, a:hover { outline: 0px; }
+.in-text-selection, ::selection { background: rgb(181, 214, 252); text-shadow: none; }
+#write { margin: 0px auto; height: auto; width: inherit; word-break: normal; word-wrap: break-word; position: relative; padding-bottom: 70px; white-space: pre-wrap; overflow-x: visible; }
+.for-image #write { padding-left: 8px; padding-right: 8px; }
+body.typora-export { padding-left: 30px; padding-right: 30px; }
+@media screen and (max-width: 500px) {
+ body.typora-export { padding-left: 0px; padding-right: 0px; }
+ .CodeMirror-sizer { margin-left: 0px !important; }
+ .CodeMirror-gutters { display: none !important; }
+}
+.typora-export #write { margin: 0px auto; }
+#write > p:first-child, #write > ul:first-child, #write > ol:first-child, #write > pre:first-child, #write > blockquote:first-child, #write > div:first-child, #write > table:first-child { margin-top: 30px; }
+#write li > table:first-child { margin-top: -20px; }
+img { max-width: 100%; vertical-align: middle; }
+input, button, select, textarea { color: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: inherit; font-family: inherit; }
+input[type="checkbox"], input[type="radio"] { line-height: normal; padding: 0px; }
+::before, ::after, * { box-sizing: border-box; }
+#write p, #write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write div, #write pre { width: inherit; }
+#write p, #write h1, #write h2, #write h3, #write h4, #write h5, #write h6 { position: relative; }
+h1 { font-size: 2rem; }
+h2 { font-size: 1.8rem; }
+h3 { font-size: 1.6rem; }
+h4 { font-size: 1.4rem; }
+h5 { font-size: 1.2rem; }
+h6 { font-size: 1rem; }
+p { -webkit-margin-before: 1rem; -webkit-margin-after: 1rem; -webkit-margin-start: 0px; -webkit-margin-end: 0px; }
+.typora-export p { white-space: normal; }
+.mathjax-block { margin-top: 0px; margin-bottom: 0px; -webkit-margin-before: 0rem; -webkit-margin-after: 0rem; }
+.hidden { display: none; }
+.md-blockmeta { color: rgb(204, 204, 204); font-weight: bold; font-style: italic; }
+a { cursor: pointer; }
+sup.md-footnote { padding: 2px 4px; background-color: rgba(238, 238, 238, 0.7); color: rgb(85, 85, 85); border-radius: 4px; }
+#write input[type="checkbox"] { cursor: pointer; width: inherit; height: inherit; margin: 4px 0px 0px; }
+tr { break-inside: avoid; break-after: auto; }
+thead { display: table-header-group; }
+table { border-collapse: collapse; border-spacing: 0px; width: 100%; overflow: auto; break-inside: auto; text-align: left; }
+table.md-table td { min-width: 80px; }
+.CodeMirror-gutters { border-right: 0px; background-color: inherit; }
+.CodeMirror { text-align: left; }
+.CodeMirror-placeholder { opacity: 0.3; }
+.CodeMirror pre { padding: 0px 4px; }
+.CodeMirror-lines { padding: 0px; }
+div.hr:focus { cursor: none; }
+pre { white-space: pre-wrap; }
+.CodeMirror-gutters { margin-right: 4px; }
+.md-fences { font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; overflow: visible; white-space: pre; background: var(--code-block-bg-color); position: relative !important; }
+.md-diagram-panel { width: 100%; margin-top: 10px; text-align: center; padding-top: 0px; padding-bottom: 8px; overflow-x: auto; }
+.md-fences .CodeMirror.CodeMirror-wrap { top: -1.6em; margin-bottom: -1.6em; }
+.md-fences.mock-cm { white-space: pre-wrap; }
+.show-fences-line-number .md-fences { padding-left: 0px; }
+.show-fences-line-number .md-fences.mock-cm { padding-left: 40px; }
+.footnotes { opacity: 0.8; font-size: 0.9rem; padding-top: 1em; padding-bottom: 1em; }
+.footnotes + .footnotes { margin-top: -1em; }
+.md-reset { margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: top; background: transparent; text-decoration: none; text-shadow: none; float: none; position: static; width: auto; height: auto; white-space: nowrap; cursor: inherit; -webkit-tap-highlight-color: transparent; line-height: normal; font-weight: normal; text-align: left; box-sizing: content-box; direction: ltr; }
+li div { padding-top: 0px; }
+blockquote { margin: 1rem 0px; }
+li p, li .mathjax-block { margin: 0.5rem 0px; }
+li { margin: 0px; position: relative; }
+blockquote > :last-child { margin-bottom: 0px; }
+blockquote > :first-child { margin-top: 0px; }
+.footnotes-area { color: rgb(136, 136, 136); margin-top: 0.714rem; padding-bottom: 0.143rem; }
+@media print {
+ html, body { border: 1px solid transparent; height: 99%; break-after: avoid; break-before: avoid; }
+ .typora-export * { -webkit-print-color-adjust: exact; }
+ h1, h2, h3, h4, h5, h6 { break-after: avoid-page; orphans: 2; }
+ p { orphans: 4; }
+ html.blink-to-pdf { font-size: 13px; }
+ .typora-export #write { padding-left: 1cm; padding-right: 1cm; padding-bottom: 0px; break-after: avoid; }
+ .typora-export #write::after { height: 0px; }
+ @page { margin: 20mm 0mm; }
+}
+.footnote-line { margin-top: 0.714em; font-size: 0.7em; }
+a img, img a { cursor: pointer; }
+pre.md-meta-block { font-size: 0.8rem; min-height: 2.86rem; white-space: pre-wrap; background: rgb(204, 204, 204); display: block; overflow-x: hidden; }
+p .md-image:only-child { display: inline-block; width: 100%; text-align: center; }
+#write .MathJax_Display { margin: 0.8em 0px 0px; }
+.mathjax-block { white-space: pre; overflow: hidden; width: 100%; }
+p + .mathjax-block { margin-top: -1.143rem; }
+.mathjax-block:not(:empty)::after { display: none; }
+[contenteditable="true"]:active, [contenteditable="true"]:focus { outline: none; box-shadow: none; }
+.task-list { list-style-type: none; }
+.task-list-item { position: relative; padding-left: 1em; }
+.task-list-item input { position: absolute; top: 0px; left: 0px; }
+.math { font-size: 1rem; }
+.md-toc { min-height: 3.58rem; position: relative; font-size: 0.9rem; border-radius: 10px; }
+.md-toc-content { position: relative; margin-left: 0px; }
+.md-toc::after, .md-toc-content::after { display: none; }
+.md-toc-item { display: block; color: rgb(65, 131, 196); text-decoration: none; }
+.md-toc-inner:hover { }
+.md-toc-inner { display: inline-block; cursor: pointer; }
+.md-toc-h1 .md-toc-inner { margin-left: 0px; font-weight: bold; }
+.md-toc-h2 .md-toc-inner { margin-left: 2em; }
+.md-toc-h3 .md-toc-inner { margin-left: 4em; }
+.md-toc-h4 .md-toc-inner { margin-left: 6em; }
+.md-toc-h5 .md-toc-inner { margin-left: 8em; }
+.md-toc-h6 .md-toc-inner { margin-left: 10em; }
+@media screen and (max-width: 48em) {
+ .md-toc-h3 .md-toc-inner { margin-left: 3.5em; }
+ .md-toc-h4 .md-toc-inner { margin-left: 5em; }
+ .md-toc-h5 .md-toc-inner { margin-left: 6.5em; }
+ .md-toc-h6 .md-toc-inner { margin-left: 8em; }
+}
+a.md-toc-inner { font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit; }
+.footnote-line a:not(.reversefootnote) { color: inherit; }
+.md-attr { display: none; }
+.md-fn-count::after { content: "."; }
+.md-tag { opacity: 0.5; }
+.md-comment { color: rgb(162, 127, 3); opacity: 0.8; font-family: monospace; }
+code { text-align: left; }
+h1 .md-tag, h2 .md-tag, h3 .md-tag, h4 .md-tag, h5 .md-tag, h6 .md-tag { font-weight: initial; opacity: 0.35; }
+a.md-print-anchor { border-width: initial !important; border-style: none !important; border-color: initial !important; display: inline-block !important; position: absolute !important; width: 1px !important; right: 0px !important; outline: none !important; background: transparent !important; text-decoration: initial !important; text-shadow: initial !important; }
+.md-inline-math .MathJax_SVG .noError { display: none !important; }
+.mathjax-block .MathJax_SVG_Display { text-align: center; margin: 1em 0em; position: relative; text-indent: 0px; max-width: none; max-height: none; min-height: 0px; min-width: 100%; width: auto; display: block !important; }
+.MathJax_SVG_Display, .md-inline-math .MathJax_SVG_Display { width: auto; margin: inherit; display: inline-block !important; }
+.MathJax_SVG .MJX-monospace { font-family: monospace; }
+.MathJax_SVG .MJX-sans-serif { font-family: sans-serif; }
+.MathJax_SVG { display: inline; font-style: normal; font-weight: normal; line-height: normal; zoom: 90%; text-indent: 0px; text-align: left; text-transform: none; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; padding: 0px; margin: 0px; }
+.MathJax_SVG * { transition: none; }
+.md-diagram-panel > svg { max-width: 100%; }
+[lang="flow"] svg, [lang="mermaid"] svg { max-width: 100%; }
+
+
+:root { --side-bar-bg-color: #fafafa; --control-text-color: #777; }
+@font-face { font-family: "Open Sans"; font-style: normal; font-weight: normal; src: local("Open Sans Regular"), url("./github/400.woff") format("woff"); }
+@font-face { font-family: "Open Sans"; font-style: italic; font-weight: normal; src: local("Open Sans Italic"), url("./github/400i.woff") format("woff"); }
+@font-face { font-family: "Open Sans"; font-style: normal; font-weight: bold; src: local("Open Sans Bold"), url("./github/700.woff") format("woff"); }
+@font-face { font-family: "Open Sans"; font-style: italic; font-weight: bold; src: local("Open Sans Bold Italic"), url("./github/700i.woff") format("woff"); }
+html { font-size: 16px; }
+body { font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; color: rgb(51, 51, 51); line-height: 1.6; }
+#write { max-width: 860px; margin: 0px auto; padding: 20px 30px 100px; }
+#write > ul:first-child, #write > ol:first-child { margin-top: 30px; }
+body > :first-child { margin-top: 0px !important; }
+body > :last-child { margin-bottom: 0px !important; }
+a { color: rgb(65, 131, 196); }
+h1, h2, h3, h4, h5, h6 { position: relative; margin-top: 1rem; margin-bottom: 1rem; font-weight: bold; line-height: 1.4; cursor: text; }
+h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor { text-decoration: none; }
+h1 tt, h1 code { font-size: inherit; }
+h2 tt, h2 code { font-size: inherit; }
+h3 tt, h3 code { font-size: inherit; }
+h4 tt, h4 code { font-size: inherit; }
+h5 tt, h5 code { font-size: inherit; }
+h6 tt, h6 code { font-size: inherit; }
+h1 { padding-bottom: 0.3em; font-size: 2.25em; line-height: 1.2; border-bottom: 1px solid rgb(238, 238, 238); }
+h2 { padding-bottom: 0.3em; font-size: 1.75em; line-height: 1.225; border-bottom: 1px solid rgb(238, 238, 238); }
+h3 { font-size: 1.5em; line-height: 1.43; }
+h4 { font-size: 1.25em; }
+h5 { font-size: 1em; }
+h6 { font-size: 1em; color: rgb(119, 119, 119); }
+p, blockquote, ul, ol, dl, table { margin: 0.8em 0px; }
+li > ol, li > ul { margin: 0px; }
+hr { height: 4px; padding: 0px; margin: 16px 0px; background-color: rgb(231, 231, 231); border-width: 0px 0px 1px; border-style: none none solid; border-top-color: initial; border-right-color: initial; border-left-color: initial; border-image: initial; overflow: hidden; box-sizing: content-box; border-bottom-color: rgb(221, 221, 221); }
+body > h2:first-child { margin-top: 0px; padding-top: 0px; }
+body > h1:first-child { margin-top: 0px; padding-top: 0px; }
+body > h1:first-child + h2 { margin-top: 0px; padding-top: 0px; }
+body > h3:first-child, body > h4:first-child, body > h5:first-child, body > h6:first-child { margin-top: 0px; padding-top: 0px; }
+a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 { margin-top: 0px; padding-top: 0px; }
+h1 p, h2 p, h3 p, h4 p, h5 p, h6 p { margin-top: 0px; }
+li p.first { display: inline-block; }
+ul, ol { padding-left: 30px; }
+ul:first-child, ol:first-child { margin-top: 0px; }
+ul:last-child, ol:last-child { margin-bottom: 0px; }
+blockquote { border-left: 4px solid rgb(221, 221, 221); padding: 0px 15px; color: rgb(119, 119, 119); }
+blockquote blockquote { padding-right: 0px; }
+table { padding: 0px; word-break: initial; }
+table tr { border-top: 1px solid rgb(204, 204, 204); margin: 0px; padding: 0px; }
+table tr:nth-child(2n) { background-color: rgb(248, 248, 248); }
+table tr th { font-weight: bold; border: 1px solid rgb(204, 204, 204); text-align: left; margin: 0px; padding: 6px 13px; }
+table tr td { border: 1px solid rgb(204, 204, 204); text-align: left; margin: 0px; padding: 6px 13px; }
+table tr th:first-child, table tr td:first-child { margin-top: 0px; }
+table tr th:last-child, table tr td:last-child { margin-bottom: 0px; }
+.CodeMirror-gutters { border-right: 1px solid rgb(221, 221, 221); }
+.md-fences, code, tt { border: 1px solid rgb(221, 221, 221); background-color: rgb(248, 248, 248); border-radius: 3px; font-family: Consolas, "Liberation Mono", Courier, monospace; padding: 2px 4px 0px; font-size: 0.9em; }
+.md-fences { margin-bottom: 15px; margin-top: 15px; padding: 8px 1em 6px; }
+.task-list { padding-left: 0px; }
+.task-list-item { padding-left: 32px; }
+.task-list-item input { top: 3px; left: 8px; }
+@media screen and (min-width: 914px) {
+}
+@media print {
+ html { font-size: 13px; }
+ table, pre { break-inside: avoid; }
+ pre { word-wrap: break-word; }
+}
+.md-fences { background-color: rgb(248, 248, 248); }
+#write pre.md-meta-block { padding: 1rem; font-size: 85%; line-height: 1.45; background-color: rgb(247, 247, 247); border: 0px; border-radius: 3px; color: rgb(119, 119, 119); margin-top: 0px !important; }
+.mathjax-block > .code-tooltip { bottom: 0.375rem; }
+#write > h3.md-focus::before { left: -1.5625rem; top: 0.375rem; }
+#write > h4.md-focus::before { left: -1.5625rem; top: 0.285714rem; }
+#write > h5.md-focus::before { left: -1.5625rem; top: 0.285714rem; }
+#write > h6.md-focus::before { left: -1.5625rem; top: 0.285714rem; }
+.md-image > .md-meta { border: 1px solid rgb(221, 221, 221); border-radius: 3px; font-family: Consolas, "Liberation Mono", Courier, monospace; padding: 2px 4px 0px; font-size: 0.9em; color: inherit; }
+.md-tag { color: inherit; }
+.md-toc { margin-top: 20px; padding-bottom: 20px; }
+.sidebar-tabs { border-bottom: none; }
+#typora-quick-open { border: 1px solid rgb(221, 221, 221); background-color: rgb(248, 248, 248); }
+#typora-quick-open-item { background-color: rgb(250, 250, 250); border-color: rgb(254, 254, 254) rgb(229, 229, 229) rgb(229, 229, 229) rgb(238, 238, 238); border-style: solid; border-width: 1px; }
+#md-notification::before { top: 10px; }
+.on-focus-mode blockquote { border-left-color: rgba(85, 85, 85, 0.12); }
+header, .context-menu, .megamenu-content, footer { font-family: "Segoe UI", Arial, sans-serif; }
+.file-node-content:hover .file-node-icon, .file-node-content:hover .file-node-open-state { visibility: visible; }
+.mac-seamless-mode #typora-sidebar { background-color: var(--side-bar-bg-color); }
+
+
+
+
+
+
+</style>
+</head>
+<body class='typora-export' >
+<div id='write' class = 'is-node'><h1><a name='header-n1024' class='md-header-anchor '></a>Android SDK闆嗘垚鎵嬪唽</h1><h2><a name='header-n1027' class='md-header-anchor '></a>涓�銆佹枃妗h鏄�</h2><h3><a name='header-n1028' class='md-header-anchor '></a>1.1 鍔熻兘鎻忚堪</h3><p>鍙︾被SDK涓昏鐢ㄦ潵鍚戞父鎴忓鎴风鎻愪緵缁熶竴鐨勮皟鐢ㄦ帴鍙c�傛湰
+鏂囦富瑕佹弿杩癝DK鎺ュ叆鍙婁娇鐢ㄦ柟娉曘��</p><h3><a name='header-n1032' class='md-header-anchor '></a>1.2 闃呰瀵硅薄</h3><p>鏈枃妗h鑰呴渶瑕佸凡缁忕啛鎮� IDE (Eclipse 鎴栬�� Android Studio) 鐨勫熀鏈�
+浣跨敤鏂规硶锛屼互鍙婂叿鏈変竴瀹氱殑 Android 缂栫▼鍩虹銆�</p><h3><a name='header-n1036' class='md-header-anchor '></a>1.3 鏇存柊鏃ュ織</h3><table><thead><tr><th>鐗堟湰</th><th>鏃堕棿</th><th>鎻忚堪</th></tr></thead><tbody><tr><td>V1.0.0</td><td>2017-07-14</td><td>鍒濆鐗堟湰</td></tr><tr><td>V1.5.0</td><td>2017-08.01</td><td>鎺ュ叆鏀粯閫氶亾锛屾柊澧炴帴鍙�</td></tr><tr><td>V1.6.0</td><td>2017-08.16</td><td>淇敼UI鐣岄潰</td></tr><tr><td>V1.6.1</td><td>2017-08.23</td><td>鍔犲叆鐧诲綍澶辫触鎻愮ず</td></tr><tr><td>V1.7.0</td><td>2017-09-27</td><td>1銆佺櫥褰曟帴鍙e幓闄ゅ弬鏁癐LoginCallback锛�2銆佹敮浠樻帴鍙e幓闄ゅ弬鏁癐PayCallback锛�3銆佸垏鎹㈣处鍙峰幓闄ゅ弬鏁癐SwitchAccountCallback锛�4銆佸幓闄ょ殑鎺ュ彛鍥炶皟缁熶竴浣跨敤鍏ㄥ眬鐨勫洖璋僆LLSDKCallback锛屽湪鍒濆鍖栧悗璇疯缃叏灞�鍥炶皟鐩戝惉 LLSDK.getInstance().setLLSDKCallback(ILLSDKCallback)锛�5銆佹柊澧炵敓鍛藉懆鏈無nDestory()鎺ュ彛鍜宱nExit()閫�鍑烘帴鍙�</td></tr><tr><td>V1.7.1</td><td>2017-10-23</td><td>淇鑻ュ共bug锛涙洿鏂版彁绀猴細鏇挎崲jar鍖呫�佹浛鎹㈡墍鏈夎祫婧愭枃浠讹紝娌℃湁api鎺ュ彛鍙樺姩</td></tr><tr><td>V2.0.0</td><td>2017-12-01</td><td>1銆佸幓闄om.linglei.sdklib.auth.pay.PayActivity绫伙紝鏂板com.linglei.sdklib.auth.CommonActivity绫伙紝娉ㄦ剰AndroidManifest.xml鏂囦欢鐨勪慨鏀癸紝2銆佷慨澶峛ug锛屼紭鍖栧唴閮ㄧ粨鏋�</td></tr><tr><td>V2.0.1</td><td>2018-01-02</td><td>淇bug锛屼紭鍖栧唴閮ㄧ粨鏋�</td></tr><tr><td>V2.0.2</td><td>2018-04-09</td><td>1銆佹柊澧炴帴鍙nExit(ILLSDKExitCallback)锛岃缁嗕娇鐢ㄨ鐪�3.8锛� 2銆丼DK jar鍖呭悎骞朵负涓�涓猯ingleisdk-2.0.2.jar锛屼箣鍓嶇増鏈浣欑殑jar鍖呰鍒犳帀</td></tr><tr><td>V2.1.0</td><td>2018-06-20</td><td>1銆佹柊澧炴帴鍙etApkVersionCode(Context context)鍜実etApkVersionName(Context context)锛岃缁嗕娇鐢ㄨ鐪�3.9</td></tr></tbody></table><h2><a name='header-n1082' class='md-header-anchor '></a>浜屻�丄ndroid 瀹㈡埛绔帴鍏�</h2><p></p><h3><a name='header-n1085' class='md-header-anchor '></a>2.1 SDK 鐩綍浠嬬粛</h3><ul><li>examples 鏂囦欢澶癸細SDK鎺ュ叆绀轰緥銆�</li><li>lib 鏂囦欢澶癸細SDK鐩稿叧jar鍖呫��</li><li>source 鏂囦欢澶癸細assets 鍜� res 璧勬簮鏂囦欢銆�</li><li>AndroidManifest.xml锛欰ndroid閰嶇疆鏂囦欢</li><li>Android-SDK闆嗘垚鎵嬪唽.html锛氬鎴风鎺ュ叆鏂囨。</li><li>SDKDemo.apk:SDK婕旂ず绀轰緥</li></ul><h3><a name='header-n1106' class='md-header-anchor '></a>2.2 SDK 瀵煎叆</h3><ul><li>灏� libs\xxx.jar 鏂囦欢娣诲姞鍒� libs鐩綍銆�</li><li>澶嶅埗 source\res 鐩綍涓嬬殑璧勬簮鏂囦欢鍒颁綘鐨勫伐绋嬩腑 res 瀵瑰簲鍚屽悕鐨勭洰褰曚笅銆�</li><li>澶嶅埗 source\assets 鐩綍涓嬬殑鏂囦欢鍒颁綘鐨勫伐绋嬩腑鐨� assets 鐩綍涓�</li></ul><h3><a name='header-n1117' class='md-header-anchor '></a>2.3 閰嶇疆宸ョ▼</h3><blockquote><p>SDK鏈�灏忔敮鎸乤pi鐗堟湰14(Android 4.0)</p></blockquote><h4><a name='header-n1121' class='md-header-anchor '></a>2.3.1 閰嶇疆 AndroidManifest.xml 鏂囦欢锛�</h4><p>鏍规嵁 SDK 鍘嬬缉鍖呴噷鐨� AndroidManifest.xml 鏍蜂緥鏂囦欢锛屾潵閰嶇疆搴旂敤绋嬪簭鐨� AndroidManifest.xml銆�<br/>
+涓昏姝ラ涓猴細</p><ul><li>澶嶅埗澶囨敞涓� "<span class="MathJax_Preview"></span><span class="MathJax_SVG" id="MathJax-Element-11-Frame" tabindex="-1" style="font-size: 100%; display: inline-block;"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="11.206ex" height="2.577ex" viewBox="0 -806.1 4825 1109.7" role="img" focusable="false" style="vertical-align: -0.705ex;"><defs><path stroke-width="1" id="E11-MJMAIN-28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path><path stroke-width="1" id="E11-MJMATHI-52" d="M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"></path><path stroke-width="1" id="E11-MJMATHI-65" d="M39 168Q39 225 58 272T107 350T174 402T244 433T307 442H310Q355 442 388 420T421 355Q421 265 310 237Q261 224 176 223Q139 223 138 221Q138 219 132 186T125 128Q125 81 146 54T209 26T302 45T394 111Q403 121 406 121Q410 121 419 112T429 98T420 82T390 55T344 24T281 -1T205 -11Q126 -11 83 42T39 168ZM373 353Q367 405 305 405Q272 405 244 391T199 357T170 316T154 280T149 261Q149 260 169 260Q282 260 327 284T373 353Z"></path><path stroke-width="1" id="E11-MJMATHI-71" d="M33 157Q33 258 109 349T280 441Q340 441 372 389Q373 390 377 395T388 406T404 418Q438 442 450 442Q454 442 457 439T460 434Q460 425 391 149Q320 -135 320 -139Q320 -147 365 -148H390Q396 -156 396 -157T393 -175Q389 -188 383 -194H370Q339 -192 262 -192Q234 -192 211 -192T174 -192T157 -193Q143 -193 143 -185Q143 -182 145 -170Q149 -154 152 -151T172 -148Q220 -148 230 -141Q238 -136 258 -53T279 32Q279 33 272 29Q224 -10 172 -10Q117 -10 75 30T33 157ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z"></path><path stroke-width="1" id="E11-MJMATHI-75" d="M21 287Q21 295 30 318T55 370T99 420T158 442Q204 442 227 417T250 358Q250 340 216 246T182 105Q182 62 196 45T238 27T291 44T328 78L339 95Q341 99 377 247Q407 367 413 387T427 416Q444 431 463 431Q480 431 488 421T496 402L420 84Q419 79 419 68Q419 43 426 35T447 26Q469 29 482 57T512 145Q514 153 532 153Q551 153 551 144Q550 139 549 130T540 98T523 55T498 17T462 -8Q454 -10 438 -10Q372 -10 347 46Q345 45 336 36T318 21T296 6T267 -6T233 -11Q189 -11 155 7Q103 38 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z"></path><path stroke-width="1" id="E11-MJMATHI-69" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path><path stroke-width="1" id="E11-MJMATHI-72" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path><path stroke-width="1" id="E11-MJMATHI-64" d="M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z"></path><path stroke-width="1" id="E11-MJMAIN-29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><g fill="red" stroke="red"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E11-MJMAIN-28"></use></g><g fill="red" stroke="red" transform="translate(389,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E11-MJMATHI-52"></use></g><g fill="red" stroke="red" transform="translate(1149,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E11-MJMATHI-65"></use></g><g fill="red" stroke="red" transform="translate(1615,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E11-MJMATHI-71"></use></g><g fill="red" stroke="red" transform="translate(2076,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E11-MJMATHI-75"></use></g><g fill="red" stroke="red" transform="translate(2648,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E11-MJMATHI-69"></use></g><g fill="red" stroke="red" transform="translate(2994,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E11-MJMATHI-72"></use></g><g fill="red" stroke="red" transform="translate(3445,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E11-MJMATHI-65"></use></g><g fill="red" stroke="red" transform="translate(3912,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E11-MJMATHI-64"></use></g><g fill="red" stroke="red" transform="translate(4435,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E11-MJMAIN-29"></use></g></g></g></g></svg></span><script type="math/tex" id="MathJax-Element-11">\textcolor{red}{(Required)}</script>" 鐨勯儴鍒嗐��</li><li>灏嗘爣娉ㄤ负 "<span class="MathJax_Preview"></span><span class="MathJax_SVG" id="MathJax-Element-12-Frame" tabindex="-1" style="font-size: 100%; display: inline-block;"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="9.273ex" height="2.811ex" viewBox="0 -906.7 3992.4 1210.2" role="img" focusable="false" style="vertical-align: -0.705ex;"><defs><path stroke-width="1" id="E12-MJMAIN-28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path><path stroke-width="1" id="E12-MJMAIN-29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><g fill="red" stroke="red"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E12-MJMAIN-28"></use></g><g fill="red" stroke="red" transform="translate(389,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(50.259) matrix(1 0 0 -1 0 0)">鎮�</text></g></g></g><g fill="red" stroke="red" transform="translate(1192,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(50.259) matrix(1 0 0 -1 0 0)">鐨�</text></g></g></g><g fill="red" stroke="red" transform="translate(1996,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(50.259) matrix(1 0 0 -1 0 0)">鍖�</text></g></g></g><g fill="red" stroke="red" transform="translate(2799,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(50.259) matrix(1 0 0 -1 0 0)">鍚�</text></g></g></g><g fill="red" stroke="red" transform="translate(3602,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E12-MJMAIN-29"></use></g></g></g></g></svg></span><script type="math/tex" id="MathJax-Element-12">\textcolor{red}{(鎮ㄧ殑鍖呭悕)}</script>" 鐨勯儴鍒嗘浛鎹负鎮ㄥ綋鍓嶅簲鐢ㄧ▼搴忕殑鍖呭悕銆�</li><li>灏嗘爣娉ㄤ负 "<span class="MathJax_Preview"></span><span class="MathJax_SVG" id="MathJax-Element-13-Frame" tabindex="-1" style="font-size: 100%; display: inline-block;"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="13.871ex" height="2.811ex" viewBox="0 -906.7 5972.2 1210.2" role="img" focusable="false" style="vertical-align: -0.705ex;"><defs><path stroke-width="1" id="E13-MJMAIN-28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path><path stroke-width="1" id="E13-MJMATHI-41" d="M208 74Q208 50 254 46Q272 46 272 35Q272 34 270 22Q267 8 264 4T251 0Q249 0 239 0T205 1T141 2Q70 2 50 0H42Q35 7 35 11Q37 38 48 46H62Q132 49 164 96Q170 102 345 401T523 704Q530 716 547 716H555H572Q578 707 578 706L606 383Q634 60 636 57Q641 46 701 46Q726 46 726 36Q726 34 723 22Q720 7 718 4T704 0Q701 0 690 0T651 1T578 2Q484 2 455 0H443Q437 6 437 9T439 27Q443 40 445 43L449 46H469Q523 49 533 63L521 213H283L249 155Q208 86 208 74ZM516 260Q516 271 504 416T490 562L463 519Q447 492 400 412L310 260L413 259Q516 259 516 260Z"></path><path stroke-width="1" id="E13-MJMATHI-50" d="M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"></path><path stroke-width="1" id="E13-MJMATHI-49" d="M43 1Q26 1 26 10Q26 12 29 24Q34 43 39 45Q42 46 54 46H60Q120 46 136 53Q137 53 138 54Q143 56 149 77T198 273Q210 318 216 344Q286 624 286 626Q284 630 284 631Q274 637 213 637H193Q184 643 189 662Q193 677 195 680T209 683H213Q285 681 359 681Q481 681 487 683H497Q504 676 504 672T501 655T494 639Q491 637 471 637Q440 637 407 634Q393 631 388 623Q381 609 337 432Q326 385 315 341Q245 65 245 59Q245 52 255 50T307 46H339Q345 38 345 37T342 19Q338 6 332 0H316Q279 2 179 2Q143 2 113 2T65 2T43 1Z"></path><path stroke-width="1" id="E13-MJMATHI-44" d="M287 628Q287 635 230 637Q207 637 200 638T193 647Q193 655 197 667T204 682Q206 683 403 683Q570 682 590 682T630 676Q702 659 752 597T803 431Q803 275 696 151T444 3L430 1L236 0H125H72Q48 0 41 2T33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM703 469Q703 507 692 537T666 584T629 613T590 629T555 636Q553 636 541 636T512 636T479 637H436Q392 637 386 627Q384 623 313 339T242 52Q242 48 253 48T330 47Q335 47 349 47T373 46Q499 46 581 128Q617 164 640 212T683 339T703 469Z"></path><path stroke-width="1" id="E13-MJMAIN-29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><g fill="red" stroke="red"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E13-MJMAIN-28"></use></g><g fill="red" stroke="red" transform="translate(389,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(50.259) matrix(1 0 0 -1 0 0)">鎮�</text></g></g></g><g fill="red" stroke="red" transform="translate(1192,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(50.259) matrix(1 0 0 -1 0 0)">鐨�</text></g></g></g><g fill="red" stroke="red" transform="translate(1996,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E13-MJMATHI-41"></use></g><g fill="red" stroke="red" transform="translate(2746,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E13-MJMATHI-50"></use></g><g fill="red" stroke="red" transform="translate(3498,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E13-MJMATHI-50"></use></g><g fill="red" stroke="red" transform="translate(4249,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E13-MJMATHI-49"></use></g><g fill="red" stroke="red" transform="translate(4754,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E13-MJMATHI-44"></use></g><g fill="red" stroke="red" transform="translate(5582,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E13-MJMAIN-29"></use></g></g></g></g></svg></span><script type="math/tex" id="MathJax-Element-13">\textcolor{red}{(鎮ㄧ殑APPID)}</script>"鐨勯儴鍒嗭紝鏇挎崲涓烘偍鑷繁鐨凙PPID鍊笺��</li><li>鏉冮檺閰嶇疆锛堝彲鍙傝�� Demo锛夛紝娉ㄦ剰锛歵argetSdkVersion >= 23鏃讹紝鍗遍櫓鏉冮檺闇�瑕佸姩鎬佺敵璇枫��</li></ul><p><strong>娉細</strong> 濡傛灉鎮ㄥ綋鍓嶅簲鐢ㄧ▼搴忔湁鑷繁鐨� Application锛屽垯蹇呴』缁ф壙 com.linglei.sdklib.open.LLApplication锛�</p><pre class='md-fences mock-cm' style='display:block;position:relative'>濡傛灉娌℃湁锛岃鎸囧畾 application 鐨� name 灞炴�т负 com.linglei.sdklib.open.LLApplication </pre><p></p><h4><a name='header-n1143' class='md-header-anchor '></a>2.3.2 闂睆鎺ュ叆锛�</h4><p>鍦� AndroidManifest.xml 鏂囦欢鍔犲叆浠ヤ笅 activity 澹版槑</p><pre class="md-fences md-end-block" lang="xml"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 230px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tag cm-bracket"><</span><span class="cm-tag">activity</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:name</span>=<span class="cm-string">"com.linglei.sdklib.auth.SplashActivity"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:configChanges</span>=<span class="cm-string">"keyboardHidden|orientation|screenSize"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:screenOrientation</span>=<span class="cm-string">"landscape"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:theme</span>=<span class="cm-string">"@android:style/Theme.NoTitleBar.Fullscreen"</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">intent-filter</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">action</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.intent.action.MAIN"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">category</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.intent.category.LAUNCHER"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"></</span><span class="cm-tag">intent-filter</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tag cm-bracket"></</span><span class="cm-tag">activity</span><span class="cm-tag cm-bracket">></span></span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 230px;"></div><div class="CodeMirror-gutters" style="display: none; height: 260px;"></div></div></div></pre><p>杩橀渶灏嗘父鎴� AndroidManifest.xml 饨傛。涓師鏉ョ殑涓� Activity 鍗冲惈鏈変互涓嬩唬鐮�</p><pre class="md-fences md-end-block" lang="xml"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 92px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tag cm-bracket"><</span><span class="cm-tag">intent-filter</span><span class="cm-tag cm-bracket">></span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">action</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.intent.action.MAIN"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">category</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.intent.category.LAUNCHER"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tag cm-bracket"></</span><span class="cm-tag">intent-filter</span><span class="cm-tag cm-bracket">></span></span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 92px;"></div><div class="CodeMirror-gutters" style="display: none; height: 122px;"></div></div></div></pre><p>淇敼涓轰互涓嬩唬鐮�</p><pre class="md-fences md-end-block" lang="xml"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 92px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tag cm-bracket"><</span><span class="cm-tag">intent-filter</span><span class="cm-tag cm-bracket">></span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">action</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"鎮ㄧ殑鍖呭悕.MAIN"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">category</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.intent.category.DEFAULT"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tag cm-bracket"></</span><span class="cm-tag">intent-filter</span><span class="cm-tag cm-bracket">></span></span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 92px;"></div><div class="CodeMirror-gutters" style="display: none; height: 122px;"></div></div></div></pre><p>AndroidManifest 绀轰緥<br/></p><pre class="md-fences md-end-block" lang="xml"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 2093px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta"><?xml</span> <span class="cm-meta">version="1.0" encoding="utf-8"?></span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tag cm-bracket"><</span><span class="cm-tag">manifest</span> <span class="cm-attribute">xmlns:android</span>=<span class="cm-string">"http://schemas.android.com/apk/res/android"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">package</span>=<span class="cm-string">"鎮ㄧ殑鍖呭悕"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:versionCode</span>=<span class="cm-string">"9"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:versionName</span>=<span class="cm-string">"2.0.2"</span> <span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment"><!-- 娉ㄦ剰targetSdkVersion >= 23鏃讹紝鍗遍櫓鏉冮檺闇�瑕佸姩鎬佺敵璇� --></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-sdk</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:minSdkVersion</span>=<span class="cm-string">"14"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:targetSdkVersion</span>=<span class="cm-string">"22"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment"><!-- Required 娉ㄦ剰targetSdkVersion >= 23鏃讹紝鍗遍櫓鏉冮檺闇�瑕佸姩鎬佺敵璇�--></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.INTERNET"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.MOUNT_UNMOUNT_FILESYSTEMS"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.WRITE_EXTERNAL_STORAGE"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.CHANGE_WIFI_STATE"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.WAKE_LOCK"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.ACCESS_NETWORK_STATE"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.READ_PHONE_STATE"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.CALL_PHONE"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.SYSTEM_ALERT_WINDOW"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.GET_TASKS"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.READ_PHONE_STATE"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.ACCESS_WIFI_STATE"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.ACCESS_FINE_LOCATION"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.ACCESS_COARSE_LOCATION"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.WRITE_EXTERNAL_STORAGE"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.VIBRATE"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.SYSTEM_OVERLAY_WINDOW"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">uses-permission</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.permission.CHANGE_NETWORK_STATE"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment"><!-- 濡傛灉鎮ㄥ綋鍓嶅簲鐢ㄧ▼搴忔湁鑷繁鐨凙pplication锛屽垯蹇呴』缁ф壙com.linglei.sdklib.open.LLApplication--></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment"><!-- 濡傛灉娌℃湁锛岃鎸囧畾application鐨刵ame灞炴�т负com.linglei.sdklib.open.LLApplication --></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">application</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:name</span>=<span class="cm-string">"com.linglei.sdklib.open.LLApplication"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:allowBackup</span>=<span class="cm-string">"true"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:icon</span>=<span class="cm-string">"@drawable/ic_launcher"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:label</span>=<span class="cm-string">"@string/app_name"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:theme</span>=<span class="cm-string">"@style/AppTheme"</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment"><!-- Required APPID--></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">meta-data</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:name</span>=<span class="cm-string">"LL_APPID"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:value</span>=<span class="cm-string">"鎮ㄧ殑APPID"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment"><!--鍔″繀鎶婃父鎴忎富activity鐨� action 鍜� category 淇敼涓轰互涓嬪��--></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">activity</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:name</span>=<span class="cm-string">"com.linglei.sdkdemoas.MainActivity"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:configChanges</span>=<span class="cm-string">"keyboardHidden|orientation|screenSize"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:screenOrientation</span>=<span class="cm-string">"landscape"</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">intent-filter</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">action</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"鎮ㄧ殑鍖呭悕.MAIN"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">category</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.intent.category.DEFAULT"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"></</span><span class="cm-tag">intent-filter</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"></</span><span class="cm-tag">activity</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment"><!-- Required 闂睆椤� 鍔″繀鎶奡DK鍚姩椤电殑 action 鍜� category 淇敼涓轰互涓嬪�硷紝灞忓箷鏂瑰悜璇锋寚瀹氱珫灞忔垨妯睆--></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">activity</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:name</span>=<span class="cm-string">"com.linglei.sdklib.auth.SplashActivity"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:configChanges</span>=<span class="cm-string">"keyboardHidden|orientation|screenSize"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:screenOrientation</span>=<span class="cm-string">"landscape"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:theme</span>=<span class="cm-string">"@android:style/Theme.NoTitleBar.Fullscreen"</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">intent-filter</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">action</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.intent.action.MAIN"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">category</span> <span class="cm-attribute">android:name</span>=<span class="cm-string">"android.intent.category.LAUNCHER"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"></</span><span class="cm-tag">intent-filter</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"></</span><span class="cm-tag">activity</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment"><!-- Required SDK鍐呴儴鐣岄潰 灞忓箷鏂瑰悜璇锋寚瀹氱珫灞忔垨妯睆, 涓婚鍔″繀涓嶈淇敼--></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">activity</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:name</span>=<span class="cm-string">"com.linglei.sdklib.auth.AuthActivity"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:configChanges</span>=<span class="cm-string">"keyboardHidden|orientation|screenSize"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:screenOrientation</span>=<span class="cm-string">"landscape"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:theme</span>=<span class="cm-string">"@style/llsdk_dialog"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment"><!-- Required 鍏叡鐣岄潰 灞忓箷鏂瑰悜璇锋寚瀹氱珫灞忔垨妯睆 --></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">activity</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:name</span>=<span class="cm-string">"com.linglei.sdklib.auth.CommonActivity"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:configChanges</span>=<span class="cm-string">"keyboardHidden|orientation|screenSize"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:screenOrientation</span>=<span class="cm-string">"landscape"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:theme</span>=<span class="cm-string">"@android:style/Theme.NoTitleBar.Fullscreen"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment"><!-- Required SDK鏍稿績鏈嶅姟--></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">service</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:name</span>=<span class="cm-string">"com.linglei.sdklib.open.LLService"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:exported</span>=<span class="cm-string">"false"</span> <span class="cm-tag cm-bracket">/></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"></</span><span class="cm-tag">application</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tag cm-bracket"></</span><span class="cm-tag">manifest</span><span class="cm-tag cm-bracket">></span></span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 2093px;"></div><div class="CodeMirror-gutters" style="display: none; height: 2123px;"></div></div></div></pre><h2><a name='header-n1157' class='md-header-anchor '></a>涓夈�丼DK鎺ュ彛璋冪敤</h2><blockquote><p>鎵�鏈夋帴鍙e姟蹇呭湪涓荤嚎绋嬩腑璋冪敤</p></blockquote><h3><a name='header-n1159' class='md-header-anchor '></a>3.1 Application <span class="MathJax_Preview"></span><span class="MathJax_SVG" id="MathJax-Element-9-Frame" tabindex="-1" style="font-size: 100%; display: inline-block;"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="5.54ex" height="2.757ex" viewBox="0 -889.4 2385.4 1187.2" role="img" focusable="false" style="vertical-align: -0.692ex;"><defs><path stroke-width="1" id="E9-MJMAIN-28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path><path stroke-width="1" id="E9-MJMAIN-29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><g fill="red" stroke="red"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-28"></use></g><g fill="red" stroke="red" transform="translate(389,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">蹇�</text></g></g></g><g fill="red" stroke="red" transform="translate(1192,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">鎺�</text></g></g></g><g fill="red" stroke="red" transform="translate(1995,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-29"></use></g></g></g></g></svg></span><script type="math/tex" id="MathJax-Element-9">\textcolor{red}{(蹇呮帴)}</script></h3><p>濡傛灉鎮ㄥ綋鍓嶅簲鐢ㄧ▼搴忔湁鑷繁鐨凙pplication锛屽垯蹇呴』缁ф壙com.linglei.sdklib.open.LLApplication</p><pre class="md-fences md-end-block" lang="java"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 138px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">public</span> <span class="cm-keyword">class</span> <span class="cm-def">MyApplication</span> <span class="cm-keyword">extends</span> <span class="cm-variable">LLApplication</span> {</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">public</span> <span class="cm-variable-3">void</span> <span class="cm-variable">onCreate</span>() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">super</span>.<span class="cm-variable">onCreate</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 138px;"></div><div class="CodeMirror-gutters" style="display: none; height: 168px;"></div></div></div></pre><p>濡傛灉娌℃湁鑷繁鐨凙pplication锛岃鎸囧畾application鐨刵ame灞炴�т负com.linglei.sdklib.open.LLApplication</p><pre class="md-fences md-end-block" lang="xml"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 161px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tag cm-bracket"><</span><span class="cm-tag">application</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:name</span>=<span class="cm-string">"com.linglei.sdklib.open.LLApplication"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:allowBackup</span>=<span class="cm-string">"true"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:icon</span>=<span class="cm-string">"@drawable/ic_launcher"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:label</span>=<span class="cm-string">"@string/app_name"</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-attribute">android:theme</span>=<span class="cm-string">"@style/AppTheme"</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tag cm-bracket"></</span><span class="cm-tag">application</span><span class="cm-tag cm-bracket">></span></span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 161px;"></div><div class="CodeMirror-gutters" style="display: none; height: 191px;"></div></div></div></pre><h3><a name='header-n1168' class='md-header-anchor '></a>3.2 鍒濆鍖� <span class="MathJax_Preview"></span><span class="MathJax_SVG" id="MathJax-Element-9-Frame" tabindex="-1" style="font-size: 100%; display: inline-block;"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="5.54ex" height="2.757ex" viewBox="0 -889.4 2385.4 1187.2" role="img" focusable="false" style="vertical-align: -0.692ex;"><defs><path stroke-width="1" id="E9-MJMAIN-28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path><path stroke-width="1" id="E9-MJMAIN-29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><g fill="red" stroke="red"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-28"></use></g><g fill="red" stroke="red" transform="translate(389,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">蹇�</text></g></g></g><g fill="red" stroke="red" transform="translate(1192,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">鎺�</text></g></g></g><g fill="red" stroke="red" transform="translate(1995,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-29"></use></g></g></g></g></svg></span><script type="math/tex" id="MathJax-Element-9">\textcolor{red}{(蹇呮帴)}</script></h3><blockquote><p>鍦ㄧ▼搴忎富椤甸潰 Activity 鐨� onCreate鏂规硶璋冪敤浠ヤ笅鍒濆鍖栦唬鐮�<br/>
+绗竴涓弬鏁癈ontext蹇呴』涓篈ctivity鐨勪笂涓嬫枃<br/>
+鍒濆鍖栧洖璋冭繑鍥瀝espCode==1鐨勬椂鍊欒〃绀烘垚鍔燂紝鎵嶈兘缁х画寰�涓嬫搷浣�<br/></p></blockquote><pre class="md-fences md-end-block" lang="java"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 253px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 绗竴涓弬鏁癈ontext蹇呴』涓篈ctivity鐨勪笂涓嬫枃</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">initSDK</span>(<span class="cm-variable">Context</span>, <span class="cm-keyword">new</span> <span class="cm-variable">ILLSDKInitCallback</span>() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">public</span> <span class="cm-variable-3">void</span> <span class="cm-variable">onInitResponse</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">respCode</span>, <span class="cm-variable-3">String</span> <span class="cm-variable">respMsg</span>) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">Log</span>.<span class="cm-variable">e</span>(<span class="cm-string">"MainActivity"</span>, <span class="cm-string">"code->"</span> <span class="cm-operator">+</span> <span class="cm-variable">respCode</span> <span class="cm-operator">+</span> <span class="cm-string">" msg->"</span> <span class="cm-operator">+</span> <span class="cm-variable">respMsg</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment">// respCode==1鎴愬姛</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">if</span> (<span class="cm-variable">respCode</span> <span class="cm-operator">==</span> <span class="cm-number">1</span>) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">showToast</span>(<span class="cm-string">"鍒濆鍖栨垚鍔�"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">});</span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 253px;"></div><div class="CodeMirror-gutters" style="display: none; height: 283px;"></div></div></div></pre><h3><a name='header-n1176' class='md-header-anchor '></a>3.3 璁剧疆鍏ㄥ眬鍥炶皟鎺ュ彛 <span class="MathJax_Preview"></span><span class="MathJax_SVG" id="MathJax-Element-9-Frame" tabindex="-1" style="font-size: 100%; display: inline-block;"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="5.54ex" height="2.757ex" viewBox="0 -889.4 2385.4 1187.2" role="img" focusable="false" style="vertical-align: -0.692ex;"><defs><path stroke-width="1" id="E9-MJMAIN-28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path><path stroke-width="1" id="E9-MJMAIN-29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><g fill="red" stroke="red"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-28"></use></g><g fill="red" stroke="red" transform="translate(389,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">蹇�</text></g></g></g><g fill="red" stroke="red" transform="translate(1192,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">鎺�</text></g></g></g><g fill="red" stroke="red" transform="translate(1995,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-29"></use></g></g></g></g></svg></span><script type="math/tex" id="MathJax-Element-9">\textcolor{red}{(蹇呮帴)}</script></h3><pre class="md-fences md-end-block" lang="java"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 1058px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 鍏ㄥ眬鍥炶皟 璇峰湪鍒濆鍖栧悗璁剧疆</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">setLLSDKCallback</span>(<span class="cm-variable">ILLSDKCallback</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">private</span> <span class="cm-variable">ILLSDKCallback</span> <span class="cm-variable">sdkCallback</span> <span class="cm-operator">=</span> <span class="cm-keyword">new</span> <span class="cm-variable">ILLSDKCallback</span>() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">public</span> <span class="cm-variable-3">void</span> <span class="cm-variable">onLoginSuccess</span>(<span class="cm-variable">UserResp</span> <span class="cm-variable">userResp</span>) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">Log</span>.<span class="cm-variable">e</span>(<span class="cm-string">"MainActivity"</span>, <span class="cm-string">"鐧诲綍鎴愬姛"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">showToast</span>(<span class="cm-string">"鐧诲綍鎴愬姛"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment">// 鎴愬姛鍥炶皟UserResp绫�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment">// UserResp瀛楁锛�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment">// uid 鐢ㄦ埛鍞竴鏍囪瘑</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment">// token cp鏈嶅姟鍣ㄦ牎楠屽��</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment">// uid鍜宼oken淇℃伅涔熷彲浠ュ湪鐧诲綍鎴愬姛鍚庤皟鐢↙LSDK.getInstance().getAuth()鏉ヨ幏鍙�(鍔″繀鍋氶潪绌哄垽鏂�)</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment">// 鐧诲綍鎴愬姛鍚庤璁剧疆瑙掕壊淇℃伅</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment">// 鍙傛暟渚濇涓� 娓告垙甯佸綋鍓嶄綑棰濄�佽鑹茬殑绛夌骇銆佺敤鎴穠ip绛夌骇銆佽鑹插敮涓�鏍囪瘑銆佽鑹插悕銆佹墍鍦ㄥ尯鏈�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">RoleInfoReq</span> <span class="cm-variable">roleInfoReq</span> <span class="cm-operator">=</span> <span class="cm-keyword">new</span> <span class="cm-variable">RoleInfoReq</span>(<span class="cm-number">100</span>, <span class="cm-number">10</span>, <span class="cm-number">10</span>, <span class="cm-string">"roleId"</span>, <span class="cm-string">"roleName"</span>, <span class="cm-string">"zone"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">setRoleData</span>(<span class="cm-variable">roleInfoReq</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">public</span> <span class="cm-variable-3">void</span> <span class="cm-variable">onLoginFailure</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">errorCode</span>, <span class="cm-variable-3">String</span> <span class="cm-variable">errorMsg</span>) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">Log</span>.<span class="cm-variable">e</span>(<span class="cm-string">"MainActivity"</span>, <span class="cm-string">"鐧诲綍澶辫触"</span> <span class="cm-operator">+</span> <span class="cm-variable">errorCode</span> <span class="cm-operator">+</span> <span class="cm-string">" "</span> <span class="cm-operator">+</span> <span class="cm-variable">errorMsg</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">showToast</span>(<span class="cm-string">"鐧诲綍澶辫触"</span> <span class="cm-operator">+</span> <span class="cm-variable">errorCode</span> <span class="cm-operator">+</span> <span class="cm-string">" "</span> <span class="cm-operator">+</span> <span class="cm-variable">errorMsg</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">public</span> <span class="cm-variable-3">void</span> <span class="cm-variable">onLogout</span>() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment">// 琛ㄧず鐢ㄦ埛宸茬櫥鍑�, 鍒囨崲璐﹀彿鎺ュ彛浼氳蛋杩欎釜鍥炶皟锛屾父鎴忔敹鍒版娑堟伅閫氬父鎯呭喌涓嬶紝闇�瑕佷富鍔ㄨ皟鐢ㄧ櫥褰曟帴鍙�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">login</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">public</span> <span class="cm-variable-3">void</span> <span class="cm-variable">onPayResponse</span>() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment">// 姝ゆ柟娉曞洖璋冨彧鑳借鏄庢敮浠樻搷浣滃畬姣曪紝鍏蜂綋鏄惁鏀粯鎴愬姛浠ユ帴鍏ユ柟鏈嶅姟绔负鍑�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">Log</span>.<span class="cm-variable">e</span>(<span class="cm-string">"MainActivity"</span>, <span class="cm-string">"鏀粯鎿嶄綔瀹屾瘯"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">showToast</span>(<span class="cm-string">"鏀粯鎿嶄綔瀹屾瘯"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">public</span> <span class="cm-variable-3">void</span> <span class="cm-variable">onPayFailure</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">errorCode</span>, <span class="cm-variable-3">String</span> <span class="cm-variable">errorMsg</span>) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">Log</span>.<span class="cm-variable">e</span>(<span class="cm-string">"MainActivity"</span>, <span class="cm-string">"鏀粯澶辫触"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">showToast</span>(<span class="cm-string">"鏀粯澶辫触"</span> <span class="cm-operator">+</span> <span class="cm-variable">errorCode</span> <span class="cm-operator">+</span> <span class="cm-string">" "</span> <span class="cm-operator">+</span> <span class="cm-variable">errorMsg</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">};</span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 1058px;"></div><div class="CodeMirror-gutters" style="display: none; height: 1088px;"></div></div></div></pre><h3><a name='header-n1178' class='md-header-anchor '></a>3.4 鐧诲綍 <span class="MathJax_Preview"></span><span class="MathJax_SVG" id="MathJax-Element-9-Frame" tabindex="-1" style="font-size: 100%; display: inline-block;"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="5.54ex" height="2.757ex" viewBox="0 -889.4 2385.4 1187.2" role="img" focusable="false" style="vertical-align: -0.692ex;"><defs><path stroke-width="1" id="E9-MJMAIN-28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path><path stroke-width="1" id="E9-MJMAIN-29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><g fill="red" stroke="red"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-28"></use></g><g fill="red" stroke="red" transform="translate(389,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">蹇�</text></g></g></g><g fill="red" stroke="red" transform="translate(1192,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">鎺�</text></g></g></g><g fill="red" stroke="red" transform="translate(1995,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-29"></use></g></g></g></g></svg></span><script type="math/tex" id="MathJax-Element-9">\textcolor{red}{(蹇呮帴)}</script></h3><pre class="md-fences md-end-block" lang="java"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 23px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">login</span>(<span class="cm-variable">MainActivity</span>.<span class="cm-keyword">this</span>);</span></pre></div></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 23px;"></div><div class="CodeMirror-gutters" style="display: none; height: 53px;"></div></div></div></pre><h3><a name='header-n1180' class='md-header-anchor '></a>3.5 璁剧疆瑙掕壊淇℃伅 <span class="MathJax_Preview"></span><span class="MathJax_SVG" id="MathJax-Element-9-Frame" tabindex="-1" style="font-size: 100%; display: inline-block;"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="5.54ex" height="2.757ex" viewBox="0 -889.4 2385.4 1187.2" role="img" focusable="false" style="vertical-align: -0.692ex;"><defs><path stroke-width="1" id="E9-MJMAIN-28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path><path stroke-width="1" id="E9-MJMAIN-29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><g fill="red" stroke="red"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-28"></use></g><g fill="red" stroke="red" transform="translate(389,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">蹇�</text></g></g></g><g fill="red" stroke="red" transform="translate(1192,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">鎺�</text></g></g></g><g fill="red" stroke="red" transform="translate(1995,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-29"></use></g></g></g></g></svg></span><script type="math/tex" id="MathJax-Element-9">\textcolor{red}{(蹇呮帴)}</script></h3><p>鐧诲綍鎴愬姛鍚庤璁剧疆瑙掕壊淇℃伅</p><pre class="md-fences md-end-block" lang="java"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 69px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">//鍙傛暟渚濇涓� 娓告垙甯佸綋鍓嶄綑棰濄�佽鑹茬殑绛夌骇銆佺敤鎴穠ip绛夌骇銆佽鑹插敮涓�鏍囪瘑銆佽鑹插悕銆佹墍鍦ㄥ尯鏈�</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">RoleInfoReq</span> <span class="cm-variable">roleInfoReq</span> <span class="cm-operator">=</span> <span class="cm-keyword">new</span> <span class="cm-variable">RoleInfoReq</span>(<span class="cm-number">100</span>, <span class="cm-number">10</span>, <span class="cm-number">10</span>, <span class="cm-string">"roleId"</span>, <span class="cm-string">"roleName"</span>, <span class="cm-number">2</span>, <span class="cm-string">"zone"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">setRoleData</span>(<span class="cm-variable">roleInfoReq</span>);</span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 69px;"></div><div class="CodeMirror-gutters" style="display: none; height: 99px;"></div></div></div></pre><h3><a name='header-n1184' class='md-header-anchor '></a>3.6 鍒囨崲璐﹀彿 <span class="MathJax_Preview"></span><span class="MathJax_SVG" id="MathJax-Element-9-Frame" tabindex="-1" style="font-size: 100%; display: inline-block;"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="5.54ex" height="2.757ex" viewBox="0 -889.4 2385.4 1187.2" role="img" focusable="false" style="vertical-align: -0.692ex;"><defs><path stroke-width="1" id="E9-MJMAIN-28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path><path stroke-width="1" id="E9-MJMAIN-29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><g fill="red" stroke="red"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-28"></use></g><g fill="red" stroke="red" transform="translate(389,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">蹇�</text></g></g></g><g fill="red" stroke="red" transform="translate(1192,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">鎺�</text></g></g></g><g fill="red" stroke="red" transform="translate(1995,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-29"></use></g></g></g></g></svg></span><script type="math/tex" id="MathJax-Element-9">\textcolor{red}{(蹇呮帴)}</script></h3><pre class="md-fences md-end-block" lang="java"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 46px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">//cp鍦ㄥ垏鎹㈣处鍙锋垨鑰呮敞閿�鐨勬椂鍊欎竴瀹氳鎺ュ叆姝ゆ帴鍙o紝璋冧簡姝ゆ帴鍙d細璧板叏灞�鍥炶皟鐨刼nLogout()鏂规硶 </span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">switchAccount</span>();</span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 46px;"></div><div class="CodeMirror-gutters" style="display: none; height: 76px;"></div></div></div></pre><h3><a name='header-n1186' class='md-header-anchor '></a>3.7 鏀粯 <span class="MathJax_Preview"></span><span class="MathJax_SVG" id="MathJax-Element-9-Frame" tabindex="-1" style="font-size: 100%; display: inline-block;"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="5.54ex" height="2.757ex" viewBox="0 -889.4 2385.4 1187.2" role="img" focusable="false" style="vertical-align: -0.692ex;"><defs><path stroke-width="1" id="E9-MJMAIN-28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path><path stroke-width="1" id="E9-MJMAIN-29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><g fill="red" stroke="red"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-28"></use></g><g fill="red" stroke="red" transform="translate(389,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">蹇�</text></g></g></g><g fill="red" stroke="red" transform="translate(1192,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">鎺�</text></g></g></g><g fill="red" stroke="red" transform="translate(1995,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-29"></use></g></g></g></g></svg></span><script type="math/tex" id="MathJax-Element-9">\textcolor{red}{(蹇呮帴)}</script></h3><p><strong>娉�</strong>锛氭敮浠樻槸鍚︽垚鍔熶互鎺ュ叆鏂规湇鍔$涓哄噯</p><pre class="md-fences md-end-block" lang="java"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 161px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">//鏀粯璁㈠崟璇锋眰绫� OrderReq锛�</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 绗�1涓弬鏁� cpOrder(String) 娓告垙鏂硅鍗曞彿-蹇呭~</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 绗�2涓弬鏁� amount(int) 璁㈠崟浠锋牸锛堝崟浣嶏細鍒嗭級-蹇呭~-蹇呴』浼犳暣鍨�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 绗�3涓弬鏁� orderDesc(String) 璁㈠崟鎻忚堪-蹇呭~</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 绗�4涓弬鏁� cpInfo(String) 娓告垙鏂归�忎紶淇℃伅-閫夊~-鍙负绌哄瓧绗︿覆</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">OrderReq</span> <span class="cm-variable">orderReq</span> <span class="cm-operator">=</span> <span class="cm-keyword">new</span> <span class="cm-variable">OrderReq</span>(<span class="cm-string">"1494852115481"</span>,<span class="cm-number">100</span>, <span class="cm-string">"涓�鎶婂ぇ瀹濆墤"</span>,<span class="cm-string">""</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">pay</span>(<span class="cm-variable">MainActivity</span>.<span class="cm-keyword">this</span>, <span class="cm-variable">orderReq</span>);</span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 161px;"></div><div class="CodeMirror-gutters" style="display: none; height: 191px;"></div></div></div></pre><h3><a name='header-n1190' class='md-header-anchor '></a>3.8 閫�鍑虹▼搴� <span class="MathJax_Preview"></span><span class="MathJax_SVG" id="MathJax-Element-9-Frame" tabindex="-1" style="font-size: 100%; display: inline-block;"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="5.54ex" height="2.757ex" viewBox="0 -889.4 2385.4 1187.2" role="img" focusable="false" style="vertical-align: -0.692ex;"><defs><path stroke-width="1" id="E9-MJMAIN-28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path><path stroke-width="1" id="E9-MJMAIN-29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><g fill="red" stroke="red"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-28"></use></g><g fill="red" stroke="red" transform="translate(389,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">蹇�</text></g></g></g><g fill="red" stroke="red" transform="translate(1192,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">鎺�</text></g></g></g><g fill="red" stroke="red" transform="translate(1995,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-29"></use></g></g></g></g></svg></span><script type="math/tex" id="MathJax-Element-9">\textcolor{red}{(蹇呮帴)}</script></h3><pre class="md-fences md-end-block" lang="java"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 138px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">//鍦ㄩ��鍑烘父鎴忕殑鏃跺�欒皟鐢�</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">onExit</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">//鎴栬��</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">onExit</span>(<span class="cm-variable">ILLSDKExitCallback</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">//娉細鍓嶈�呭甫閫�鍑虹‘璁ゆ骞跺疄鐜伴��鍑虹▼搴忛�昏緫锛屽悗鑰呭甫閫�鍑虹‘璁ゆ浣嗘病鏈夐��鍑洪�昏緫锛屼細閫氳繃鍥炶皟鎺ュ彛杩斿洖缁檆p鑷繁澶勭悊閫�鍑�</span></span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 138px;"></div><div class="CodeMirror-gutters" style="display: none; height: 168px;"></div></div></div></pre><h3><a name='header-n1192' class='md-header-anchor '></a>3.9 apk 鐨� VersionCode 鍜� VersionName 瑕佹眰</h3><pre class="md-fences md-end-block" lang="java"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 138px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 鍥犳垜鏂逛笟鍔$殑闇�瑕侊紝蹇呴』鐢辨垜鏂规帶鍒惰apk鐗堟湰鍙峰拰鐗堟湰鍚嶈繖涓や釜瀛楁,</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 濡傛灉娓告垙鍐呴儴涔熶娇鐢� apk 鐨� VersionCode 鍜� VersionName 浣滀负鐗堟湰鎺у埗锛�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 璇峰姟蹇呰皟鐢� </span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">getApkVersionCode</span>(<span class="cm-variable">Context</span>) </span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 鍜� </span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">getApkVersionName</span>(<span class="cm-variable">Context</span>)<span class="cm-variable">鎺ュ彛鑾峰彇</span></span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 138px;"></div><div class="CodeMirror-gutters" style="display: none; height: 168px;"></div></div></div></pre><p>杩橀渶鍦╨lsdk_config.xml 鍔犲叆 <ll_v_code> 鍜� <ll_v_name> 鏍囩</p><pre class="md-fences md-end-block" lang="xml"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 207px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta"><?xml</span> <span class="cm-meta">version='1.0' encoding='utf-8' standalone='yes' ?></span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tag cm-bracket"><</span><span class="cm-tag">map</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">llsdkcl</span><span class="cm-tag cm-bracket">></span>1<span class="cm-tag cm-bracket"></</span><span class="cm-tag">llsdkcl</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">llsdkfg</span><span class="cm-tag cm-bracket">></span>DEFAULT<span class="cm-tag cm-bracket"></</span><span class="cm-tag">llsdkfg</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment"><!--apk鐗堟湰鍙�--></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">ll_v_code</span><span class="cm-tag cm-bracket">></span>1<span class="cm-tag cm-bracket"></</span><span class="cm-tag">ll_v_code</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-comment"><!--apk鐗堟湰鍚�--></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-tag cm-bracket"><</span><span class="cm-tag">ll_v_name</span><span class="cm-tag cm-bracket">></span>1.0.1<span class="cm-tag cm-bracket"></</span><span class="cm-tag">ll_v_name</span><span class="cm-tag cm-bracket">></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tag cm-bracket"></</span><span class="cm-tag">map</span><span class="cm-tag cm-bracket">></span></span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 207px;"></div><div class="CodeMirror-gutters" style="display: none; height: 237px;"></div></div></div></pre><h3><a name='header-n1197' class='md-header-anchor '></a>3.10 SDK 鐢熷懡鍛ㄦ湡 <span class="MathJax_Preview"></span><span class="MathJax_SVG" id="MathJax-Element-9-Frame" tabindex="-1" style="font-size: 100%; display: inline-block;"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="5.54ex" height="2.757ex" viewBox="0 -889.4 2385.4 1187.2" role="img" focusable="false" style="vertical-align: -0.692ex;"><defs><path stroke-width="1" id="E9-MJMAIN-28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path><path stroke-width="1" id="E9-MJMAIN-29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><g fill="red" stroke="red"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-28"></use></g><g fill="red" stroke="red" transform="translate(389,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">蹇�</text></g></g></g><g fill="red" stroke="red" transform="translate(1192,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">鎺�</text></g></g></g><g fill="red" stroke="red" transform="translate(1995,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E9-MJMAIN-29"></use></g></g></g></g></svg></span><script type="math/tex" id="MathJax-Element-9">\textcolor{red}{(蹇呮帴)}</script></h3><pre class="md-fences md-end-block" lang="java"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 1610px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// Activity鐢熷懡鍛ㄦ湡onStart()鏂规硶鍥炶皟ILLApi鐨刼nStart()鏂规硶</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">protected</span> <span class="cm-variable-3">void</span> <span class="cm-def">onStart</span>() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">super</span>.<span class="cm-variable">onStart</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">onStart</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// Activity鐢熷懡鍛ㄦ湡onResume()鏂规硶鍥炶皟ILLApi鐨刼nResume()鏂规硶</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">protected</span> <span class="cm-variable-3">void</span> <span class="cm-def">onResume</span>() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">super</span>.<span class="cm-variable">onResume</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">onResume</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// Activity鐢熷懡鍛ㄦ湡onPause()鏂规硶鍥炶皟ILLApi鐨刼nPause()鏂规硶</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">protected</span> <span class="cm-variable-3">void</span> <span class="cm-def">onPause</span>() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">super</span>.<span class="cm-variable">onPause</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">onPause</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// Activity鐢熷懡鍛ㄦ湡onStop()鏂规硶鍥炶皟ILLApi鐨刼nStop()鏂规硶</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">protected</span> <span class="cm-variable-3">void</span> <span class="cm-def">onStop</span>() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">super</span>.<span class="cm-variable">onStop</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">onStop</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// Activity鐢熷懡鍛ㄦ湡onRestart()鏂规硶鍥炶皟ILLApi鐨刼nRestart()鏂规硶</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">protected</span> <span class="cm-variable-3">void</span> <span class="cm-def">onRestart</span>() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">super</span>.<span class="cm-variable">onRestart</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">onRestart</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// Activity鐢熷懡鍛ㄦ湡onDestroy()鏂规硶鍥炶皟ILLApi鐨刼nDestroy()鏂规硶</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">protected</span> <span class="cm-variable-3">void</span> <span class="cm-def">onDestroy</span>() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">super</span>.<span class="cm-variable">onDestroy</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">onDestory</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// Activity鐢熷懡鍛ㄦ湡onNewIntent()鏂规硶鍥炶皟ILLApi鐨刼nNewIntent(Intent)鏂规硶</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">protected</span> <span class="cm-variable-3">void</span> <span class="cm-def">onNewIntent</span>(<span class="cm-variable">Intent</span> <span class="cm-variable">intent</span>) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">super</span>.<span class="cm-variable">onNewIntent</span>(<span class="cm-variable">intent</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">onNewIntent</span>(<span class="cm-variable">intent</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// Activity鐢熷懡鍛ㄦ湡onConfigurationChanged()鏂规硶鍥炶皟ILLApi鐨刼nConfigurationChanged()鏂规硶</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">public</span> <span class="cm-variable-3">void</span> <span class="cm-def">onConfigurationChanged</span>(<span class="cm-variable">Configuration</span> <span class="cm-variable">newConfig</span>) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">super</span>.<span class="cm-variable">onConfigurationChanged</span>(<span class="cm-variable">newConfig</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">onConfigurationChanged</span>(<span class="cm-variable">newConfig</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// Activity鐢熷懡鍛ㄦ湡onActivityResult()鏂规硶鍥炶皟ILLApi鐨刼nActivityResult()鏂规硶</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">protected</span> <span class="cm-variable-3">void</span> <span class="cm-def">onActivityResult</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">requestCode</span>, <span class="cm-variable-3">int</span> <span class="cm-variable">resultCode</span>, <span class="cm-variable">Intent</span> <span class="cm-variable">data</span>) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">super</span>.<span class="cm-variable">onActivityResult</span>(<span class="cm-variable">requestCode</span>, <span class="cm-variable">resultCode</span>, <span class="cm-variable">data</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">onActivityResult</span>(<span class="cm-variable">requestCode</span>, <span class="cm-variable">resultCode</span>, <span class="cm-variable">data</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 鍦╫nBackPressed()鏂规硶鍥炶皟onKeyBack()</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 鎴栧湪Activity鐨刼nKeyDown(int, KeyEvent)鏂规硶鐩戝惉杩斿洖閿苟鍥炶皟ILLApi鐨刼nKeyBack()鏂规硶</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">public</span> <span class="cm-variable-3">void</span> <span class="cm-def">onBackPressed</span>() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-keyword">super</span>.<span class="cm-variable">onBackPressed</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> <span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">onKeyBack</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 1610px;"></div><div class="CodeMirror-gutters" style="display: none; height: 1640px;"></div></div></div></pre><h3><a name='header-n1199' class='md-header-anchor '></a>3.11 鍏充簬寮傚父缁熻 <span class="MathJax_Preview"></span><span class="MathJax_SVG" id="MathJax-Element-10-Frame" tabindex="-1" style="font-size: 100%; display: inline-block;"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="5.506ex" height="2.757ex" viewBox="0 -889.4 2370.5 1187.2" role="img" focusable="false" style="vertical-align: -0.692ex;"><defs><path stroke-width="1" id="E10-MJMAIN-28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path><path stroke-width="1" id="E10-MJMAIN-29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><g fill="red" stroke="red"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E10-MJMAIN-28"></use></g><g fill="red" stroke="red" transform="translate(389,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">閫�</text></g></g></g><g fill="red" stroke="red" transform="translate(1177,0)"><g fill="red" stroke="red"><g fill="red" stroke="red"><text font-family="STIXGeneral,'Arial Unicode MS',serif" stroke="none" transform="scale(32.867) matrix(1 0 0 -1 0 0)">鎺�</text></g></g></g><g fill="red" stroke="red" transform="translate(1980,0)"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#E10-MJMAIN-29"></use></g></g></g></g></svg></span><script type="math/tex" id="MathJax-Element-10">\textcolor{red}{(閫夋帴)}</script></h3><pre class="md-fences md-end-block" lang="java"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 391px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// SDK鍐呴儴宸插疄鐜板紓甯告崟鑾稶ncaughtExceptionHandler(鍒濆鍖朣DK鏃舵敞鍐�)</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 浠ヤ笅鏈変笁绉嶆儏鍐碉細</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 1銆佸鎴风鑷繁娌℃湁瀹炵幇UncaughtExceptionHandler绫绘崟鑾峰紓甯哥殑鎯呭喌涓� </span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 濡傞渶澶勭悊寮傚父 璇疯缃紓甯稿洖璋僉LSDK.getInstance().setExceptionCallback(IExceptionCallback)</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">setExceptionCallback</span>(<span class="cm-keyword">new</span> <span class="cm-variable">IExceptionCallback</span>() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text=" "> </span><span class="cm-meta">@Override</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text=" "> </span><span class="cm-keyword">public</span> <span class="cm-variable-3">void</span> <span class="cm-variable">uncaughtException</span>(<span class="cm-variable">Thread</span> <span class="cm-variable">thread</span>, <span class="cm-variable">Throwable</span> <span class="cm-variable">throwable</span>) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text=" "> </span><span class="cm-tab" role="presentation" cm-text=" "> </span><span class="cm-variable">Log</span>.<span class="cm-variable">e</span>(<span class="cm-string">"MainActivity"</span>, <span class="cm-string">"鏀跺埌寮傚父"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text=" "> </span>}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">});</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 2銆佸鏋滃鎴风鑷繁宸插疄鐜癠ncaughtExceptionHandler绫绘崟鑾峰紓甯革紝骞朵笖娉ㄥ唽浜嶴DK鍒濆鍖栦箣鍚�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 閭d箞SDK鍐呴儴鐨勫紓甯告崟鑾峰氨浼氬け鏁堬紝閭d箞璇峰湪瀹㈡埛绔敹鍒板紓甯哥殑鍦版柟鍥炶皟缁橲DK</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">LLSDK</span>.<span class="cm-variable">getInstance</span>().<span class="cm-variable">handleToSDKException</span>(<span class="cm-variable">Thread</span>, <span class="cm-variable">Throwable</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">// 3銆佸鏋滃鎴风浣跨敤鐨勬槸绗笁鏂圭粺璁″紓甯稿簱锛岄偅涔堣蹇界暐3.11</span></span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 391px;"></div><div class="CodeMirror-gutters" style="display: none; height: 421px;"></div></div></div></pre><h2><a name='header-n1201' class='md-header-anchor '></a>鍥涖�侀檮褰�</h2><h3><a name='header-n1202' class='md-header-anchor '></a>4.1 SDK 鎵撳寘娣锋穯</h3><p>鍦� ProGuard 鏂囦欢涓姞鍏ヤ互涓� keep銆�</p><pre class="md-fences md-end-block" lang="java"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; min-height: 184px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-operator">-</span><span class="cm-variable">keep</span> <span class="cm-keyword">class</span> <span class="cm-def">com</span>.<span class="cm-variable">linglei</span>.<span class="cm-variable">sdk</span>.<span class="cm-operator">**</span> {<span class="cm-operator">*</span>;}</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-operator">-</span><span class="cm-variable">dontwarn</span> <span class="cm-variable">com</span>.<span class="cm-variable">linglei</span>.<span class="cm-variable">sdk</span>.<span class="cm-operator">**</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-operator">-</span><span class="cm-variable">keep</span> <span class="cm-keyword">class</span> <span class="cm-def">com</span>.<span class="cm-variable">linglei</span>.<span class="cm-variable">sdklib</span>.<span class="cm-operator">**</span> {<span class="cm-operator">*</span>;}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-operator">-</span><span class="cm-variable">dontwarn</span> <span class="cm-variable">com</span>.<span class="cm-variable">linglei</span>.<span class="cm-variable">sdklib</span>.<span class="cm-operator">**</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="">鈥�</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-operator">-</span><span class="cm-variable">keep</span> <span class="cm-keyword">class</span> <span class="cm-def">com</span>.<span class="cm-variable">lingleigame</span>.<span class="cm-variable">ad</span>.<span class="cm-variable">sdk</span>.<span class="cm-operator">**</span>{<span class="cm-operator">*</span>;}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-operator">-</span><span class="cm-variable">dontwarn</span> <span class="cm-variable">com</span>.<span class="cm-variable">lingleigame</span>.<span class="cm-variable">ad</span>.<span class="cm-variable">sdk</span>.<span class="cm-operator">**</span></span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 184px;"></div><div class="CodeMirror-gutters" style="display: none; height: 214px;"></div></div></div></pre><h3><a name='header-n1206' class='md-header-anchor '></a>4.2 杩斿洖鐮�</h3><table><thead><tr><th>杩斿洖鐮�</th><th>浠g爜</th><th>鍚箟</th></tr></thead><tbody><tr><td>1</td><td>RespCode.SUCCESS</td><td>鎴愬姛</td></tr><tr><td>2</td><td>RespCode.ERR_PARAM</td><td>鍙傛暟閿欒</td></tr><tr><td>10</td><td>RespCode.ERR_CONFIG</td><td>閰嶇疆淇℃伅閿欒</td></tr><tr><td>11</td><td>RespCode.ERR_NETWORK</td><td>缃戠粶寮傚父</td></tr><tr><td>12</td><td>RespCode.ERR_NO_LOGGED</td><td>鏈櫥褰�</td></tr><tr><td>99</td><td>RespCode.ERR_FAIL</td><td>鍐呴儴閿欒</td></tr><tr><td>101</td><td>RespCode.ERR_TOKEN</td><td>token閿欒</td></tr><tr><td>102</td><td>RespCode.ERR_TOKEN_OVERDUE</td><td>token宸茶繃鏈�</td></tr><tr><td>103</td><td>RespCode.ERR_ACCOUNT_EXIST</td><td>璐︽埛宸插瓨鍦�</td></tr><tr><td>104</td><td>RespCode.ERR_CHANNEL</td><td>閿欒鐨勬笭閬撳彿</td></tr><tr><td>105</td><td>RespCode.ERR_ACCOUNT_PWD</td><td>璐﹀彿瀵嗙爜閿欒</td></tr><tr><td>106</td><td>RespCode.ERR_ACCOUNT_NO_EXIST</td><td>璐﹀彿涓嶅瓨鍦�</td></tr><tr><td>107</td><td>RespCode.ERR_BIND_ACCOUNT_PHONE_EXIST</td><td>瑕佺粦瀹氱殑璐﹀彿鐢佃瘽宸插瓨鍦�</td></tr><tr><td>108</td><td>RespCode.ERR_SMS_SEND</td><td>鐭俊鍙戦�佸け璐�</td></tr><tr><td>109</td><td>RespCode.ERR_VERIFY_NUM</td><td>楠岃瘉鐮侀敊璇�</td></tr><tr><td>201</td><td>RespCode.ERR_PAY_ORDER</td><td>鏀粯璁㈠崟鍒涘缓澶辫触</td></tr></tbody></table><p></p><p></p></div>
+</body>
+</html>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/AndroidManifest.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/AndroidManifest.xml"
new file mode 100644
index 0000000..12d4e74
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/AndroidManifest.xml"
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="鍖呭悕">
+
+ <!-- Required -->
+ <uses-permission android:name="android.permission.INTERNET" />
+ <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
+ <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
+ <uses-permission android:name="android.permission.WAKE_LOCK" />
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+ <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+ <uses-permission android:name="android.permission.CALL_PHONE" />
+ <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
+ <uses-permission android:name="android.permission.GET_TASKS" />
+ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+ <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+ <uses-permission android:name="android.permission.VIBRATE" />
+ <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
+ <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
+
+ <!-- 濡傛灉鎮ㄥ綋鍓嶅簲鐢ㄧ▼搴忔湁鑷繁鐨凙pplication锛屽垯蹇呴』缁ф壙com.linglei.sdk.openapi.LLApplication-->
+ <!-- 濡傛灉娌℃湁锛岃鎸囧畾application鐨刵ame灞炴�т负com.linglei.sdk.openapi.LLApplication -->
+ <application
+ android:name="com.linglei.sdklib.open.LLApplication"
+ android:allowBackup="true"
+ android:icon="@drawable/llsdk_ic_close"
+ android:label="SDK-LATEST"
+ android:theme="@android:style/Theme.Holo.Light.NoActionBar">
+
+ <!-- Required APPID-->
+ <meta-data
+ android:name="LL_APPID"
+ android:value="1001" />
+
+ <!--鍔″繀鎶婃父鎴忎富activity action 鍜� category 淇敼涓轰互涓嬪��-->
+ <activity
+ android:name="com.linglei.sdkdemoas.MainActivity"
+ android:configChanges="keyboardHidden|orientation|screenSize"
+ android:screenOrientation="landscape">
+ <intent-filter>
+ <action android:name="鍖呭悕.MAIN" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
+
+ <!-- Required 闂睆椤� 鍔″繀鎶奡DK鍚姩椤� action 鍜� category 淇敼涓轰互涓嬪�硷紝灞忓箷鏂瑰悜璇锋寚瀹氱珫灞忔垨妯睆-->
+ <activity
+ android:name="com.linglei.sdklib.auth.SplashActivity"
+ android:configChanges="keyboardHidden|orientation|screenSize"
+ android:screenOrientation="landscape"
+ android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+
+ <!-- Required SDK鍐呴儴鐣岄潰 灞忓箷鏂瑰悜璇锋寚瀹氱珫灞忔垨妯睆, 涓婚鍔″繀涓嶈淇敼-->
+ <activity
+ android:name="com.linglei.sdklib.auth.AuthActivity"
+ android:configChanges="keyboardHidden|orientation|screenSize"
+ android:screenOrientation="landscape"
+ android:theme="@style/llsdk_dialog" />
+
+ <!-- Required 鍏叡鐣岄潰 灞忓箷鏂瑰悜璇锋寚瀹氱珫灞忔垨妯睆-->
+ <activity
+ android:name="com.linglei.sdklib.auth.CommonActivity"
+ android:configChanges="keyboardHidden|orientation|screenSize"
+ android:screenOrientation="landscape"
+ android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
+
+ <!-- Required SDK鏍稿績鏈嶅姟-->
+ <service
+ android:name="com.linglei.sdklib.open.LLService"
+ android:exported="false" />
+
+ </application>
+
+</manifest>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/SDKDemo.apk" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/SDKDemo.apk"
new file mode 100644
index 0000000..fa36da4
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/SDKDemo.apk"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/.gitignore" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/.gitignore"
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/.gitignore"
@@ -0,0 +1 @@
+/build
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/app.iml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/app.iml"
new file mode 100644
index 0000000..637260d
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/app.iml"
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id=":app" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" type="JAVA_MODULE" version="4">
+ <component name="FacetManager">
+ <facet type="android-gradle" name="Android-Gradle">
+ <configuration>
+ <option name="GRADLE_PROJECT_PATH" value=":app" />
+ </configuration>
+ </facet>
+ <facet type="android" name="Android">
+ <configuration>
+ <option name="SELECTED_BUILD_VARIANT" value="debug" />
+ <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
+ <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
+ <afterSyncTasks>
+ <task>generateDebugSources</task>
+ </afterSyncTasks>
+ <option name="ALLOW_USER_CONFIGURATION" value="false" />
+ <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
+ <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
+ <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
+ <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
+ </configuration>
+ </facet>
+ </component>
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
+ <output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
+ <output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
+ <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
+ <excludeFolder url="file://$MODULE_DIR$/build/reports" />
+ <excludeFolder url="file://$MODULE_DIR$/build/tmp" />
+ </content>
+ <orderEntry type="jdk" jdkName="Android API 25 Platform" jdkType="Android SDK" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" exported="" scope="TEST" name="com.android.support.test:exposed-instrumentation-api-publish-0.5" level="project" />
+ <orderEntry type="library" exported="" scope="TEST" name="org.hamcrest:hamcrest-core:1.3@jar" level="project" />
+ <orderEntry type="library" exported="" scope="TEST" name="com.android.support.test.espresso:espresso-core-2.2.2" level="project" />
+ <orderEntry type="library" exported="" name="__local_jars__:E.\ll_core_projects\AndroidSDK_SDKDemoAs\SDKDemoAs\app\libs\lingleisdk-2.0.2.jar:unspecified@jar" level="project" />
+ <orderEntry type="library" exported="" scope="TEST" name="junit:junit:4.12@jar" level="project" />
+ <orderEntry type="library" exported="" scope="TEST" name="com.android.support.test:rules-0.5" level="project" />
+ <orderEntry type="library" exported="" scope="TEST" name="org.hamcrest:hamcrest-library:1.3@jar" level="project" />
+ <orderEntry type="library" exported="" scope="TEST" name="org.hamcrest:hamcrest-integration:1.3@jar" level="project" />
+ <orderEntry type="library" exported="" scope="TEST" name="javax.inject:javax.inject:1@jar" level="project" />
+ <orderEntry type="library" exported="" scope="TEST" name="com.android.support.test:runner-0.5" level="project" />
+ <orderEntry type="library" exported="" scope="TEST" name="com.squareup:javawriter:2.1.1@jar" level="project" />
+ <orderEntry type="library" exported="" scope="TEST" name="com.android.support.test.espresso:espresso-idling-resource-2.2.2" level="project" />
+ <orderEntry type="library" exported="" scope="TEST" name="javax.annotation:javax.annotation-api:1.2@jar" level="project" />
+ <orderEntry type="library" exported="" scope="TEST" name="com.google.code.findbugs:jsr305:2.0.1@jar" level="project" />
+ </component>
+</module>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/build.gradle" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/build.gradle"
new file mode 100644
index 0000000..7d0b522
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/build.gradle"
@@ -0,0 +1,32 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 25
+ buildToolsVersion "25.0.0"
+ defaultConfig {
+ applicationId "com.linglei.sdkdemoas"
+ minSdkVersion 14
+ targetSdkVersion 22
+ versionCode 10
+ versionName "2.1.0"
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+repositories{
+ flatDir{
+ dirs 'libs' //aar鐨勭洰褰�
+ }
+}
+dependencies {
+ compile fileTree(include: ['*.jar'], dir: 'libs')
+ androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
+ exclude group: 'com.android.support', module: 'support-annotations'
+ })
+ compile files('libs/lingleisdk-2.1.0.jar')
+}
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/libs/lingleisdk-2.1.0.jar" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/libs/lingleisdk-2.1.0.jar"
new file mode 100644
index 0000000..2572ab2
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/libs/lingleisdk-2.1.0.jar"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/AndroidManifest.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/AndroidManifest.xml"
new file mode 100644
index 0000000..5f1c48c
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/AndroidManifest.xml"
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.linglei.sdkdemoas">
+
+ <!-- Required 娉ㄦ剰targetSdkVersion >= 23鏃讹紝鍗遍櫓鏉冮檺闇�瑕佸姩鎬佺敵璇�-->
+ <uses-permission android:name="android.permission.INTERNET" />
+ <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
+ <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
+ <uses-permission android:name="android.permission.WAKE_LOCK" />
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+ <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+ <uses-permission android:name="android.permission.CALL_PHONE" />
+ <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
+ <uses-permission android:name="android.permission.GET_TASKS" />
+ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+ <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+ <uses-permission android:name="android.permission.VIBRATE" />
+ <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
+ <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
+
+ <!-- 濡傛灉鎮ㄥ綋鍓嶅簲鐢ㄧ▼搴忔湁鑷繁鐨凙pplication锛屽垯蹇呴』缁ф壙com.linglei.sdk.openapi.LLApplication-->
+ <!-- 濡傛灉娌℃湁锛岃鎸囧畾application鐨刵ame灞炴�т负com.linglei.sdk.openapi.LLApplication -->
+ <application
+
+ android:allowBackup="true"
+ android:icon="@drawable/llsdk_ic_close"
+ android:label="SDK-LATEST"
+ android:theme="@android:style/Theme.Holo.Light.NoActionBar">
+
+ <!-- Required APPID-->
+ <meta-data
+ android:name="LL_APPID"
+ android:value="1001" />
+
+ <!--鍔″繀鎶婃父鎴忎富activity action 鍜� category 淇敼涓轰互涓嬪��-->
+ <activity
+ android:name="com.linglei.sdkdemoas.MainActivity"
+ android:configChanges="keyboardHidden|orientation|screenSize"
+ android:screenOrientation="landscape">
+ <intent-filter>
+ <action android:name="com.linglei.sdkdemoas.MAIN" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
+
+ <!-- Required 闂睆椤� 鍔″繀鎶奡DK鍚姩椤� action 鍜� category 淇敼涓轰互涓嬪�硷紝灞忓箷鏂瑰悜璇锋寚瀹氱珫灞忔垨妯睆-->
+ <activity
+ android:name="com.linglei.sdklib.auth.SplashActivity"
+ android:configChanges="keyboardHidden|orientation|screenSize"
+ android:screenOrientation="landscape"
+ android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+
+ <!-- Required SDK鍐呴儴鐣岄潰 灞忓箷鏂瑰悜璇锋寚瀹氱珫灞忔垨妯睆, 涓婚鍔″繀涓嶈淇敼-->
+ <activity
+ android:name="com.linglei.sdklib.auth.AuthActivity"
+ android:configChanges="keyboardHidden|orientation|screenSize"
+ android:screenOrientation="landscape"
+ android:theme="@style/llsdk_dialog" />
+
+ <!-- Required 鍏叡鐣岄潰 灞忓箷鏂瑰悜璇锋寚瀹氱珫灞忔垨妯睆-->
+ <activity
+ android:name="com.linglei.sdklib.auth.CommonActivity"
+ android:configChanges="keyboardHidden|orientation|screenSize"
+ android:screenOrientation="landscape"
+ android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
+
+ <!-- Required SDK鏍稿績鏈嶅姟-->
+ <service
+ android:name="com.linglei.sdklib.open.LLService"
+ android:exported="false" />
+
+ </application>
+
+</manifest>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/assets/llsdk_config.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/assets/llsdk_config.xml"
new file mode 100644
index 0000000..e3bb1df
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/assets/llsdk_config.xml"
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
+<map>
+ <llsdkcl>1</llsdkcl>
+ <llsdkfg>DEFAULT</llsdkfg>
+ <ll_dbg_f_e>1</ll_dbg_f_e>
+ <lladswitch>1</lladswitch>
+ <ll_v_code>2</ll_v_code>
+ <ll_v_name>6.22</ll_v_name>
+</map>
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/java/com/linglei/sdkdemoas/MainActivity.java" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/java/com/linglei/sdkdemoas/MainActivity.java"
new file mode 100644
index 0000000..8d126d1
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/java/com/linglei/sdkdemoas/MainActivity.java"
@@ -0,0 +1,283 @@
+package com.linglei.sdkdemoas;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.content.res.Configuration;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.View;
+import android.view.WindowManager;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.linglei.sdk.openapi.LLSDK;
+import com.linglei.sdklib.auth.AuthAccessToken;
+import com.linglei.sdklib.open.IExceptionCallback;
+import com.linglei.sdklib.open.ILLSDKCallback;
+import com.linglei.sdklib.open.ILLSDKInitCallback;
+import com.linglei.sdklib.open.reqinfo.OrderReq;
+import com.linglei.sdklib.open.reqinfo.RoleInfoReq;
+import com.linglei.sdklib.open.respinfo.UserResp;
+import com.linglei.sdklib.utils.ResourceUtils;
+
+public class MainActivity extends Activity implements View.OnClickListener {
+
+ /**
+ * 鏄惁鍒濆鍖�
+ */
+ private boolean mIsInitSDKSucceed;
+ private EditText mCustomPayEt;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+// showToast(LLSDK.getInstance().getApkVersionCode(this)+" "+LLSDK.getInstance().getApkVersionName(this));
+ getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
+ setContentView(ResourceUtils.getLayoutByName(this, "llsdk_demo_activity_main"));
+ // 寮�鍚皟璇� 姝e紡鎵撳寘涓婄嚎璇峰叧闂皟璇曟ā寮�
+// LLSDK.getInstance().setDebugMode(true);
+
+ // 鍒濆鍖�
+ LLSDK.getInstance().initSDK(MainActivity.this, new ILLSDKInitCallback() {
+ @Override
+ public void onInitResponse(int respCode, String respMsg) {
+ Log.e("MainActivity", "code->" + respCode + " msg->" + respMsg);
+ // respCode==1鎴愬姛
+ if (respCode == 1) {
+ mIsInitSDKSucceed = true;
+ showToast("鍒濆鍖栨垚鍔�");
+ }
+ }
+ });
+ // 鍏ㄥ眬鍥炶皟 璇峰湪鍒濆鍖栦箣鍚庤缃洖璋�
+ LLSDK.getInstance().setLLSDKCallback(sdkCallback);
+
+ findViewById(ResourceUtils.getIdByName(this, "ll_demo_login")).setOnClickListener(this); // 璋冪敤鐧诲嚭鎸夐挳
+ findViewById(ResourceUtils.getIdByName(this, "ll_demo_switch_account")).setOnClickListener(this);
+ findViewById(ResourceUtils.getIdByName(this, "ll_demo_login_info")).setOnClickListener(this);
+ findViewById(ResourceUtils.getIdByName(this, "ll_demo_pay001")).setOnClickListener(this);//0.01鍏�
+ findViewById(ResourceUtils.getIdByName(this, "ll_demo_pay01")).setOnClickListener(this);//0.1
+ findViewById(ResourceUtils.getIdByName(this, "ll_demo_pay1")).setOnClickListener(this);//1
+ findViewById(ResourceUtils.getIdByName(this, "ll_demo_pay6")).setOnClickListener(this);//6
+ findViewById(ResourceUtils.getIdByName(this, "ll_demo_pay_custom")).setOnClickListener(this);//鑷畾涔夐噾棰�
+ mCustomPayEt = (EditText) findViewById(ResourceUtils.getIdByName(this, "ll_demo_pay_custom_et"));
+ findViewById(ResourceUtils.getIdByName(this, "ll_demo_sdk_version")).setOnClickListener(this);// 鑾峰彇SDK鐗堟湰鎸夐挳
+
+ // sdk宸插疄鐜板紓甯告崟鑾稶ncaughtExceptionHandler
+ // 瀹㈡埛绔闇�澶勭悊寮傚父 璇疯缃紓甯稿洖璋僆ExceptionCallback
+ LLSDK.getInstance().setExceptionCallback(new IExceptionCallback() {
+ @Override
+ public void uncaughtException(Thread thread, Throwable throwable) {
+ Log.e("MainActivity", "鏀跺埌寮傚父");
+ }
+ });
+ }
+
+ @Override
+ public void onClick(View v) {
+ int id = v.getId();
+ if(id == ResourceUtils.getIdByName(MainActivity.this, "ll_demo_login")) {
+ login();
+ } else if(id == ResourceUtils.getIdByName(MainActivity.this, "ll_demo_switch_account")) {
+ LLSDK.getInstance().switchAccount();
+ }
+ else if(id == ResourceUtils.getIdByName(MainActivity.this, "ll_demo_login_info")) {
+ AuthAccessToken auth = LLSDK.getInstance().getAuth();
+ if(auth != null) {
+ Log.e("MainActivity", " " + auth.toString());
+ showToast("鐧诲綍淇℃伅" + auth.toString());
+ }
+ }
+ else if(id == ResourceUtils.getIdByName(MainActivity.this, "ll_demo_pay001")) {
+ pay(1);
+ }
+ else if(id == ResourceUtils.getIdByName(MainActivity.this, "ll_demo_pay01")) {
+ pay(10);
+ }
+ else if(id == ResourceUtils.getIdByName(MainActivity.this, "ll_demo_pay1")) {
+ pay(100);
+ }
+ else if(id == ResourceUtils.getIdByName(MainActivity.this, "ll_demo_pay6")) {
+ pay(600);
+ }
+ else if(id == ResourceUtils.getIdByName(MainActivity.this, "ll_demo_pay_custom")) {
+ String customAmount = mCustomPayEt.getText().toString().trim();
+ if(!TextUtils.isEmpty(customAmount)) {
+ try {
+ int money = Integer.parseInt(customAmount);
+ if(money > 0) {
+ pay(money);
+ }
+ } catch (NumberFormatException e) {
+ e.printStackTrace();
+ showToast("鏁板�艰繃闀�-閲戦蹇呴』涓烘暣鍨�");
+ }
+
+ }
+ }else if(id == ResourceUtils.getIdByName(MainActivity.this, "ll_demo_sdk_version")) {
+ showToast("褰撳墠SDK鐗堟湰锛�" + LLSDK.getInstance().getSDKVersion());
+ }
+ }
+
+ /**
+ * 鏀粯
+ *
+ * @param amount 閲戦
+ */
+ private void pay(int amount) {
+ // 鏀粯璁㈠崟璇锋眰绫� OrderReq
+ // 绗�1涓弬鏁� cpOrder(String) 娓告垙鏂硅鍗曞彿-蹇呭~
+ // 绗�2涓弬鏁� amount(int) 璁㈠崟浠锋牸锛堝崟浣嶏細鍒嗭級-蹇呭~-蹇呴』浼犳暣鍨�
+ // 绗�3涓弬鏁� orderDesc(String) 璁㈠崟鎻忚堪-蹇呭~
+ // 绗�4涓弬鏁� cpInfo(String) 娓告垙鏂归�忎紶淇℃伅-閫夊~-鍙负绌哄瓧绗︿覆
+ OrderReq orderReq = new OrderReq("LLTest"+System.currentTimeMillis(), amount, "涓�鎶婂ぇ瀹濆墤", "");
+ LLSDK.getInstance().pay(MainActivity.this, orderReq);
+ }
+
+ /**
+ * 鍏ㄥ眬鎺ュ彛鍥炶皟
+ */
+ private ILLSDKCallback sdkCallback = new ILLSDKCallback() {
+
+ @Override
+ public void onLoginSuccess(UserResp userResp) {
+ // token 鍜� uid
+ Log.e("MainActivity", "鐧诲綍鎴愬姛:" + (userResp != null ? userResp.toString() : ""));
+ showToast("鐧诲綍鎴愬姛");
+
+ //鐧诲綍鎴愬姛鍚庤璁剧疆瑙掕壊淇℃伅
+ //鍙傛暟渚濇涓� 娓告垙甯佸綋鍓嶄綑棰濄�佽鑹茬殑绛夌骇銆佺敤鎴穠ip绛夌骇銆佽鑹插敮涓�鏍囪瘑銆佽鑹插悕銆佹墍鍦ㄥ尯鏈�
+ RoleInfoReq roleInfoReq = new RoleInfoReq(100, 10, 10, "roleId", "roleName", "zone");
+ LLSDK.getInstance().setRoleData(roleInfoReq);
+ }
+
+ @Override
+ public void onLoginFailure(int errorCode, String errorMsg) {
+ Log.e("MainActivity", "鐧诲綍澶辫触" + errorCode + " " + errorMsg);
+ showToast("鐧诲綍澶辫触" + errorCode + " " + errorMsg);
+ }
+
+ @Override
+ public void onLogout() {
+ // 琛ㄧず鐢ㄦ埛宸茬櫥鍑�, 娓告垙鏀跺埌姝ゆ秷鎭�氬父鎯呭喌涓嬶紝闇�瑕佷富鍔ㄨ皟鐢ㄧ櫥褰曟帴鍙�
+ login();
+ }
+
+ @Override
+ public void onPayResponse() {
+ // 姝ゆ柟娉曞洖璋冨彧鑳借鏄庢敮浠樻搷浣滃畬姣曪紝鍏蜂綋鏄惁鏀粯鎴愬姛浠ユ帴鍏ユ柟鏈嶅姟绔负鍑�
+ Log.e("MainActivity", "鏀粯鎿嶄綔瀹屾瘯");
+ showToast("鏀粯鎿嶄綔瀹屾瘯");
+ }
+
+ @Override
+ public void onPayFailure(int errorCode, String errorMsg) {
+ Log.e("MainActivity", "鏀粯澶辫触");
+ showToast("鏀粯澶辫触" + errorCode + " " + errorMsg);
+ }
+ };
+
+ /**
+ * 鐧诲綍
+ */
+ private void login() {
+ if (mIsInitSDKSucceed) {
+ LLSDK.getInstance().login(MainActivity.this);
+ } else {
+ showToast("璇峰厛鍒濆鍖朣DK!");
+ }
+ }
+
+ // Activity鐢熷懡鍛ㄦ湡onStart()鏂规硶鍥炶皟ILLApi鐨刼nStart()鏂规硶
+ @Override
+ protected void onStart() {
+ super.onStart();
+ LLSDK.getInstance().onStart();
+ }
+
+ // Activity鐢熷懡鍛ㄦ湡onResume()鏂规硶鍥炶皟ILLApi鐨刼nResume()鏂规硶
+ @Override
+ protected void onResume() {
+ super.onResume();
+ LLSDK.getInstance().onResume();
+ }
+
+ // Activity鐢熷懡鍛ㄦ湡onPause()鏂规硶鍥炶皟ILLApi鐨刼nPause()鏂规硶
+ @Override
+ protected void onPause() {
+ super.onPause();
+ LLSDK.getInstance().onPause();
+ }
+
+ // Activity鐢熷懡鍛ㄦ湡onStop()鏂规硶鍥炶皟ILLApi鐨刼nStop()鏂规硶
+ @Override
+ protected void onStop() {
+ super.onStop();
+ LLSDK.getInstance().onStop();
+ }
+
+ // Activity鐢熷懡鍛ㄦ湡onRestart()鏂规硶鍥炶皟ILLApi鐨刼nRestart()鏂规硶
+ @Override
+ protected void onRestart() {
+ super.onRestart();
+ LLSDK.getInstance().onRestart();
+ }
+
+ // Activity鐢熷懡鍛ㄦ湡onDestroy()鏂规硶鍥炶皟ILLApi鐨刼nDestroy()鏂规硶
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ LLSDK.getInstance().onDestory();
+ }
+
+ // Activity鐢熷懡鍛ㄦ湡onNewIntent()鏂规硶鍥炶皟ILLApi鐨刼nNewIntent(Intent)鏂规硶
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ LLSDK.getInstance().onNewIntent(intent);
+ }
+
+ // Activity鐢熷懡鍛ㄦ湡onConfigurationChanged()鏂规硶鍥炶皟ILLApi鐨刼nConfigurationChanged()鏂规硶
+ @Override
+ public void onConfigurationChanged(Configuration newConfig) {
+ super.onConfigurationChanged(newConfig);
+ LLSDK.getInstance().onConfigurationChanged(newConfig);
+ }
+
+ // Activity鐢熷懡鍛ㄦ湡onActivityResult()鏂规硶鍥炶皟ILLApi鐨刼nActivityResult()鏂规硶
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ LLSDK.getInstance().onActivityResult(requestCode, resultCode, data);
+ }
+
+ // Activity鐨刼nKeyDown(int, KeyEvent)鏂规硶鐩戝惉杩斿洖閿苟鍥炶皟ILLApi鐨刼nKeyBack()鏂规硶
+ // 鎴栬�呭湪onBackPressed()鏂规硶鍥炶皟onKeyBack()
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ LLSDK.getInstance().onKeyBack();
+ exit();
+ return true;
+ }
+ return super.onKeyDown(keyCode, event);
+ }
+
+ private void exit(){
+ // 濡傛灉娓告垙娌℃湁閫�鍑烘父鎴忓脊鍑虹‘瀹氭鎴栬�呭叧闂▼搴忔搷浣� 璇疯皟鐢ㄦ垜鏂筍DK onExit鎺ュ彛
+ LLSDK.getInstance().onExit();
+ }
+
+ private void showToast(String msg) {
+ if (!TextUtils.isEmpty(msg)) {
+ Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ @Override
+ public void onBackPressed() {
+ super.onBackPressed();
+ }
+}
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/anim/llsdk_view_hide.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/anim/llsdk_view_hide.xml"
new file mode 100644
index 0000000..186a92d
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/anim/llsdk_view_hide.xml"
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+ <alpha
+ android:duration="200"
+ android:fromAlpha="1.0"
+ android:toAlpha="0.0"/>
+ <scale
+ android:duration="200"
+ android:fromXScale="1.0"
+ android:fromYScale="1.0"
+ android:pivotX="50.0%p"
+ android:pivotY="50.0%p"
+ android:toXScale="0.3"
+ android:toYScale="0.3"/>
+</set>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_back.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_back.png"
new file mode 100644
index 0000000..8db72ad
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_back.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_back2.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_back2.png"
new file mode 100644
index 0000000..920e9f5
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_back2.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_back_big_left.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_back_big_left.png"
new file mode 100644
index 0000000..dea90db
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_back_big_left.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_back_big_right.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_back_big_right.png"
new file mode 100644
index 0000000..9a4b574
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_back_big_right.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_close.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_close.png"
new file mode 100644
index 0000000..c0d552f
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_close.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_delete.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_delete.png"
new file mode 100644
index 0000000..3aecb52
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_delete.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_down.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_down.png"
new file mode 100644
index 0000000..6f5bbe1
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_down.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_floating_arrow_l.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_floating_arrow_l.png"
new file mode 100644
index 0000000..e94a063
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_floating_arrow_l.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_floating_arrow_r.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_floating_arrow_r.png"
new file mode 100644
index 0000000..6d86946
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_floating_arrow_r.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_floating_icon.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_floating_icon.png"
new file mode 100644
index 0000000..fed4ee7
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_floating_icon.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_forget_pwd_nor.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_forget_pwd_nor.png"
new file mode 100644
index 0000000..417043e
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_forget_pwd_nor.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_forget_pwd_pre.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_forget_pwd_pre.png"
new file mode 100644
index 0000000..98ad434
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable-xhdpi/llsdk_ic_forget_pwd_pre.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_floating_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_floating_view.xml"
new file mode 100644
index 0000000..fc72a9d
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_floating_view.xml"
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#70000000" />
+ <corners android:radius="180dp"/>
+</shape>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_gary_no_top.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_gary_no_top.xml"
new file mode 100644
index 0000000..a5dcf24
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_gary_no_top.xml"
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:top="-2dp"
+ android:right="-2dp"
+ android:left="-2dp"
+ android:bottom="-0.5dp">
+ <shape>
+ <solid android:color="#ffffff"/>
+ <stroke
+ android:width="1dp"
+ android:color="#cccccc"/>
+ </shape>
+ </item>
+</layer-list>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_gary_nor.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_gary_nor.xml"
new file mode 100644
index 0000000..1fc2d23
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_gary_nor.xml"
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#e8e8e8" />
+ <stroke android:color="#62b0ff" android:width="0dp"/>
+ <corners android:radius="12dp"/>
+</shape>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_gray_border.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_gray_border.xml"
new file mode 100644
index 0000000..0cbaecf
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_gray_border.xml"
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#ffffff" />
+ <stroke android:color="#d0d0d0" android:width="2.5dp"/>
+ <corners android:radius="1.8dp"/>
+</shape>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_green_border.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_green_border.xml"
new file mode 100644
index 0000000..40f0ebb
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_green_border.xml"
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#ffffff" />
+ <stroke android:color="#2b9581" android:width="1.6dp"/>
+ <corners android:radius="6dp"/>
+</shape>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_nor.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_nor.xml"
new file mode 100644
index 0000000..cec7595
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_nor.xml"
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#ffffff" />
+ <stroke android:color="#62b0ff" android:width="2.5dp"/>
+ <corners android:radius="12dp"/>
+</shape>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_white_nor.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_white_nor.xml"
new file mode 100644
index 0000000..7dea248
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_bg_white_nor.xml"
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#ffffff" />
+ <stroke android:color="#62b0ff" android:width="0dp"/>
+ <corners
+ android:topLeftRadius="12dp"
+ android:topRightRadius="12dp"/>
+</shape>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_line_blue.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_line_blue.xml"
new file mode 100644
index 0000000..21a75bf
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_line_blue.xml"
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <corners android:radius="100dp"/>
+ <gradient
+ android:angle="180"
+ android:startColor="#ffffff"
+ android:centerColor="#93d3ff"
+ android:endColor="#ffffff"/>
+</shape>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_selector_btn.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_selector_btn.xml"
new file mode 100644
index 0000000..8d79b80
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_selector_btn.xml"
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <corners
+ android:radius="5dp"/>
+ <gradient
+ android:angle="90"
+ android:startColor="#ff7900"
+ android:endColor="#ffb32f"/>
+ </shape>
+ </item>
+
+ <item android:state_pressed="false">
+ <shape>
+ <corners
+ android:radius="5dp"/>
+ <gradient
+ android:angle="90"
+ android:startColor="#0196fd"
+ android:endColor="#58c2fe"/>
+ </shape>
+ </item>
+</selector>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_selector_forget_pwd.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_selector_forget_pwd.xml"
new file mode 100644
index 0000000..4522da0
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_selector_forget_pwd.xml"
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <corners
+ android:radius="10dp"/>
+
+ <solid android:color="#ffffff"/>
+ <stroke android:color="#ff8e29" android:width="1.2dp"/>
+ </shape>
+ </item>
+
+ <item android:state_pressed="false">
+ <shape>
+ <corners
+ android:radius="10dp"/>
+ <solid android:color="#ffffff"/>
+ <stroke android:color="#56c9ff" android:width="1.2dp"/>
+
+ </shape>
+ </item>
+</selector>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_shape_blue.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_shape_blue.xml"
new file mode 100644
index 0000000..82287ce
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_shape_blue.xml"
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <corners
+ android:radius="12dp"/>
+ <solid android:color="#ff8e29"/>
+ <stroke android:color="#ff8e29"/>
+ </shape>
+ </item>
+
+ <item android:state_pressed="false">
+ <shape>
+ <corners
+ android:radius="12dp"/>
+ <solid android:color="#2b9eef"/>
+ <stroke android:color="#2b9eef"/>
+
+ </shape>
+ </item>
+</selector>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_shape_gray_input.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_shape_gray_input.xml"
new file mode 100644
index 0000000..072150f
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/drawable/llsdk_shape_gray_input.xml"
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#FFFFFF" />
+ <stroke android:color="#c1c1c1" android:width="1dp"/>
+ <corners android:radius="16dp"/>
+</shape>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_auth_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_auth_view.xml"
new file mode 100644
index 0000000..2a4d7fa
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_auth_view.xml"
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:orientation="vertical">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10dp"
+ android:gravity="center"
+ android:lineSpacingExtra="2dp"
+ android:text="@string/llsdk_auth_tip"
+ android:textColor="@color/llsdk_color_gary"
+ android:textSize="10sp" />
+
+ <EditText
+ android:id="@+id/ll_name_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="15dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_realname2"
+ android:inputType="text"
+ android:tag="4" />
+
+ <EditText
+ android:id="@+id/ll_id_number_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="6dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_idcard"
+ android:inputType="number"
+ android:tag="5" />
+
+ <Button
+ android:id="@+id/ll_submit_btn"
+ style="@style/llsdk_btn"
+ android:layout_gravity="center_horizontal"
+ android:layout_marginTop="12dp"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="纭瀹炲悕" />
+
+ </LinearLayout>
+ </ScrollView>
+</RelativeLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_demo_activity_main.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_demo_activity_main.xml"
new file mode 100644
index 0000000..51dae7f
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_demo_activity_main.xml"
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <Button
+ android:id="@+id/ll_demo_login"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="璋冪敤鐧诲綍" />
+
+ <Button
+ android:id="@+id/ll_demo_switch_account"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="鍒囨崲璐﹀彿" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <Button
+ android:id="@+id/ll_demo_pay001"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="鏀粯0.01鍏�" />
+
+ <Button
+ android:id="@+id/ll_demo_pay01"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="鏀粯0.1鍏�" />
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <Button
+ android:id="@+id/ll_demo_pay1"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="鏀粯1鍏�" />
+
+ <Button
+ android:id="@+id/ll_demo_pay6"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="鏀粯6鍏�" />
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="50dp"
+ android:gravity="center_vertical"
+ android:background="@android:color/holo_orange_light"
+ android:orientation="horizontal">
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="46dp"
+ android:layout_weight="1"
+ android:id="@+id/ll_demo_pay_custom_et"
+ android:textColorHint="@android:color/white"
+ android:hint="鑷畾涔夐噾棰�(鍒�)"
+ android:inputType="number"
+ android:paddingLeft="10dp"
+ android:textColor="@android:color/white"
+ android:background="@android:color/holo_green_light"/>
+
+ <Button
+ android:id="@+id/ll_demo_pay_custom"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="鑷畾涔夐噾棰濇敮浠�" />
+ </LinearLayout>
+
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <Button
+ android:id="@+id/ll_demo_login_info"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="鑾峰彇鐧诲綍淇℃伅" />
+
+ <Button
+ android:id="@+id/ll_demo_sdk_version"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="鑾峰彇SDK鐗堟湰" />
+ </LinearLayout>
+
+</LinearLayout>
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_forget_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_forget_view.xml"
new file mode 100644
index 0000000..c859e15
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_forget_view.xml"
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:orientation="vertical">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <EditText
+ android:id="@+id/ll_new_pwd_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="20dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="杈撳叆鏂板瘑鐮�"
+ android:inputType="textPassword"
+ android:tag="2" />
+
+ <EditText
+ android:id="@+id/ll_submit_new_pwd_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="20dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="纭鏂板瘑鐮�"
+ android:inputType="textPassword"
+ android:tag="2" />
+
+ <Button
+ android:id="@+id/ll_change_btn"
+ style="@style/llsdk_btn"
+ android:layout_marginTop="20dp"
+ android:layout_marginRight="30dp"
+ android:layout_marginLeft="30dp"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="纭淇敼" />
+
+ </LinearLayout>
+
+ </ScrollView>
+</RelativeLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_include_title.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_include_title.xml"
new file mode 100644
index 0000000..c63fe68
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_include_title.xml"
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/ll_title"
+ android:layout_width="match_parent"
+ android:layout_height="52dp"
+ android:paddingTop="5dp">
+
+ <ImageView
+ android:id="@+id/ll_close_iv"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_alignParentRight="true"
+ android:layout_centerInParent="true"
+ android:layout_centerVertical="true"
+ android:layout_marginRight="10dp"
+ android:scaleType="centerInside"
+ android:src="@drawable/llsdk_ic_back" />
+
+ <TextView
+ android:id="@+id/ll_dialog_tv"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerVertical="true"
+ android:layout_marginLeft="12dp"
+ android:textColor="@color/llsdk_color_blue"
+ android:textSize="17sp" />
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="2.5dp"
+ android:layout_alignParentBottom="true"
+ android:background="@color/llsdk_color_blue" />
+
+</RelativeLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_login_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_login_view.xml"
new file mode 100644
index 0000000..88f7cd0
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_login_view.xml"
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:orientation="vertical">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+
+ <Button
+ android:id="@+id/ll_quick_register_btn"
+ style="@style/llsdk_btn"
+ android:layout_alignParentBottom="true"
+ android:layout_alignParentRight="true"
+ android:layout_width="wrap_content"
+ android:layout_marginRight="15dp"
+ android:layout_height="28dp"
+ android:paddingLeft="8dp"
+ android:paddingRight="8dp"
+ android:layout_marginBottom="12dp"
+ android:layout_marginLeft="4dp"
+ android:textSize="14sp"
+ android:background="@drawable/llsdk_shape_blue"
+ android:text="@string/llsdk_quick_register" />
+
+ <TextView
+ android:id="@+id/ll_notice_tv"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:layout_marginBottom="15dp"
+ android:layout_marginLeft="15dp"
+ android:layout_marginTop="16dp"
+ android:layout_toLeftOf="@id/ll_quick_register_btn"
+ android:gravity="left"
+ android:maxLines="2"
+ android:layout_marginRight="10dp"
+ android:textColor="#8f8f8f"
+ android:textSize="14sp" />
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:layout_above="@id/ll_quick_register_btn"
+ android:scrollbars="none">
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingTop="12dp"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <RelativeLayout
+ android:id="@+id/ll_username_et_rl"
+ android:layout_width="match_parent"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:layout_height="44dp">
+
+ <ImageView
+ android:id="@+id/ll_down_iv"
+ android:layout_width="22dp"
+ android:layout_height="22dp"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:layout_marginRight="15dp"
+ android:src="@drawable/llsdk_ic_down"
+ android:visibility="visible" />
+
+ <EditText
+ android:id="@+id/ll_username_et"
+ style="@style/llsdk_edit_et"
+ android:paddingRight="10dp"
+ android:inputType="text"
+ android:maxLength="16"
+ android:layout_toLeftOf="@id/ll_down_iv"
+ android:hint="@string/llsdk_account"
+ android:tag="1" />
+
+ </RelativeLayout>
+
+
+ <RelativeLayout
+ android:id="@+id/ll_password_et_rl"
+ android:layout_width="match_parent"
+ android:layout_height="44dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:layout_marginTop="8dp"
+ android:layout_below="@id/ll_username_et_rl">
+
+ <TextView
+ android:id="@+id/ll_forget_pwd_btn"
+ android:layout_width="77dp"
+ android:layout_height="23dp"
+ android:layout_centerVertical="true"
+ android:text="蹇樿瀵嗙爜"
+ android:paddingLeft="5dp"
+ android:textColor="#56c9ff"
+ android:paddingRight="5dp"
+ android:textSize="13sp"
+ android:background="@drawable/llsdk_selector_forget_pwd"
+ android:layout_alignParentRight="true"
+ android:layout_marginRight="15dp"
+ android:gravity="center"
+ />
+
+ <EditText
+ android:id="@+id/ll_password_et"
+ style="@style/llsdk_edit_et"
+ android:maxLength="16"
+ android:paddingLeft="10dp"
+ android:layout_toLeftOf="@id/ll_forget_pwd_btn"
+ android:inputType="textPassword"
+ android:hint="@string/llsdk_pwd"
+ android:tag="2" />
+
+ </RelativeLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/ll_password_et_rl"
+ android:orientation="horizontal"
+ android:layout_marginTop="13dp">
+ <Button
+ android:id="@+id/ll_register_btn"
+ style="@style/llsdk_btn"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="@string/llsdk_register2" />
+
+ <Button
+ android:id="@+id/ll_login_btn"
+ style="@style/llsdk_btn"
+ android:layout_marginTop="12dp"
+ android:layout_marginLeft="8dp"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="@string/llsdk_login2" />
+ </LinearLayout>
+
+ </RelativeLayout>
+ </ScrollView>
+
+ <!--list-->
+ <RelativeLayout
+ android:id="@+id/ll_list_rl"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@android:color/transparent"
+ android:paddingLeft="15dp"
+ android:visibility="gone"
+ android:paddingRight="15dp">
+
+ <ListView
+ android:id="@+id/ll_user_list"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="30dp"
+ android:layout_marginTop="108dp"
+ android:divider="#cccccc"
+ android:dividerHeight="0.4dp"
+ android:scrollbars="vertical"
+ android:background="@drawable/llsdk_bg_gary_no_top"
+ android:visibility="visible">
+
+ </ListView>
+ </RelativeLayout>
+
+</RelativeLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_pay_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_pay_view.xml"
new file mode 100644
index 0000000..34697f6
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_pay_view.xml"
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="300dp"
+ android:background="@drawable/llsdk_bg_gary_nor"
+ android:orientation="vertical">
+
+ <RelativeLayout
+ android:id="@+id/ll_title"
+ android:layout_width="match_parent"
+ android:layout_height="52dp"
+ android:background="@drawable/llsdk_bg_white_nor"
+ android:paddingTop="5dp">
+
+ <ImageView
+ android:id="@+id/ll_close_iv"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_alignParentRight="true"
+ android:layout_centerInParent="true"
+ android:layout_centerVertical="true"
+ android:layout_marginRight="10dp"
+ android:scaleType="centerInside"
+ android:src="@drawable/llsdk_ic_close" />
+
+ <TextView
+ android:id="@+id/ll_dialog_tv"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:layout_marginLeft="6dp"
+ android:text="鏀粯涓績"
+ android:textColor="#ff7e00"
+ android:textSize="17sp" />
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:layout_alignParentBottom="true"
+ android:background="#d0d0d0" />
+
+ </RelativeLayout>
+
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="5dp"
+ android:layout_marginTop="5dp"
+ android:text="璐拱淇℃伅"
+ android:textColor="@color/llsdk_color_black"
+ android:textSize="16sp" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@drawable/llsdk_bg_gray_border"
+ android:orientation="vertical">
+
+ <TextView
+ android:id="@+id/ll_pay_name"
+ android:layout_width="match_parent"
+ android:layout_height="38dp"
+ android:gravity="center_vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="5dp"
+ android:text="鍟嗗搧鍚嶇О: "
+ android:textColor="@color/llsdk_color_black"
+ android:textSize="16sp" />
+
+ <View
+ android:id="@+id/ll_pay_account_v"
+ android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:background="#d0d0d0" />
+
+ <TextView
+ android:id="@+id/ll_pay_account"
+ android:layout_width="match_parent"
+ android:layout_height="38dp"
+ android:gravity="center_vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="5dp"
+ android:text="鏀粯璐﹀彿: "
+ android:textColor="@color/llsdk_color_black"
+ android:textSize="16sp" />
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:background="#d0d0d0" />
+
+ <TextView
+ android:id="@+id/ll_pay_money"
+ android:layout_width="match_parent"
+ android:layout_height="38dp"
+ android:gravity="center_vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="5dp"
+ android:text="鏀粯閲戦: "
+ android:textColor="@color/llsdk_color_black"
+ android:textSize="16sp" />
+
+ </LinearLayout>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="5dp"
+ android:layout_marginTop="5dp"
+ android:text="璇烽�夋嫨鏀粯鏂瑰紡锛�"
+ android:textColor="@color/llsdk_color_black"
+ android:textSize="16sp" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="56dp">
+
+ <ImageView
+ android:id="@+id/ll_pay_left"
+ android:layout_width="34dp"
+ android:layout_height="34dp"
+ android:layout_gravity="center_vertical"
+ android:scaleType="centerInside"
+ android:src="@drawable/llsdk_ic_back_big_left" />
+
+ <com.linglei.sdklib.view.HorizontalListView
+ android:id="@+id/ll_pay_lv"
+ android:layout_width="0dp"
+ android:layout_height="50dp"
+ android:layout_gravity="center_vertical"
+ android:layout_weight="1"
+ android:scrollbars="horizontal" />
+
+ <ImageView
+ android:id="@+id/ll_pay_right"
+ android:layout_width="34dp"
+ android:layout_height="34dp"
+ android:layout_gravity="center_vertical"
+ android:scaleType="centerInside"
+ android:src="@drawable/llsdk_ic_back_big_right" />
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ </ScrollView>
+</RelativeLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_register_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_register_view.xml"
new file mode 100644
index 0000000..ceb54d9
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_register_view.xml"
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:orientation="vertical">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp"
+ android:paddingTop="6dp">
+
+ <EditText
+ android:id="@+id/ll_username_et"
+ style="@style/llsdk_edit_et"
+ android:layout_height="40dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_account"
+ android:inputType="text"
+ android:maxLength="16"
+ android:tag="1" />
+
+ <EditText
+ android:id="@+id/ll_password_et"
+ style="@style/llsdk_edit_et"
+ android:layout_height="40dp"
+ android:layout_marginTop="5dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_pwd"
+ android:inputType="textPassword"
+ android:maxLength="16"
+ android:tag="2" />
+
+ <EditText
+ android:id="@+id/ll_password_again_et"
+ style="@style/llsdk_edit_et"
+ android:layout_height="40dp"
+ android:layout_marginTop="5dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_confirm_pwd"
+ android:inputType="textPassword"
+ android:maxLength="16"
+ android:tag="2" />
+
+ <TextView
+ android:id="@+id/ll_terms_btn"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginBottom="2dp"
+ android:layout_marginTop="2dp"
+ android:gravity="center"
+ android:paddingBottom="3dp"
+ android:paddingTop="3dp"
+ android:text="@string/llsdk_read_terms"
+ android:textColor="#8f8f8f"
+ android:textSize="13sp" />
+
+ <Button
+ android:id="@+id/ll_register_btn"
+ style="@style/llsdk_btn"
+ android:layout_marginLeft="30dp"
+ android:layout_marginRight="30dp"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="@string/llsdk_register" />
+ </LinearLayout>
+ </ScrollView>
+</RelativeLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_terms_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_terms_view.xml"
new file mode 100644
index 0000000..e2ad339
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_terms_view.xml"
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:orientation="vertical">
+
+ <RelativeLayout
+ android:id="@+id/ll_title"
+ android:layout_width="match_parent"
+ android:layout_height="52dp"
+ android:paddingTop="5dp"
+ >
+
+ <ImageView
+ android:id="@+id/ll_close_iv"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:scaleType="centerInside"
+ android:layout_centerInParent="true"
+ android:layout_marginRight="10dp"
+ android:src="@drawable/llsdk_ic_back" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:text="鐢ㄦ埛鍗忚"
+ android:layout_marginLeft="6dp"
+ android:textColor="@color/llsdk_color_blue"
+ android:textSize="17sp"
+ android:id="@+id/ll_dialog_tv"/>
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:layout_marginLeft="3dp"
+ android:layout_marginRight="3dp"
+ android:background="@drawable/llsdk_line_blue"
+ android:layout_alignParentBottom="true"/>
+
+ </RelativeLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_verify_change_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_verify_change_view.xml"
new file mode 100644
index 0000000..3e456aa
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_verify_change_view.xml"
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/ll_phone_root_rl"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:visibility="visible">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <EditText
+ android:id="@+id/ll_username_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="14dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_account"
+ android:inputType="text"
+ android:tag="1" />
+ <TextView
+ android:id="@+id/ll_get_verify_num"
+ android:layout_width="wrap_content"
+ android:layout_height="30dp"
+ android:background="@drawable/llsdk_bg_green_border"
+ android:gravity="center"
+ android:paddingLeft="8dp"
+ android:paddingRight="8dp"
+ android:layout_gravity="center_horizontal"
+ android:layout_marginTop="8dp"
+ android:text="@string/llsdk_get_verify_num"
+ android:textColor="@color/llsdk_color_green"
+ android:textSize="15sp" />
+
+ <EditText
+ android:id="@+id/ll_verify_num_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginRight="5dp"
+ android:hint="@string/llsdk_verify_num"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:inputType="phone"
+ android:layout_marginTop="10dp"
+ android:tag="6" />
+
+ <Button
+ android:id="@+id/ll_commit_btn"
+ style="@style/llsdk_btn"
+ android:layout_marginTop="10dp"
+ android:layout_marginLeft="30dp"
+ android:layout_marginRight="30dp"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="@string/llsdk_submit" />
+ </LinearLayout>
+ </ScrollView>
+
+</RelativeLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_verify_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_verify_view.xml"
new file mode 100644
index 0000000..6c7823a
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/layout/llsdk_verify_view.xml"
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/ll_phone_root_rl"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:visibility="visible">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <EditText
+ android:id="@+id/ll_phone_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="14dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_phone_two2"
+ android:inputType="phone"
+ android:tag="3" />
+ <TextView
+ android:id="@+id/ll_get_verify_num"
+ android:layout_width="wrap_content"
+ android:layout_height="30dp"
+ android:background="@drawable/llsdk_bg_green_border"
+ android:gravity="center"
+ android:paddingLeft="8dp"
+ android:paddingRight="8dp"
+ android:layout_gravity="center_horizontal"
+ android:layout_marginTop="8dp"
+ android:text="@string/llsdk_get_verify_num"
+ android:textColor="@color/llsdk_color_green"
+ android:textSize="15sp" />
+
+ <EditText
+ android:id="@+id/ll_verify_num_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginRight="5dp"
+ android:hint="@string/llsdk_rule_tip_two"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:inputType="phone"
+ android:layout_marginTop="10dp"
+ android:tag="6" />
+
+ <Button
+ android:id="@+id/ll_commit_btn"
+ style="@style/llsdk_btn"
+ android:layout_marginTop="10dp"
+ android:layout_marginLeft="30dp"
+ android:layout_marginRight="30dp"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="@string/llsdk_submit" />
+ </LinearLayout>
+ </ScrollView>
+
+</RelativeLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/values/llsdk_colors.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/values/llsdk_colors.xml"
new file mode 100644
index 0000000..ac25741
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/values/llsdk_colors.xml"
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <color name="llsdk_color_white">#FFFFFF</color>
+ <color name="llsdk_color_black">#000000</color>
+ <color name="llsdk_color_red">#eb9500</color>
+ <color name="llsdk_color_green">#2b9581</color>
+ <color name="llsdk_color_gary">#8f8f8f</color>
+ <color name="llsdk_color_blue">#62b0ff</color>
+</resources>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/values/llsdk_strings.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/values/llsdk_strings.xml"
new file mode 100644
index 0000000..59b3beb
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/values/llsdk_strings.xml"
@@ -0,0 +1,35 @@
+<resources>
+ <string name="llsdk_forget_pwd">蹇樿瀵嗙爜</string>
+ <string name="llsdk_account">璐﹀彿</string>
+ <string name="llsdk_pwd">瀵嗙爜</string>
+ <string name="llsdk_login">鐧诲綍</string>
+ <string name="llsdk_login2">杩涘叆娓告垙</string>
+ <string name="llsdk_register">娉ㄥ唽</string>
+ <string name="llsdk_register2">娉ㄥ唽璐﹀彿</string>
+ <string name="llsdk_quick_register">涓�閿敞鍐�</string>
+ <string name="llsdk_account_two">璐�        鍙�</string>
+ <string name="llsdk_pwd_two">瀵�        鐮�</string>
+ <string name="llsdk_account_three">璐�    鍙�</string>
+ <string name="llsdk_verify_num">楠岃瘉鐮�</string>
+ <string name="llsdk_get_verify_num">鑾峰彇楠岃瘉鐮�</string>
+ <string name="llsdk_confirm_pwd">纭瀵嗙爜</string>
+ <string name="llsdk_read_terms">闃呰鏈嶅姟鏉℃</string>
+ <string name="llsdk_bind_phone">缁戝畾鎵嬫満</string>
+ <string name="llsdk_phone_two">鎵�    鏈�</string>
+ <string name="llsdk_phone_two2">鎵嬫満</string>
+ <string name="llsdk_submit">鎻愪氦</string>
+ <string name="llsdk_bind_phone_tip">灏婃暚鐨勭敤鎴凤紝鎮ㄧ殑璐﹀彿鍙兘瀛樺湪椋庨櫓锛屼负纭繚鎮ㄧ殑璐﹀彿瀹夊叏锛岃绔嬪嵆缁戝畾鎵嬫満</string>
+ <string name="llsdk_new_pwd">鏂�  瀵�  鐮�</string>
+ <string name="llsdk_confirm">纭</string>
+ <string name="llsdk_auth">瀹炲悕璁よ瘉</string>
+ <string name="llsdk_auth_tip">灏婃暚鐨勭敤鎴�,搴斿浗瀹惰姹�,娓告垙鐢ㄦ埛闇�杩涜瀹炲悕璁よ瘉\n锛堣祫鏂欎繚瀵嗭紝鏈垚骞翠汉鏀粯闄愰锛�</string>
+ <string name="llsdk_realname">濮�    鍚�</string>
+ <string name="llsdk_realname2">濮撳悕</string>
+ <string name="llsdk_idcard">韬唤璇�</string>
+ <string name="llsdk_rule_tip_one">6–16浣嶆暟瀛楁垨瀛楁瘝</string>
+ <string name="llsdk_rule_tip_two">6浣嶆暟楠岃瘉鐮�</string>
+ <string name="llsdk_rule_tip_three">11浣嶆暟瀛楁墜鏈�</string>
+ <string name="llsdk_rule_tip_four">2–15浣嶄腑鏂囧瓧绗�</string>
+ <string name="llsdk_rule_tip_five">18浣嶆暟瀛楄韩浠借瘉</string>
+
+</resources>
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/values/llsdk_styles.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/values/llsdk_styles.xml"
new file mode 100644
index 0000000..9501f5c
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/example/app/src/main/res/values/llsdk_styles.xml"
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <style name="llsdk_dialog" parent="@android:style/Theme.NoTitleBar">
+ <item name="android:windowFrame">@null</item>
+ <item name="android:windowNoTitle">true</item>
+ <item name="android:windowBackground">@android:color/transparent</item>
+ <item name="android:windowIsFloating">true</item>
+ <item name="android:windowIsTranslucent">true</item>
+ <item name="android:windowContentOverlay">@null</item>
+ <item name="android:windowAnimationStyle">@null</item>
+ <!--<item name="android:windowFullscreen">true</item>-->
+ <item name="android:backgroundDimEnabled">true</item>
+ </style>
+
+ <style name="llsdk_edit_tv">
+ <item name="android:layout_width">wrap_content</item>
+ <item name="android:layout_height">wrap_content</item>
+ <item name="android:layout_centerVertical">true</item>
+ <item name="android:padding">3dp</item>
+ <item name="android:layout_marginLeft">2dp</item>
+ <item name="android:textColor">#8f8f8f</item>
+ <item name="android:textSize">15sp</item>
+ </style>
+
+ <style name="llsdk_edit_et">
+ <item name="android:layout_width">match_parent</item>
+ <item name="android:layout_height">44dp</item>
+ <item name="android:layout_centerVertical">true</item>
+ <item name="android:background">@android:color/transparent</item>
+ <item name="android:gravity">center_vertical</item>
+ <item name="android:textColor">#111111</item>
+ <item name="android:textSize">15sp</item>
+ <item name="android:paddingLeft">10dp</item>
+ <item name="android:textColorHint">#cfcfcf</item>
+ <item name="android:lines">1</item>
+ </style>
+
+ <style name="llsdk_btn">
+ <item name="android:layout_gravity">center_horizontal</item>
+ <item name="android:layout_width">match_parent</item>
+ <item name="android:layout_height">44dp</item>
+ <item name="android:textColor">@color/llsdk_color_white</item>
+ <item name="android:textSize">16sp</item>
+ </style>
+</resources>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/libs/android-support-v4.jar" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/libs/android-support-v4.jar"
new file mode 100644
index 0000000..c31cede
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/libs/android-support-v4.jar"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/libs/lingleisdk-2.1.0.jar" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/libs/lingleisdk-2.1.0.jar"
new file mode 100644
index 0000000..2572ab2
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/libs/lingleisdk-2.1.0.jar"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/assets/llsdk_config.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/assets/llsdk_config.xml"
new file mode 100644
index 0000000..6fb61cc
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/assets/llsdk_config.xml"
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
+<map>
+ <llsdkcl>1</llsdkcl>
+ <llsdkfg>DEFAULT</llsdkfg>
+</map>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/anim/llsdk_view_hide.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/anim/llsdk_view_hide.xml"
new file mode 100644
index 0000000..186a92d
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/anim/llsdk_view_hide.xml"
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+ <alpha
+ android:duration="200"
+ android:fromAlpha="1.0"
+ android:toAlpha="0.0"/>
+ <scale
+ android:duration="200"
+ android:fromXScale="1.0"
+ android:fromYScale="1.0"
+ android:pivotX="50.0%p"
+ android:pivotY="50.0%p"
+ android:toXScale="0.3"
+ android:toYScale="0.3"/>
+</set>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_back.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_back.png"
new file mode 100644
index 0000000..8db72ad
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_back.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_back2.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_back2.png"
new file mode 100644
index 0000000..920e9f5
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_back2.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_back_big_left.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_back_big_left.png"
new file mode 100644
index 0000000..dea90db
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_back_big_left.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_back_big_right.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_back_big_right.png"
new file mode 100644
index 0000000..9a4b574
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_back_big_right.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_close.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_close.png"
new file mode 100644
index 0000000..c0d552f
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_close.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_delete.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_delete.png"
new file mode 100644
index 0000000..3aecb52
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_delete.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_down.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_down.png"
new file mode 100644
index 0000000..6f5bbe1
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_down.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_floating_arrow_l.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_floating_arrow_l.png"
new file mode 100644
index 0000000..e94a063
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_floating_arrow_l.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_floating_arrow_r.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_floating_arrow_r.png"
new file mode 100644
index 0000000..6d86946
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_floating_arrow_r.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_floating_icon.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_floating_icon.png"
new file mode 100644
index 0000000..fed4ee7
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_floating_icon.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_forget_pwd_nor.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_forget_pwd_nor.png"
new file mode 100644
index 0000000..417043e
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_forget_pwd_nor.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_forget_pwd_pre.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_forget_pwd_pre.png"
new file mode 100644
index 0000000..98ad434
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable-xhdpi/llsdk_ic_forget_pwd_pre.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_floating_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_floating_view.xml"
new file mode 100644
index 0000000..fc72a9d
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_floating_view.xml"
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#70000000" />
+ <corners android:radius="180dp"/>
+</shape>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_gary_no_top.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_gary_no_top.xml"
new file mode 100644
index 0000000..a5dcf24
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_gary_no_top.xml"
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:top="-2dp"
+ android:right="-2dp"
+ android:left="-2dp"
+ android:bottom="-0.5dp">
+ <shape>
+ <solid android:color="#ffffff"/>
+ <stroke
+ android:width="1dp"
+ android:color="#cccccc"/>
+ </shape>
+ </item>
+</layer-list>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_gary_nor.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_gary_nor.xml"
new file mode 100644
index 0000000..1fc2d23
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_gary_nor.xml"
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#e8e8e8" />
+ <stroke android:color="#62b0ff" android:width="0dp"/>
+ <corners android:radius="12dp"/>
+</shape>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_gray_border.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_gray_border.xml"
new file mode 100644
index 0000000..0cbaecf
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_gray_border.xml"
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#ffffff" />
+ <stroke android:color="#d0d0d0" android:width="2.5dp"/>
+ <corners android:radius="1.8dp"/>
+</shape>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_green_border.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_green_border.xml"
new file mode 100644
index 0000000..40f0ebb
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_green_border.xml"
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#ffffff" />
+ <stroke android:color="#2b9581" android:width="1.6dp"/>
+ <corners android:radius="6dp"/>
+</shape>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_nor.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_nor.xml"
new file mode 100644
index 0000000..cec7595
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_nor.xml"
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#ffffff" />
+ <stroke android:color="#62b0ff" android:width="2.5dp"/>
+ <corners android:radius="12dp"/>
+</shape>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_white_nor.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_white_nor.xml"
new file mode 100644
index 0000000..7dea248
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_bg_white_nor.xml"
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#ffffff" />
+ <stroke android:color="#62b0ff" android:width="0dp"/>
+ <corners
+ android:topLeftRadius="12dp"
+ android:topRightRadius="12dp"/>
+</shape>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_line_blue.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_line_blue.xml"
new file mode 100644
index 0000000..21a75bf
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_line_blue.xml"
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <corners android:radius="100dp"/>
+ <gradient
+ android:angle="180"
+ android:startColor="#ffffff"
+ android:centerColor="#93d3ff"
+ android:endColor="#ffffff"/>
+</shape>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_selector_btn.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_selector_btn.xml"
new file mode 100644
index 0000000..8d79b80
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_selector_btn.xml"
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <corners
+ android:radius="5dp"/>
+ <gradient
+ android:angle="90"
+ android:startColor="#ff7900"
+ android:endColor="#ffb32f"/>
+ </shape>
+ </item>
+
+ <item android:state_pressed="false">
+ <shape>
+ <corners
+ android:radius="5dp"/>
+ <gradient
+ android:angle="90"
+ android:startColor="#0196fd"
+ android:endColor="#58c2fe"/>
+ </shape>
+ </item>
+</selector>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_selector_forget_pwd.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_selector_forget_pwd.xml"
new file mode 100644
index 0000000..4522da0
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_selector_forget_pwd.xml"
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <corners
+ android:radius="10dp"/>
+
+ <solid android:color="#ffffff"/>
+ <stroke android:color="#ff8e29" android:width="1.2dp"/>
+ </shape>
+ </item>
+
+ <item android:state_pressed="false">
+ <shape>
+ <corners
+ android:radius="10dp"/>
+ <solid android:color="#ffffff"/>
+ <stroke android:color="#56c9ff" android:width="1.2dp"/>
+
+ </shape>
+ </item>
+</selector>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_shape_blue.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_shape_blue.xml"
new file mode 100644
index 0000000..82287ce
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_shape_blue.xml"
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <corners
+ android:radius="12dp"/>
+ <solid android:color="#ff8e29"/>
+ <stroke android:color="#ff8e29"/>
+ </shape>
+ </item>
+
+ <item android:state_pressed="false">
+ <shape>
+ <corners
+ android:radius="12dp"/>
+ <solid android:color="#2b9eef"/>
+ <stroke android:color="#2b9eef"/>
+
+ </shape>
+ </item>
+</selector>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_shape_gray_input.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_shape_gray_input.xml"
new file mode 100644
index 0000000..072150f
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/drawable/llsdk_shape_gray_input.xml"
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#FFFFFF" />
+ <stroke android:color="#c1c1c1" android:width="1dp"/>
+ <corners android:radius="16dp"/>
+</shape>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_auth_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_auth_view.xml"
new file mode 100644
index 0000000..2a4d7fa
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_auth_view.xml"
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:orientation="vertical">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10dp"
+ android:gravity="center"
+ android:lineSpacingExtra="2dp"
+ android:text="@string/llsdk_auth_tip"
+ android:textColor="@color/llsdk_color_gary"
+ android:textSize="10sp" />
+
+ <EditText
+ android:id="@+id/ll_name_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="15dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_realname2"
+ android:inputType="text"
+ android:tag="4" />
+
+ <EditText
+ android:id="@+id/ll_id_number_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="6dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_idcard"
+ android:inputType="number"
+ android:tag="5" />
+
+ <Button
+ android:id="@+id/ll_submit_btn"
+ style="@style/llsdk_btn"
+ android:layout_gravity="center_horizontal"
+ android:layout_marginTop="12dp"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="纭瀹炲悕" />
+
+ </LinearLayout>
+ </ScrollView>
+</RelativeLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_forget_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_forget_view.xml"
new file mode 100644
index 0000000..c859e15
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_forget_view.xml"
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:orientation="vertical">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <EditText
+ android:id="@+id/ll_new_pwd_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="20dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="杈撳叆鏂板瘑鐮�"
+ android:inputType="textPassword"
+ android:tag="2" />
+
+ <EditText
+ android:id="@+id/ll_submit_new_pwd_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="20dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="纭鏂板瘑鐮�"
+ android:inputType="textPassword"
+ android:tag="2" />
+
+ <Button
+ android:id="@+id/ll_change_btn"
+ style="@style/llsdk_btn"
+ android:layout_marginTop="20dp"
+ android:layout_marginRight="30dp"
+ android:layout_marginLeft="30dp"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="纭淇敼" />
+
+ </LinearLayout>
+
+ </ScrollView>
+</RelativeLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_include_title.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_include_title.xml"
new file mode 100644
index 0000000..c63fe68
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_include_title.xml"
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/ll_title"
+ android:layout_width="match_parent"
+ android:layout_height="52dp"
+ android:paddingTop="5dp">
+
+ <ImageView
+ android:id="@+id/ll_close_iv"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_alignParentRight="true"
+ android:layout_centerInParent="true"
+ android:layout_centerVertical="true"
+ android:layout_marginRight="10dp"
+ android:scaleType="centerInside"
+ android:src="@drawable/llsdk_ic_back" />
+
+ <TextView
+ android:id="@+id/ll_dialog_tv"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerVertical="true"
+ android:layout_marginLeft="12dp"
+ android:textColor="@color/llsdk_color_blue"
+ android:textSize="17sp" />
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="2.5dp"
+ android:layout_alignParentBottom="true"
+ android:background="@color/llsdk_color_blue" />
+
+</RelativeLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_login_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_login_view.xml"
new file mode 100644
index 0000000..88f7cd0
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_login_view.xml"
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:orientation="vertical">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+
+ <Button
+ android:id="@+id/ll_quick_register_btn"
+ style="@style/llsdk_btn"
+ android:layout_alignParentBottom="true"
+ android:layout_alignParentRight="true"
+ android:layout_width="wrap_content"
+ android:layout_marginRight="15dp"
+ android:layout_height="28dp"
+ android:paddingLeft="8dp"
+ android:paddingRight="8dp"
+ android:layout_marginBottom="12dp"
+ android:layout_marginLeft="4dp"
+ android:textSize="14sp"
+ android:background="@drawable/llsdk_shape_blue"
+ android:text="@string/llsdk_quick_register" />
+
+ <TextView
+ android:id="@+id/ll_notice_tv"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:layout_marginBottom="15dp"
+ android:layout_marginLeft="15dp"
+ android:layout_marginTop="16dp"
+ android:layout_toLeftOf="@id/ll_quick_register_btn"
+ android:gravity="left"
+ android:maxLines="2"
+ android:layout_marginRight="10dp"
+ android:textColor="#8f8f8f"
+ android:textSize="14sp" />
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:layout_above="@id/ll_quick_register_btn"
+ android:scrollbars="none">
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingTop="12dp"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <RelativeLayout
+ android:id="@+id/ll_username_et_rl"
+ android:layout_width="match_parent"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:layout_height="44dp">
+
+ <ImageView
+ android:id="@+id/ll_down_iv"
+ android:layout_width="22dp"
+ android:layout_height="22dp"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:layout_marginRight="15dp"
+ android:src="@drawable/llsdk_ic_down"
+ android:visibility="visible" />
+
+ <EditText
+ android:id="@+id/ll_username_et"
+ style="@style/llsdk_edit_et"
+ android:paddingRight="10dp"
+ android:inputType="text"
+ android:maxLength="16"
+ android:layout_toLeftOf="@id/ll_down_iv"
+ android:hint="@string/llsdk_account"
+ android:tag="1" />
+
+ </RelativeLayout>
+
+
+ <RelativeLayout
+ android:id="@+id/ll_password_et_rl"
+ android:layout_width="match_parent"
+ android:layout_height="44dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:layout_marginTop="8dp"
+ android:layout_below="@id/ll_username_et_rl">
+
+ <TextView
+ android:id="@+id/ll_forget_pwd_btn"
+ android:layout_width="77dp"
+ android:layout_height="23dp"
+ android:layout_centerVertical="true"
+ android:text="蹇樿瀵嗙爜"
+ android:paddingLeft="5dp"
+ android:textColor="#56c9ff"
+ android:paddingRight="5dp"
+ android:textSize="13sp"
+ android:background="@drawable/llsdk_selector_forget_pwd"
+ android:layout_alignParentRight="true"
+ android:layout_marginRight="15dp"
+ android:gravity="center"
+ />
+
+ <EditText
+ android:id="@+id/ll_password_et"
+ style="@style/llsdk_edit_et"
+ android:maxLength="16"
+ android:paddingLeft="10dp"
+ android:layout_toLeftOf="@id/ll_forget_pwd_btn"
+ android:inputType="textPassword"
+ android:hint="@string/llsdk_pwd"
+ android:tag="2" />
+
+ </RelativeLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/ll_password_et_rl"
+ android:orientation="horizontal"
+ android:layout_marginTop="13dp">
+ <Button
+ android:id="@+id/ll_register_btn"
+ style="@style/llsdk_btn"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="@string/llsdk_register2" />
+
+ <Button
+ android:id="@+id/ll_login_btn"
+ style="@style/llsdk_btn"
+ android:layout_marginTop="12dp"
+ android:layout_marginLeft="8dp"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="@string/llsdk_login2" />
+ </LinearLayout>
+
+ </RelativeLayout>
+ </ScrollView>
+
+ <!--list-->
+ <RelativeLayout
+ android:id="@+id/ll_list_rl"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@android:color/transparent"
+ android:paddingLeft="15dp"
+ android:visibility="gone"
+ android:paddingRight="15dp">
+
+ <ListView
+ android:id="@+id/ll_user_list"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="30dp"
+ android:layout_marginTop="108dp"
+ android:divider="#cccccc"
+ android:dividerHeight="0.4dp"
+ android:scrollbars="vertical"
+ android:background="@drawable/llsdk_bg_gary_no_top"
+ android:visibility="visible">
+
+ </ListView>
+ </RelativeLayout>
+
+</RelativeLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_pay_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_pay_view.xml"
new file mode 100644
index 0000000..34697f6
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_pay_view.xml"
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="300dp"
+ android:background="@drawable/llsdk_bg_gary_nor"
+ android:orientation="vertical">
+
+ <RelativeLayout
+ android:id="@+id/ll_title"
+ android:layout_width="match_parent"
+ android:layout_height="52dp"
+ android:background="@drawable/llsdk_bg_white_nor"
+ android:paddingTop="5dp">
+
+ <ImageView
+ android:id="@+id/ll_close_iv"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_alignParentRight="true"
+ android:layout_centerInParent="true"
+ android:layout_centerVertical="true"
+ android:layout_marginRight="10dp"
+ android:scaleType="centerInside"
+ android:src="@drawable/llsdk_ic_close" />
+
+ <TextView
+ android:id="@+id/ll_dialog_tv"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:layout_marginLeft="6dp"
+ android:text="鏀粯涓績"
+ android:textColor="#ff7e00"
+ android:textSize="17sp" />
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:layout_alignParentBottom="true"
+ android:background="#d0d0d0" />
+
+ </RelativeLayout>
+
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="5dp"
+ android:layout_marginTop="5dp"
+ android:text="璐拱淇℃伅"
+ android:textColor="@color/llsdk_color_black"
+ android:textSize="16sp" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@drawable/llsdk_bg_gray_border"
+ android:orientation="vertical">
+
+ <TextView
+ android:id="@+id/ll_pay_name"
+ android:layout_width="match_parent"
+ android:layout_height="38dp"
+ android:gravity="center_vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="5dp"
+ android:text="鍟嗗搧鍚嶇О: "
+ android:textColor="@color/llsdk_color_black"
+ android:textSize="16sp" />
+
+ <View
+ android:id="@+id/ll_pay_account_v"
+ android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:background="#d0d0d0" />
+
+ <TextView
+ android:id="@+id/ll_pay_account"
+ android:layout_width="match_parent"
+ android:layout_height="38dp"
+ android:gravity="center_vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="5dp"
+ android:text="鏀粯璐﹀彿: "
+ android:textColor="@color/llsdk_color_black"
+ android:textSize="16sp" />
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:background="#d0d0d0" />
+
+ <TextView
+ android:id="@+id/ll_pay_money"
+ android:layout_width="match_parent"
+ android:layout_height="38dp"
+ android:gravity="center_vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="5dp"
+ android:text="鏀粯閲戦: "
+ android:textColor="@color/llsdk_color_black"
+ android:textSize="16sp" />
+
+ </LinearLayout>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="5dp"
+ android:layout_marginTop="5dp"
+ android:text="璇烽�夋嫨鏀粯鏂瑰紡锛�"
+ android:textColor="@color/llsdk_color_black"
+ android:textSize="16sp" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="56dp">
+
+ <ImageView
+ android:id="@+id/ll_pay_left"
+ android:layout_width="34dp"
+ android:layout_height="34dp"
+ android:layout_gravity="center_vertical"
+ android:scaleType="centerInside"
+ android:src="@drawable/llsdk_ic_back_big_left" />
+
+ <com.linglei.sdklib.view.HorizontalListView
+ android:id="@+id/ll_pay_lv"
+ android:layout_width="0dp"
+ android:layout_height="50dp"
+ android:layout_gravity="center_vertical"
+ android:layout_weight="1"
+ android:scrollbars="horizontal" />
+
+ <ImageView
+ android:id="@+id/ll_pay_right"
+ android:layout_width="34dp"
+ android:layout_height="34dp"
+ android:layout_gravity="center_vertical"
+ android:scaleType="centerInside"
+ android:src="@drawable/llsdk_ic_back_big_right" />
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ </ScrollView>
+</RelativeLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_register_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_register_view.xml"
new file mode 100644
index 0000000..ceb54d9
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_register_view.xml"
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:orientation="vertical">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp"
+ android:paddingTop="6dp">
+
+ <EditText
+ android:id="@+id/ll_username_et"
+ style="@style/llsdk_edit_et"
+ android:layout_height="40dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_account"
+ android:inputType="text"
+ android:maxLength="16"
+ android:tag="1" />
+
+ <EditText
+ android:id="@+id/ll_password_et"
+ style="@style/llsdk_edit_et"
+ android:layout_height="40dp"
+ android:layout_marginTop="5dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_pwd"
+ android:inputType="textPassword"
+ android:maxLength="16"
+ android:tag="2" />
+
+ <EditText
+ android:id="@+id/ll_password_again_et"
+ style="@style/llsdk_edit_et"
+ android:layout_height="40dp"
+ android:layout_marginTop="5dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_confirm_pwd"
+ android:inputType="textPassword"
+ android:maxLength="16"
+ android:tag="2" />
+
+ <TextView
+ android:id="@+id/ll_terms_btn"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginBottom="2dp"
+ android:layout_marginTop="2dp"
+ android:gravity="center"
+ android:paddingBottom="3dp"
+ android:paddingTop="3dp"
+ android:text="@string/llsdk_read_terms"
+ android:textColor="#8f8f8f"
+ android:textSize="13sp" />
+
+ <Button
+ android:id="@+id/ll_register_btn"
+ style="@style/llsdk_btn"
+ android:layout_marginLeft="30dp"
+ android:layout_marginRight="30dp"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="@string/llsdk_register" />
+ </LinearLayout>
+ </ScrollView>
+</RelativeLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_terms_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_terms_view.xml"
new file mode 100644
index 0000000..e2ad339
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_terms_view.xml"
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:orientation="vertical">
+
+ <RelativeLayout
+ android:id="@+id/ll_title"
+ android:layout_width="match_parent"
+ android:layout_height="52dp"
+ android:paddingTop="5dp"
+ >
+
+ <ImageView
+ android:id="@+id/ll_close_iv"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:scaleType="centerInside"
+ android:layout_centerInParent="true"
+ android:layout_marginRight="10dp"
+ android:src="@drawable/llsdk_ic_back" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:text="鐢ㄦ埛鍗忚"
+ android:layout_marginLeft="6dp"
+ android:textColor="@color/llsdk_color_blue"
+ android:textSize="17sp"
+ android:id="@+id/ll_dialog_tv"/>
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:layout_marginLeft="3dp"
+ android:layout_marginRight="3dp"
+ android:background="@drawable/llsdk_line_blue"
+ android:layout_alignParentBottom="true"/>
+
+ </RelativeLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_verify_change_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_verify_change_view.xml"
new file mode 100644
index 0000000..3e456aa
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_verify_change_view.xml"
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/ll_phone_root_rl"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:visibility="visible">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <EditText
+ android:id="@+id/ll_username_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="14dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_account"
+ android:inputType="text"
+ android:tag="1" />
+ <TextView
+ android:id="@+id/ll_get_verify_num"
+ android:layout_width="wrap_content"
+ android:layout_height="30dp"
+ android:background="@drawable/llsdk_bg_green_border"
+ android:gravity="center"
+ android:paddingLeft="8dp"
+ android:paddingRight="8dp"
+ android:layout_gravity="center_horizontal"
+ android:layout_marginTop="8dp"
+ android:text="@string/llsdk_get_verify_num"
+ android:textColor="@color/llsdk_color_green"
+ android:textSize="15sp" />
+
+ <EditText
+ android:id="@+id/ll_verify_num_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginRight="5dp"
+ android:hint="@string/llsdk_verify_num"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:inputType="phone"
+ android:layout_marginTop="10dp"
+ android:tag="6" />
+
+ <Button
+ android:id="@+id/ll_commit_btn"
+ style="@style/llsdk_btn"
+ android:layout_marginTop="10dp"
+ android:layout_marginLeft="30dp"
+ android:layout_marginRight="30dp"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="@string/llsdk_submit" />
+ </LinearLayout>
+ </ScrollView>
+
+</RelativeLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_verify_view.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_verify_view.xml"
new file mode 100644
index 0000000..6c7823a
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/layout/llsdk_verify_view.xml"
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/ll_phone_root_rl"
+ android:layout_width="match_parent"
+ android:layout_height="270dp"
+ android:background="@drawable/llsdk_bg_nor"
+ android:visibility="visible">
+
+ <include
+ android:id="@+id/ll_title"
+ layout="@layout/llsdk_include_title" />
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/ll_title"
+ android:layout_marginBottom="5dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp">
+
+ <EditText
+ android:id="@+id/ll_phone_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginTop="14dp"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:hint="@string/llsdk_phone_two2"
+ android:inputType="phone"
+ android:tag="3" />
+ <TextView
+ android:id="@+id/ll_get_verify_num"
+ android:layout_width="wrap_content"
+ android:layout_height="30dp"
+ android:background="@drawable/llsdk_bg_green_border"
+ android:gravity="center"
+ android:paddingLeft="8dp"
+ android:paddingRight="8dp"
+ android:layout_gravity="center_horizontal"
+ android:layout_marginTop="8dp"
+ android:text="@string/llsdk_get_verify_num"
+ android:textColor="@color/llsdk_color_green"
+ android:textSize="15sp" />
+
+ <EditText
+ android:id="@+id/ll_verify_num_et"
+ style="@style/llsdk_edit_et"
+ android:layout_marginRight="5dp"
+ android:hint="@string/llsdk_rule_tip_two"
+ android:background="@drawable/llsdk_shape_gray_input"
+ android:inputType="phone"
+ android:layout_marginTop="10dp"
+ android:tag="6" />
+
+ <Button
+ android:id="@+id/ll_commit_btn"
+ style="@style/llsdk_btn"
+ android:layout_marginTop="10dp"
+ android:layout_marginLeft="30dp"
+ android:layout_marginRight="30dp"
+ android:background="@drawable/llsdk_selector_btn"
+ android:text="@string/llsdk_submit" />
+ </LinearLayout>
+ </ScrollView>
+
+</RelativeLayout>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/values/llsdk_colors.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/values/llsdk_colors.xml"
new file mode 100644
index 0000000..ac25741
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/values/llsdk_colors.xml"
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <color name="llsdk_color_white">#FFFFFF</color>
+ <color name="llsdk_color_black">#000000</color>
+ <color name="llsdk_color_red">#eb9500</color>
+ <color name="llsdk_color_green">#2b9581</color>
+ <color name="llsdk_color_gary">#8f8f8f</color>
+ <color name="llsdk_color_blue">#62b0ff</color>
+</resources>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/values/llsdk_strings.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/values/llsdk_strings.xml"
new file mode 100644
index 0000000..59b3beb
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/values/llsdk_strings.xml"
@@ -0,0 +1,35 @@
+<resources>
+ <string name="llsdk_forget_pwd">蹇樿瀵嗙爜</string>
+ <string name="llsdk_account">璐﹀彿</string>
+ <string name="llsdk_pwd">瀵嗙爜</string>
+ <string name="llsdk_login">鐧诲綍</string>
+ <string name="llsdk_login2">杩涘叆娓告垙</string>
+ <string name="llsdk_register">娉ㄥ唽</string>
+ <string name="llsdk_register2">娉ㄥ唽璐﹀彿</string>
+ <string name="llsdk_quick_register">涓�閿敞鍐�</string>
+ <string name="llsdk_account_two">璐�        鍙�</string>
+ <string name="llsdk_pwd_two">瀵�        鐮�</string>
+ <string name="llsdk_account_three">璐�    鍙�</string>
+ <string name="llsdk_verify_num">楠岃瘉鐮�</string>
+ <string name="llsdk_get_verify_num">鑾峰彇楠岃瘉鐮�</string>
+ <string name="llsdk_confirm_pwd">纭瀵嗙爜</string>
+ <string name="llsdk_read_terms">闃呰鏈嶅姟鏉℃</string>
+ <string name="llsdk_bind_phone">缁戝畾鎵嬫満</string>
+ <string name="llsdk_phone_two">鎵�    鏈�</string>
+ <string name="llsdk_phone_two2">鎵嬫満</string>
+ <string name="llsdk_submit">鎻愪氦</string>
+ <string name="llsdk_bind_phone_tip">灏婃暚鐨勭敤鎴凤紝鎮ㄧ殑璐﹀彿鍙兘瀛樺湪椋庨櫓锛屼负纭繚鎮ㄧ殑璐﹀彿瀹夊叏锛岃绔嬪嵆缁戝畾鎵嬫満</string>
+ <string name="llsdk_new_pwd">鏂�  瀵�  鐮�</string>
+ <string name="llsdk_confirm">纭</string>
+ <string name="llsdk_auth">瀹炲悕璁よ瘉</string>
+ <string name="llsdk_auth_tip">灏婃暚鐨勭敤鎴�,搴斿浗瀹惰姹�,娓告垙鐢ㄦ埛闇�杩涜瀹炲悕璁よ瘉\n锛堣祫鏂欎繚瀵嗭紝鏈垚骞翠汉鏀粯闄愰锛�</string>
+ <string name="llsdk_realname">濮�    鍚�</string>
+ <string name="llsdk_realname2">濮撳悕</string>
+ <string name="llsdk_idcard">韬唤璇�</string>
+ <string name="llsdk_rule_tip_one">6–16浣嶆暟瀛楁垨瀛楁瘝</string>
+ <string name="llsdk_rule_tip_two">6浣嶆暟楠岃瘉鐮�</string>
+ <string name="llsdk_rule_tip_three">11浣嶆暟瀛楁墜鏈�</string>
+ <string name="llsdk_rule_tip_four">2–15浣嶄腑鏂囧瓧绗�</string>
+ <string name="llsdk_rule_tip_five">18浣嶆暟瀛楄韩浠借瘉</string>
+
+</resources>
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/values/llsdk_styles.xml" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/values/llsdk_styles.xml"
new file mode 100644
index 0000000..9501f5c
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/android_SDK2.1.0/source/res/values/llsdk_styles.xml"
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <style name="llsdk_dialog" parent="@android:style/Theme.NoTitleBar">
+ <item name="android:windowFrame">@null</item>
+ <item name="android:windowNoTitle">true</item>
+ <item name="android:windowBackground">@android:color/transparent</item>
+ <item name="android:windowIsFloating">true</item>
+ <item name="android:windowIsTranslucent">true</item>
+ <item name="android:windowContentOverlay">@null</item>
+ <item name="android:windowAnimationStyle">@null</item>
+ <!--<item name="android:windowFullscreen">true</item>-->
+ <item name="android:backgroundDimEnabled">true</item>
+ </style>
+
+ <style name="llsdk_edit_tv">
+ <item name="android:layout_width">wrap_content</item>
+ <item name="android:layout_height">wrap_content</item>
+ <item name="android:layout_centerVertical">true</item>
+ <item name="android:padding">3dp</item>
+ <item name="android:layout_marginLeft">2dp</item>
+ <item name="android:textColor">#8f8f8f</item>
+ <item name="android:textSize">15sp</item>
+ </style>
+
+ <style name="llsdk_edit_et">
+ <item name="android:layout_width">match_parent</item>
+ <item name="android:layout_height">44dp</item>
+ <item name="android:layout_centerVertical">true</item>
+ <item name="android:background">@android:color/transparent</item>
+ <item name="android:gravity">center_vertical</item>
+ <item name="android:textColor">#111111</item>
+ <item name="android:textSize">15sp</item>
+ <item name="android:paddingLeft">10dp</item>
+ <item name="android:textColorHint">#cfcfcf</item>
+ <item name="android:lines">1</item>
+ </style>
+
+ <style name="llsdk_btn">
+ <item name="android:layout_gravity">center_horizontal</item>
+ <item name="android:layout_width">match_parent</item>
+ <item name="android:layout_height">44dp</item>
+ <item name="android:textColor">@color/llsdk_color_white</item>
+ <item name="android:textSize">16sp</item>
+ </style>
+</resources>
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/\346\234\215\345\212\241\347\253\257\346\216\245\345\205\245\346\226\207\346\241\243.pdf" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/\346\234\215\345\212\241\347\253\257\346\216\245\345\205\245\346\226\207\346\241\243.pdf"
new file mode 100644
index 0000000..ec4b1c4
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/SDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243/\346\234\215\345\212\241\347\253\257\346\216\245\345\205\245\346\226\207\346\241\243.pdf"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231_\346\216\245\345\205\245\345\217\202\346\225\260.txt" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231_\346\216\245\345\205\245\345\217\202\346\225\260.txt"
new file mode 100644
index 0000000..661170f
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/Android/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231_\346\216\245\345\205\245\345\217\202\346\225\260.txt"
@@ -0,0 +1,10 @@
+锘緼ndroid鎺ュ叆鍙傛暟
+
+APPID锛�1073
+APPKEY锛�245a1d5287018072f5e337aceafb5735
+娓告垙鍚嶇О锛氬皯骞撮厭鍓戜粰
+娓告垙鍖呭悕锛歝om.lingleigame.shaonianqixiachuan
+璇存槑
+
+鎺ュ叆鏂瑰紡锛氬畨鍗撳拰IOS娣锋湇锛�
+鏈嶅姟鍣ㄦ寚鍚戯細涓撴湇銆�
\ No newline at end of file
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/iOS/SDK\345\217\212SDK\346\216\245\345\205\245\346\226\207\346\241\243/IOSSDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243.zip" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/iOS/SDK\345\217\212SDK\346\216\245\345\205\245\346\226\207\346\241\243/IOSSDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243.zip"
new file mode 100644
index 0000000..218f9c3
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/iOS/SDK\345\217\212SDK\346\216\245\345\205\245\346\226\207\346\241\243/IOSSDK\345\217\212\346\216\245\345\205\245\346\226\207\346\241\243.zip"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/iOS/SDK\345\217\212SDK\346\216\245\345\205\245\346\226\207\346\241\243/\346\234\215\345\212\241\347\253\257\346\216\245\345\205\245\346\226\207\346\241\243.pdf" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/iOS/SDK\345\217\212SDK\346\216\245\345\205\245\346\226\207\346\241\243/\346\234\215\345\212\241\347\253\257\346\216\245\345\205\245\346\226\207\346\241\243.pdf"
new file mode 100644
index 0000000..ec4b1c4
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/iOS/SDK\345\217\212SDK\346\216\245\345\205\245\346\226\207\346\241\243/\346\234\215\345\212\241\347\253\257\346\216\245\345\205\245\346\226\207\346\241\243.pdf"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/iOS/\350\213\271\346\236\234\345\206\205\350\264\255ID\350\257\201\344\271\246\347\255\276\345\220\215/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231-\345\206\205\350\264\255\345\217\202\346\225\260\346\262\231\347\256\261\344\277\241\346\201\257-0928.xlsx" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/iOS/\350\213\271\346\236\234\345\206\205\350\264\255ID\350\257\201\344\271\246\347\255\276\345\220\215/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231-\345\206\205\350\264\255\345\217\202\346\225\260\346\262\231\347\256\261\344\277\241\346\201\257-0928.xlsx"
new file mode 100644
index 0000000..1115767
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/iOS/\350\213\271\346\236\234\345\206\205\350\264\255ID\350\257\201\344\271\246\347\255\276\345\220\215/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231-\345\206\205\350\264\255\345\217\202\346\225\260\346\262\231\347\256\261\344\277\241\346\201\257-0928.xlsx"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/iOS/\350\213\271\346\236\234\345\206\205\350\264\255ID\350\257\201\344\271\246\347\255\276\345\220\215/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231-\347\255\276\345\220\215\345\217\212\350\257\201\344\271\246.zip" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/iOS/\350\213\271\346\236\234\345\206\205\350\264\255ID\350\257\201\344\271\246\347\255\276\345\220\215/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231-\347\255\276\345\220\215\345\217\212\350\257\201\344\271\246.zip"
new file mode 100644
index 0000000..e807d6a
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/iOS/\350\213\271\346\236\234\345\206\205\350\264\255ID\350\257\201\344\271\246\347\255\276\345\220\215/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231-\347\255\276\345\220\215\345\217\212\350\257\201\344\271\246.zip"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/\346\270\270\346\210\217icon2.0/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231-icon-1024.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/\346\270\270\346\210\217icon2.0/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231-icon-1024.png"
new file mode 100644
index 0000000..2bbf1e6
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/\346\270\270\346\210\217icon2.0/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231-icon-1024.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/\346\270\270\346\210\217icon2.0/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231-icon-256.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/\346\270\270\346\210\217icon2.0/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231-icon-256.png"
new file mode 100644
index 0000000..6cdf093
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/\346\270\270\346\210\217icon2.0/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231-icon-256.png"
Binary files differ
diff --git "a/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/\346\270\270\346\210\217icon2.0/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231-icon-512.png" "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/\346\270\270\346\210\217icon2.0/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231-icon-512.png"
new file mode 100644
index 0000000..c89d2f6
--- /dev/null
+++ "b/SDK\347\233\270\345\205\263/\346\236\201\351\200\237SDK/\346\270\270\346\210\217icon2.0/\345\260\221\345\271\264\351\205\222\345\211\221\344\273\231-icon-512.png"
Binary files differ
--
Gitblit v1.8.0