激活用于使用ionic制作的Android应用程序的strictmode

时间:2016-06-15 22:02:27

标签: android cordova ionic-framework

我正在使用ionic和cordova为Android和ios构建移动应用程序。 我现在正在为QA工作,我想为应用程序的android模拟器使用strictmode,但我似乎无法找到任何关于我如何使用离子打开它的文档。

甚至可能吗?

1 个答案:

答案 0 :(得分:0)

框架:Cordova v。8.0.0

4/2019:在撰写本文时,Cordova的指令或可用的插件均未启用Android StrictMode测试(要求PS-P2和PM-1)。此后,为了启用StrictMode,我选择手动修改应用程序MainActivity.java。

(1)MainActivity.java

  • 这是您的默认主要Android活动,用作启动android应用的入口点。 Cordova会根据您应用的默认清单XML中的定义自动生成此java文件,该XML也是由Cordova自动生成的。默认情况下,不应修改此文件,因为Cordova可能会根据需要删除/重新生成该文件。但是在这里,我们必须!

  • 为您的应用找到此文件:[app-cordova-project-dir] \ platforms \ android \ app \ src \ main \ java [app-package-dir] \ MainActivity.java

    < / li>
  • 在MainActivity.java中,找到其主要方法:onCreate(),并添加以下代码以启用StrictMode。这必须包括所有必要的导入语句。不要跳过日志语句,以便您可以监视并证明您的更改为ON。有关Android文档的详细信息,请参见下面的REF。

     import android.os.StrictMode;
     import android.util.Log;
    
     public class MainActivity extends CordovaActivity {
         @Override
         public void onCreate(Bundle savedInstanceState) {
    
             //CODE-ADDED - Android StrictMode enabled
             Log.d("[MYAPPNAME]", "[MYAPPNAME].MainAtivity.onCreate() - STARTING. My StrictMode code is now ENABLED!");
             StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
                 .detectAll()
                 .detectDiskReads()
                 .detectDiskWrites()
                 .penaltyLog()
                 .build());
    
             StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                .detectLeakedSqlLiteObjects()
                .detectLeakedClosableObjects()
                .penaltyLog()
                .build());
             //CODE-ADDED - End
    
             //The rest is Cordova default auto-generated syntax, leave it ALONE!
             super.onCreate(savedInstanceState);
             ... blableblo
         }
    }
    
  • 将整个MainActivity代码复制粘贴到临时文本文件(记事本等)中,以防万一Cordova删除/重新生成此文件,您需要参考备份代码,然后再次复制粘贴。 / p>

(2)R.java

  • 这是Cordova通过其生成脚本自动生成的文件。默认情况下,不应修改此文件,因为Cordova可能会根据需要删除/重新生成该文件。但是在这里,我们必须手动将其删除。如果您没有删除此R文件,那么您在MainActivity上所做的任何更改都将被Cordova构建脚本忽略。

  • 为您的应用找到此文件:[app-cordova-project-dir] \ platforms \ android \ app \ build \ Generated \ source \ r \ debug [app-package-dir] \ R.java < / p>

  • 删除该文件!

(3)执行您的Cordova构建脚本以重新编译您的应用APK,并确保没有编译错误。这也应该重新生成R.java文件。

(4)将应用程序部署/安装到目标仿真器/设备,并像对待任何StrictMode违规一样对应用程序进行测试,并对应用程序代码进行适当的修复。

(5)一旦成功完成,您就必须从MainActivity.java文件中删除 StrictMode代码。不要让您的产品启用StrictMode。

REF: Android StrictMode:https://developer.android.com/reference/android/os/StrictMode.html