我知道要从Javascript到Java进行交互,您必须使用webview中的addjavascriptInterface方法注入Java对象.
这是我面临的问题.
我使用addJavascriptInterface方法在我的JS中注册一个java对象.
我在webview中使用了几个JS webview.loadURL("javascript:XXX");
当我完成注入JS时,我发送了一个JS事件.
问题是如果在第1步之后立即执行以下Javascript:
mWebView.loadUrl("javascript:if(window.myobject) console.log('myobject found---------'); else {console.log('myobject not found----');}");
Run Code Online (Sandbox Code Playgroud)
我在控制台的日志中找到"myobject not found".
我想知道如果有一段时间我可以访问我的对象,如果有,我怎么知道我应该等多少时间来调用我的对象?
当我想在我的应用程序中模拟内存不足崩溃时就是这种情况。我有很多来自 Crashlytics 的崩溃,这表明最终用户遇到了 OOM 崩溃,而我无法使用我的设备(三星 S4)重现它们。我只是发生了崩溃,没有其他来自崩溃的痕迹。
我想知道是否有人有办法重现它们以进行测试(最好不进行任何代码更改)。
我看到了这个:测试 Android 的内存不足情况,但还没有机会运行它。
任何帮助,将不胜感激。
我有一段代码接受Context并将此上下文传递给私有方法.private方法调用getAssets().open()来读取我的app的assets文件夹中的文件.
public void methodA(Context ctx) throws IOException{
// do some stuff here...
Object data[] = getFileContents(ctx);
// use the data[] returned here...
}
private Object[] getFileContents(Context ctx) throws IOException{
Object[] data;
BufferedInputStream is = new BufferedInputStream(context.getAssets().open("test.txt"));
// parse file and create array of Objects[]
return data[];
}
Run Code Online (Sandbox Code Playgroud)
我正在编写单元测试以使用Mockito测试方法A(),以便我可以测试传递垃圾数据或在我的测试用例中抛出异常.
问题是我无法在android中模拟AssetManager类(它是Final).
我尝试使用InstrumentationTestCase来注入实际和测试上下文,但这仅适用于少数场景.如何控制BufferedInputStream以便我可以提供任何我想要的输入(使用模拟或其他方式)?
我们在Google Play商店中有一个Android应用.该应用程序的Crashes&ANR部分仅列出了少数顶级崩溃,因为我们的Crashlytics控制台列出了一组完全不同的崩溃 - 我的意思是Crashlytics中只有少数顶级崩溃与Playstore中的崩溃相同.其中一个原因可能是我们的应用程序也通过私有企业存储分发给我们客户的设置.
1. Do these crashes also get shown up in Google Play Dev Console ?
2. Also if I can get all the crashes in Play Dev Console as I see in Crashlytics. ?
Run Code Online (Sandbox Code Playgroud) android ×4
crashlytics ×1
google-play ×1
java ×1
javascript ×1
mockito ×1
unit-testing ×1
webview ×1