小编Fra*_*ank的帖子

Android Studio单元测试:读取数据(输入)文件

在单元测试中,如何在我的(桌面)文件系统上读取json文件中的数据,而无需对路径进行硬编码?

我想从文件中读取测试输入(对于我的解析方法),而不是创建静态字符串.

该文件与我的单元测试代码位于同一位置,但如果需要,我也可以将其放在项目的其他位置.我正在使用Android Studio.

android unit-testing android-studio

90
推荐指数
8
解决办法
4万
查看次数

ActionBar后面的SwipeRefreshLayout

将SwipeRefreshLayout与叠加模式ActionBar结合使用时,加载动画将显示在操作栏后面,使其几乎不可见.

我可以做些什么来在动作栏上显示它吗?

android swiperefreshlayout

35
推荐指数
2
解决办法
1万
查看次数

android gridview行分隔符/分隔符

有没有办法在gridview中的行之间显示(水平)分隔线?

我尝试在每个网格项下面放置一个小的分隔图像,但这不是一个解决方案,因为当一行未完全填充项目时,它不会跨越整行.

有没有办法在每一行之间添加图像?我只能找到改变行之间空间的方法.

android gridview

34
推荐指数
2
解决办法
6万
查看次数

Android Studio上的单元测试:"未模拟"错误

我是Android Studio新手.我使用的是Android Studio 1.2预览版2,gradle 2.2.1和gradle插件1.1.0.

在尝试运行我的单元测试时,我无法解决此错误:

java.lang.RuntimeException: Method getInstrumentation in android.test.InstrumentationTestCase not mocked
Run Code Online (Sandbox Code Playgroud)

这是我的测试类:

public class AppPreferencesTest extends InstrumentationTestCase {

AppPreferences preferences;

@Before
public void setUp() throws Exception {
    preferences = new AppPreferences(getInstrumentation().getTargetContext());
}

...
Run Code Online (Sandbox Code Playgroud)

在我的build.gradle中:

testCompile 'junit:junit:4.12'
Run Code Online (Sandbox Code Playgroud)

我尝试添加这个

testOptions { 
    unitTests.returnDefaultValues = true
}
Run Code Online (Sandbox Code Playgroud)

因为我在http://tools.android.com/tech-docs/unit-testing-support所遵循的步骤中提到过, 但它没有解决它.

我也试过创建一个MockContext:

preferences = new AppPreferences(new MockContext());
Run Code Online (Sandbox Code Playgroud)

但AppPreferences的构造函数比给出错误

public AppPreferences(Context context) {
    preferences = PreferenceManager.getDefaultSharedPreferences(
            context);
}
Run Code Online (Sandbox Code Playgroud)

...

RuntimeException: Method getDefaultSharedPreferences in android.preference.PreferenceManager not mocked.
Run Code Online (Sandbox Code Playgroud)

android unit-testing android-studio

13
推荐指数
2
解决办法
3万
查看次数

ORMLite的createOrUpdate似乎很慢 - 什么是正常速度?

在我的应用程序中调用ORMLite RuntimeExceptionDaocreateOrUpdate(...)方法非常慢.

我有一个非常简单的object(Item),有2个int(一个是generatedId),a String和a double.我用下面的代码测试(大致)更新数据库中的对象所需的时间(100次).日志语句记录:

时间更新1行100次:3069

为什么在只有1行的表中更新对象需要3秒才能更新100次.这是正常的ORMLite速度吗?如果没有,可能是什么问题?

RuntimeExceptionDao<Item, Integer> dao =
    DatabaseManager.getInstance().getHelper().getReadingStateDao();
Item item = new Item();
long start = System.currentTimeMillis();
for (int i = 0; i < 100; i++) {
    item.setViewMode(i);
    dao.createOrUpdate(item);
}
long update = System.currentTimeMillis();
Log.v(TAG, "time to update 1 row 100 times: " + (update - start));
Run Code Online (Sandbox Code Playgroud)

如果我创建100个新行,那么速度会更慢.

注意:我已经在使用了ormlite_config.txt.它记录"Loaded configuration for class ...Item"所以这不是问题.

谢谢.

performance android ormlite

9
推荐指数
1
解决办法
5961
查看次数

Android自动复制Proguard映射Android Studio

有没有办法在每次实时构建完成时将Proguard映射文件自动复制到Android Studio中的(选定)目标APK目录?

android proguard android-studio

8
推荐指数
1
解决办法
872
查看次数

Android WebView:检查网页是否消失了

如果我触摸我的WebView,有没有办法检查我的WebView,如果内容(网页)实际使用/消耗了触摸?

在这种情况下我想做什么:如果用户触摸屏幕侧边的边距:如果下面没有按钮,href等(当网页内容没有使用/消耗触摸时):自己使用它(在WebView中)启动自动滚动.我有权访问/可以更改内容.

android touch webview

7
推荐指数
0
解决办法
393
查看次数

Gradle:排除依赖项的包

是否可以从 Android Gradle 依赖项中排除,使其不会最终出现在 APK 中?

作为:

dependencies {

    compile('com.facebook.android:facebook-android-sdk:4.17.0') {
        exclude package 'com.facebook.share'
    }
}
Run Code Online (Sandbox Code Playgroud)

但随后不同,因为“包”不是有效的命令。

dependencies android gradle

7
推荐指数
1
解决办法
1万
查看次数

Android gradle构建时间呈指数增长

我的Gradle构建时间通常约为12秒,但是在大约10到20次构建之后,它会立即开始增加,指数增加:30秒,50秒,2分钟,5分钟等等,直至内存不足.

健康身材:

:app:compileDev21DebugJavaWithJavac 4.783s
:app:transformClassesWithRealmTransformerForDev21Debug  3.011s
:app:transformClassesWithDexForDev21Debug   2.133s
:app:compileRetrolambdaDev21Debug   1.325s
:app:packageDev21Debug  0.997s
:app:processDev21DebugResources 0.703s
Run Code Online (Sandbox Code Playgroud)

在10到20之后,它开始增加:

:app:transformClassesWithDexForDev21Debug   39.172s
:app:compileDev21DebugJavaWithJavac 34.221s
:app:packageDev21Debug  9.922s
:app:transformClassesWithRealmTransformerForDev21Debug  8.353s
:app:compileRetrolambdaDev21Debug   3.120s
:app:fabricGenerateResourcesDev21Debug  1.376s
Run Code Online (Sandbox Code Playgroud)

如您所见,每项任务都会及时增加.

我使用Android Studio 2.2.2,但自从最近3个版本以来我遇到了问题.Gradle 2.14.1.可能它与我们的项目有关.我使用Mac,我在Windows上的同事在同一个项目中也是如此.如果我停止AS,杀死Java并再次启动AS,这会解决它一段时间.

我还没有使用Jack编译器.

要明确:我的构建时间通常不慢:13秒就可以了.这不是所有"慢速构建时间"问题的重复.只有在10到20次构建之后,构建时间才会随着每次构建呈指数级增长.

更新:使Gradle构建"离线"没有帮助.使用"gradle-3.1-all.zip"(grade-wrapper.properties中的distributionUrl)也没有帮助.

有人有这个问题,知道解决方案吗?

android gradle

5
推荐指数
1
解决办法
129
查看次数

Jetpack Compose 中单独的预览资源文件

是否可以Preview在 jetpack compose 中使用单独的资源,比如说不同的字符串文件或清单?

android preview android-jetpack-compose

5
推荐指数
0
解决办法
354
查看次数