Jelajahi Sumber

The release version home does not display content -- release 版home不显示内容(resolve: #14473)
Test the release version on a real device -- 真机测试release版(issue20: #14465)

Ray Zhang 4 tahun lalu
induk
melakukan
bba721767e

+ 15 - 15
ApexDrivers/ratradefiling/build.gradle

@@ -2,14 +2,14 @@ apply plugin: 'com.android.application'
 
 android {
 
-    splits {
-        abi {
-            enable true
-            reset()
-            include 'armeabi-v7a'
-            universalApk true
-        }
-    }
+//    splits {
+//        abi {
+//            enable true
+//            reset()
+//            include 'armeabi-v7a'
+//            universalApk true
+//        }
+//    }
 
     compileSdkVersion 29
 
@@ -19,7 +19,7 @@ android {
         targetSdkVersion 28
         versionCode 1
         versionName "1.0"
-        ndk.abiFilters 'armeabi-v7a',"arm64-v8a"
+//        ndk.abiFilters 'armeabi-v7a',"arm64-v8a"
 
 //        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
     }
@@ -29,15 +29,15 @@ android {
             minifyEnabled true
             shrinkResources true
             zipAlignEnabled true
-            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-project.txt'
         }
         debug {
-//            debuggable true
-//            minifyEnabled true
-//            zipAlignEnabled true
-//            shrinkResources true
+            debuggable true
+            minifyEnabled true
+            zipAlignEnabled true
+            shrinkResources true
 
-//            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-project.txt'
+            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-project.txt'
 //            proguardFiles 'proguard-project.txt'
         }
     }

+ 216 - 0
ApexDrivers/ratradefiling/proguard-project.txt

@@ -0,0 +1,216 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# 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 *;
+#}
+-dontwarn android.support.v4.**
+-dontwarn javax.naming.**
+
+
+
+
+#-keep class com.usai.redant.camera.CameraManager
+-keep class javax.naming.*
+-keep class * extends com.usai.ratradefiling.base.NoProguard {*;}
+
+# Remove all Verbose/Debug logging
+
+-optimizations code/removal/simple,code/removal/advanced
+-dontobfuscate
+-assumenosideeffects class android.util.Log {
+    public static *** d(...);
+    public static *** v(...);
+    public static *** i(...);
+}
+
+##
+##-------------------------------------------基本不用动区域----------------------------------------------
+##
+##
+## -----------------------------基本 -----------------------------
+##
+#
+## 指定代码的压缩级别 0 - 7(指定代码进行迭代优化的次数,在Android里面默认是5,这条指令也只有在可以优化时起作用。)
+#-optimizationpasses 5
+## 混淆时不会产生形形色色的类名(混淆时不使用大小写混合类名)
+#-dontusemixedcaseclassnames
+## 指定不去忽略非公共的库类(不跳过library中的非public的类)
+#-dontskipnonpubliclibraryclasses
+## 指定不去忽略包可见的库类的成员
+#-dontskipnonpubliclibraryclassmembers
+##不进行优化,建议使用此选项,
+#-dontoptimize
+# # 不进行预校验,Android不需要,可加快混淆速度。
+#-dontpreverify
+#
+#
+## 屏蔽警告
+#-ignorewarnings
+## 指定混淆是采用的算法,后面的参数是一个过滤器
+## 这个过滤器是谷歌推荐的算法,一般不做更改
+#-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
+## 保护代码中的Annotation不被混淆
+#-keepattributes *Annotation*
+## 避免混淆泛型, 这在JSON实体映射时非常重要
+#-keepattributes Signature
+## 抛出异常时保留代码行号
+#-keepattributes SourceFile,LineNumberTable
+# #优化时允许访问并修改有修饰符的类和类的成员,这可以提高优化步骤的结果。
+## 比如,当内联一个公共的getter方法时,这也可能需要外地公共访问。
+## 虽然java二进制规范不需要这个,要不然有的虚拟机处理这些代码会有问题。当有优化和使用-repackageclasses时才适用。
+##指示语:不能用这个指令处理库中的代码,因为有的类和类成员没有设计成public ,而在api中可能变成public
+#-allowaccessmodification
+##当有优化和使用-repackageclasses时才适用。
+##-repackageclasses com.test
+#
+# # 混淆时记录日志(打印混淆的详细信息)
+# # 这句话能够使我们的项目混淆后产生映射文件
+# # 包含有类名->混淆后类名的映射关系
+#-verbose
+#
+##
+## ----------------------------- 默认保留 -----------------------------
+##
+##----------------------------------------------------
+## 保持哪些类不被混淆
+##继承activity,application,service,broadcastReceiver,contentprovider....不进行混淆
+#-keep public class * extends android.app.Activity
+#-keep public class * extends android.app.Application
+#-keep public class * extends android.support.multidex.MultiDexApplication
+#-keep public class * extends android.app.Service
+#-keep public class * extends android.content.BroadcastReceiver
+#-keep public class * extends android.content.ContentProvider
+#-keep public class * extends android.app.backup.BackupAgentHelper
+#-keep public class * extends android.preference.Preference
+#-keep public class * extends android.view.View
+#-keep class android.support.** {*;}## 保留support下的所有类及其内部类
+#
+#-keep public class com.google.vending.licensing.ILicensingService
+#-keep public class com.android.vending.licensing.ILicensingService
+#
+#-keep class * extends com.usai.redant.apexdrivers.base.NoProguard {*;}
+#-keep class javax.naming.*
+##表示不混淆上面声明的类,最后这两个类我们基本也用不上,是接入Google原生的一些服务时使用的。
+##----------------------------------------------------
+#
+## 保留继承的
+#-keep public class * extends android.support.v4.**
+#-keep public class * extends android.support.v7.**
+#-keep public class * extends android.support.annotation.**
+#
+#
+##表示不混淆任何包含native方法的类的类名以及native方法名,这个和我们刚才验证的结果是一致
+#-keepclasseswithmembernames class * {
+#    native <methods>;
+#}
+#
+#
+##这个主要是在layout 中写的onclick方法android:onclick="onClick",不进行混淆
+##表示不混淆Activity中参数是View的方法,因为有这样一种用法,在XML中配置android:onClick=”buttonClick”属性,
+##当用户点击该按钮时就会调用Activity中的buttonClick(View view)方法,如果这个方法被混淆的话就找不到了
+#-keepclassmembers class * extends android.app.Activity{
+#    public void *(android.view.View);
+#}
+#
+##表示不混淆枚举中的values()和valueOf()方法,枚举我用的非常少,这个就不评论了
+#-keepclassmembers enum * {
+#    public static **[] values();
+#    public static ** valueOf(java.lang.String);
+#}
+#
+##表示不混淆任何一个View中的setXxx()和getXxx()方法,
+##因为属性动画需要有相应的setter和getter的方法实现,混淆了就无法工作了。
+#-keep public class * extends android.view.View{
+#    *** get*();
+#    void set*(***);
+#    public <init>(android.content.Context);
+#    public <init>(android.content.Context, android.util.AttributeSet);
+#    public <init>(android.content.Context, android.util.AttributeSet, int);
+#}
+#-keepclasseswithmembers class * {
+#    public <init>(android.content.Context, android.util.AttributeSet);
+#    public <init>(android.content.Context, android.util.AttributeSet, int);
+#}
+#
+##表示不混淆Parcelable实现类中的CREATOR字段,
+##毫无疑问,CREATOR字段是绝对不能改变的,包括大小写都不能变,不然整个Parcelable工作机制都会失败。
+#-keep class * implements android.os.Parcelable {
+#  public static final android.os.Parcelable$Creator *;
+#}
+## 这指定了继承Serizalizable的类的如下成员不被移除混淆
+#-keepclassmembers class * implements java.io.Serializable {
+#    static final long serialVersionUID;
+#    private static final java.io.ObjectStreamField[] serialPersistentFields;
+#    private void writeObject(java.io.ObjectOutputStream);
+#    private void readObject(java.io.ObjectInputStream);
+#    java.lang.Object writeReplace();
+#    java.lang.Object readResolve();
+#}
+## 保留R下面的资源
+#-keep class **.R$* {
+# *;
+#}
+##不混淆资源类下static的
+#-keepclassmembers class **.R$* {
+#    public static <fields>;
+#}
+#
+#
+#
+## 对于带有回调函数的onXXEvent、**On*Listener的,不能被混淆
+#-keepclassmembers class * {
+#    void *(**On*Event);
+#    void *(**On*Listener);
+#}
+#
+## 保留我们自定义控件(继承自View)不被混淆
+#-keep public class * extends android.view.View{
+#    *** get*();
+#    void set*(***);
+#    public <init>(android.content.Context);
+#    public <init>(android.content.Context, android.util.AttributeSet);
+#    public <init>(android.content.Context, android.util.AttributeSet, int);
+#}
+#
+##
+##----------------------------- WebView(项目中没有可以忽略) -----------------------------
+##
+##webView需要进行特殊处理
+#-keepclassmembers class fqcn.of.javascript.interface.for.Webview {
+#   public *;
+#}
+#-keepclassmembers class * extends android.webkit.WebViewClient {
+#    public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap);
+#    public boolean *(android.webkit.WebView, java.lang.String);
+#}
+#-keepclassmembers class * extends android.webkit.WebViewClient {
+#    public void *(android.webkit.WebView, jav.lang.String);
+#}
+##在app中与HTML5的JavaScript的交互进行特殊处理
+##我们需要确保这些js要调用的原生方法不能够被混淆,于是我们需要做如下处理:
+#-keepclassmembers class com.ljd.example.JSInterface {
+#    <methods>;
+#}
+#
+##(可选)避免Log打印输出
+#-assumenosideeffects class android.util.Log {
+#   public static *** v(...);
+#   public static *** d(...);
+#   public static *** i(...);
+#   public static *** w(...);
+# }

+ 1 - 1
ApexDrivers/ratradefiling/src/main/AndroidManifest.xml

@@ -8,7 +8,7 @@
 
     <application
         android:name=".TradeFilingApplication"
-        android:allowBackup="true"
+
         android:icon="@mipmap/ic_launcher"
         android:label="@string/app_name"
         android:roundIcon="@mipmap/ic_launcher_round"

+ 1 - 1
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/about/AboutFragment.java

@@ -78,7 +78,7 @@ public class AboutFragment extends Fragment {
         TextView tv_ver = (TextView) view.findViewById(R.id.tv_ver);
         try {
             tv_ver.setText(getText(R.string.str_ver)+ TradeFilingApplication.get_instance().getPackageManager().getPackageInfo(
-                    "com.usai.apex", 0).versionName);
+                    "com.usai.ratradefiling", 0).versionName);
         } catch (PackageManager.NameNotFoundException e1) {
             // TODO Auto-generated catch block
             e1.printStackTrace();

+ 1 - 1
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/fields/CustomizeFieldsActivity.java

@@ -168,7 +168,7 @@ public class CustomizeFieldsActivity extends Activity implements
 		try
 		{
 			vername = getPackageManager().getPackageInfo(
-					"com.usai.apex", 0).versionName;
+					"com.usai.ratradefiling", 0).versionName;
 			boolean bFirstRun = RunOnce.getBoolean(
 					"FirstRun"+vername+"_fields", true);
 //			if(bFirstRun&&false)

+ 1 - 1
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/login/LoginFragment.java

@@ -96,7 +96,7 @@ public class LoginFragment extends Fragment/* implements OnClickListener */
 		TextView tv_ver = (TextView) view.findViewById(R.id.tv_ver);
 		try {
 			tv_ver.setText(getText(R.string.str_ver)+TradeFilingApplication.get_instance().getPackageManager().getPackageInfo(
-						"com.usai.apex", 0).versionName);
+						"com.usai.ratradefiling", 0).versionName);
 		} catch (NameNotFoundException e1) {
 			// TODO Auto-generated catch block
 			e1.printStackTrace();