让测试知道它可以 运行 一旦应用程序到达特定点 - 可能是 sharedPref
Let test know it can run once app has got to specific point - possibly sharedPref
tl;dr - 找到一种方法让测试知道它可以 运行,只有在我的游戏主菜单加载后
我正在 LibGDX 中编写一个游戏,它实际上并没有使用 Android 代码,我有一个测试 class,我用它来测试各种视觉效果我游戏的各个方面。
我想找到一种方法让测试知道在 运行 测试之前游戏已经加载到主菜单。
我曾尝试在这两个应用程序上共享一个共享首选项,但由于使用 SDK 25 和某些模式被弃用而未能成功。
有人知道吗?我想过使用 sdcard 来保存某种文件,但时不时地(我在模拟器上测试)sdcard 不起作用(那是另一个问题)
首先,我强烈建议在真实设备上进行测试,我个人拥有 20 多台测试设备,除了少数高端型号外,每台设备的价格都低于 20 美元。体验和感觉物有所值,但最重要的是,我相信有些事情模拟器无法像生产模型一样好。
就您而言,我认为您需要某种跨应用程序通信才能开始测试?
您是否尝试过在 1 个应用中创建自己的 SQLite 数据库和内容提供程序,使其成为 public。然后在第一个应用程序中使用第二个应用程序内容解析器和访问数据。
创建一个绑定服务,将两个应用程序绑定到它,现在进程间通信可能而且非常容易,阅读数百万文档中的任何一个,从这里开始
https://developer.android.com/guide/components/bound-services.html#Messenger
https://codexample.org/questions/57868/data-sharing-between-two-applications.c
我设法让双共享 pref 东西与下面的代码一起工作
从应用程序 1 发送数据(对于 ex:Application 1 包名称是 "com.sharedpref1")。
SharedPreferences prefs = getSharedPreferences("demopref",
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("demostring", strShareValue);
editor.commit();
在应用程序 2 中接收数据(从应用程序 1 中的共享首选项中获取数据)。
try {
con = createPackageContext("com.sharedpref1", 0);//first app package name is "com.sharedpref1"
SharedPreferences pref = con.getSharedPreferences(
"demopref", Context.MODE_PRIVATE);
String your_data = pref.getString("demostring", "No Value");
}
catch (NameNotFoundException e) {
Log.e("Not data shared", e.toString());
}
在两个应用程序清单文件中添加相同的共享用户 ID 和标签,
android:sharedUserId="any string"
android:sharedUserLabel="@string/any_string"
两者相同...并且共享用户标签必须来自 string.xml
喜欢这个例子。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.xxxx"
android:versionCode="1"
android:versionName="1.0"
android:sharedUserId="aaa.bbb.ccc"
android:sharedUserLabel="@string/any_string">
我有一个小问题,当我只有一个单词时 sharedUserId 不起作用,显然它需要遵循 packagename 样式格式(我发现的示例有 3 个部分,这首先对我有用时间,所以我没有调查其他任何东西)
tl;dr - 找到一种方法让测试知道它可以 运行,只有在我的游戏主菜单加载后
我正在 LibGDX 中编写一个游戏,它实际上并没有使用 Android 代码,我有一个测试 class,我用它来测试各种视觉效果我游戏的各个方面。
我想找到一种方法让测试知道在 运行 测试之前游戏已经加载到主菜单。
我曾尝试在这两个应用程序上共享一个共享首选项,但由于使用 SDK 25 和某些模式被弃用而未能成功。
有人知道吗?我想过使用 sdcard 来保存某种文件,但时不时地(我在模拟器上测试)sdcard 不起作用(那是另一个问题)
首先,我强烈建议在真实设备上进行测试,我个人拥有 20 多台测试设备,除了少数高端型号外,每台设备的价格都低于 20 美元。体验和感觉物有所值,但最重要的是,我相信有些事情模拟器无法像生产模型一样好。
就您而言,我认为您需要某种跨应用程序通信才能开始测试?
您是否尝试过在 1 个应用中创建自己的 SQLite 数据库和内容提供程序,使其成为 public。然后在第一个应用程序中使用第二个应用程序内容解析器和访问数据。
创建一个绑定服务,将两个应用程序绑定到它,现在进程间通信可能而且非常容易,阅读数百万文档中的任何一个,从这里开始
https://developer.android.com/guide/components/bound-services.html#Messenger
https://codexample.org/questions/57868/data-sharing-between-two-applications.c
我设法让双共享 pref 东西与下面的代码一起工作
从应用程序 1 发送数据(对于 ex:Application 1 包名称是 "com.sharedpref1")。
SharedPreferences prefs = getSharedPreferences("demopref",
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("demostring", strShareValue);
editor.commit();
在应用程序 2 中接收数据(从应用程序 1 中的共享首选项中获取数据)。
try {
con = createPackageContext("com.sharedpref1", 0);//first app package name is "com.sharedpref1"
SharedPreferences pref = con.getSharedPreferences(
"demopref", Context.MODE_PRIVATE);
String your_data = pref.getString("demostring", "No Value");
}
catch (NameNotFoundException e) {
Log.e("Not data shared", e.toString());
}
在两个应用程序清单文件中添加相同的共享用户 ID 和标签,
android:sharedUserId="any string"
android:sharedUserLabel="@string/any_string"
两者相同...并且共享用户标签必须来自 string.xml
喜欢这个例子。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.xxxx"
android:versionCode="1"
android:versionName="1.0"
android:sharedUserId="aaa.bbb.ccc"
android:sharedUserLabel="@string/any_string">
我有一个小问题,当我只有一个单词时 sharedUserId 不起作用,显然它需要遵循 packagename 样式格式(我发现的示例有 3 个部分,这首先对我有用时间,所以我没有调查其他任何东西)