我正在使用ionic和cordova为Android和ios构建移动应用程序。 我现在正在为QA工作,我想为应用程序的android模拟器使用strictmode,但我似乎无法找到任何关于我如何使用离子打开它的文档。
甚至可能吗?
答案 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