让测试知道它可以运行一旦应用程序达到特定点 - 可能是sharedPref

时间:2017-08-08 11:49:01

标签: android libgdx sharedpreferences android-testing

tl; dr - 只有在我的游戏主菜单加载后才能找到让测试知道它可以运行的方法

我正在LibGDX中编写游戏,它并没有真正使用Android代码,而且我有一个测试类,我用来测试游戏的各种视觉方面。

我希望找到一种让测试知道游戏在运行测试之前已加载到主菜单的方法。

我曾尝试在这两个应用上共享一个共享首选项,但由于使用了SDK 25并且某些模式被弃用,我们无法管理。

有没有人有任何想法?我曾想过使用SD卡来保存某种文件,但是时不时(我在模拟器上进行测试)sdcard不起作用(这是另一个问题)

2 个答案:

答案 0 :(得分:1)

首先,我强烈建议在真实设备上进行测试,我个人拥有20多个测试设备,除了一些高端型号外,它们的价格都低于20美元。经验和感觉是值得的,但最重要的是,我相信模拟器可以做的事情和生产模型一样。

在您的情况下,我认为您需要某种跨应用程序通信才能开始测试?

  1. 您是否尝试在1个应用中创建自己的SQLite数据库和contentprovider,并将其公开。然后在第一个应用程序中拥有第二个app内容解析器并访问数据。

  2. 创建一个有界服务,将两个应用程序绑定到它,现在进程间通信可能非常简单,阅读数百万文档,从这里开始

  3. https://developer.android.com/guide/components/bound-services.html#Messenger

答案 1 :(得分:1)

https://codexample.org/questions/57868/data-sharing-between-two-applications.c

我设法使用以下代码

获取双共享首选项

从应用程序1发送数据(例如:应用程序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无法正常工作,显然它需要遵循一个包名样式格式(我找到的例子有3个部分,这对我来说第一次,所以我没有调查其他任何事情)