我有一个Android应用程序项目,我想在其中添加自动化测试.为此,我想在Android Studio中使用Cucumber for java,并将这些测试直接执行到我的IDE中(使用Run/Debug配置).
我使用Android Studio 0.8.9在Windows 7 sp1 64位上.我添加了插件Gherkin版本134.1007和Cucumber for Java版本134.1007.我为Cucumber使用以下库:
这是我的项目结构:
TruckCalibrator/
.idea/
app/
build/
libs/
[libraries listed above in .jar format]
src/
main/
java/
com/
novomnetworks/
formeval/
truckcalibrator/
MainActivity.java
res/
AndroidManifest.xml
test/
assets/
features/
app_start.feature
java/
com/
novomnetworks/
formeval/
truckcalibrator/
test/
CucumberTest.java
build.gradle
build/
gradle/
Run Code Online (Sandbox Code Playgroud)
这是我的gradle文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 20
buildToolsVersion '20.0.0'
defaultConfig {
applicationId "com.novomnetworks.formeval.truckcalibrator"
minSdkVersion 16
targetSdkVersion 20
versionCode …Run Code Online (Sandbox Code Playgroud) 由于目前没有其他iOS设备,因此我正在iOS 7.1的iPad第三代上进行测试。
第一次运行我的应用程序时,它将开始监视多个区域。状态栏和“位置服务”设置页面上显示了概述的位置服务图标(我的应用程序是列表中唯一带有概述图标的应用程序)。当我终止我的应用程序时,该图标仍然在两个地方都显示,因为我还没有停止监视区域。在那之前,一切都很好。
我的问题是当我第二次运行我的应用程序时,我停止监视所有受监视的区域,但是状态栏和“位置服务设置”页面上的“位置服务概述”图标没有消失...
这是我在第一次运行时调用的代码:
- (void) getLocationManagerInstance {
if (!self.locationManager) {
self.locationManager = [CLLocationManager new];
}
self.locationManager.delegate = self;
}
- (void) startLocationGathering {
if(self.shouldUpdateGPSLocations) {
[self.locationManager startMonitoringSignificantLocationChanges];
}
}
- (void) startMonitoringBeaconRegions {
if(self.rootRegion) {
[self.locationManager startMonitoringForRegion:self.rootRegion];
}
if (self.beaconRegions && self.beaconRegions.count < 20) {
[self.beaconRegions enumerateObjectsUsingBlock:^(CLBeaconRegion* region, NSUInteger idx, BOOL *stop) {
[self.locationManager startMonitoringForRegion:region];
}];
}
}
- (void) startMonitoringCircularRegions {
if (self.gpsRegions && self.gpsRegions.count) {
[self.gpsRegions enumerateObjectsUsingBlock:^(CLCircularRegion* region, NSUInteger idx, BOOL *stop) {
[self.locationManager startMonitoringForRegion:region];
}]; …Run Code Online (Sandbox Code Playgroud) 我正在开发一个应用程序,它有一个页面,其中必须有一个标题,然后是一个 viewpager 中的多个回收站视图。但是,我不知道如何在向下滚动时“隐藏”标题。
以下布局不起作用:
- RecyclerView
- Header
- SlidingTabLayout
- ViewPager
- RecyclerView
Run Code Online (Sandbox Code Playgroud)
因为一个垂直可滚动视图不能放在另一个垂直可滚动视图中。但是可以以另一种方式创建这种类型的布局,因为 twitter 做到了:
那么如何实现创建这种类型的布局呢?
理论解决建议
如果我们有这样的布局:
- LinearLayout
- Header
- SlidingTabLayout
- ViewPager
- RecyclerView
Run Code Online (Sandbox Code Playgroud)
当 RecyclerView 滚动时,我们会手动向上移动每个元素,这样 Header 就会逐渐“隐藏”而 ViewPager 会更高,它可以工作吗?
Button当我的一些事件被触发时,我需要能够改变Libgdx的外观.
这是我的按钮的声明:
Button googleButton = new Button(skin.getDrawable("google_sign_in"));
以下是我尝试过的事情:
googleButton.setBackground(skin.getDrawable("google_sign_out"));
googleButton.invalidate();
googleButton.setChecked(true);
googleButton.invalidate();
googleButton.getStyle().up = skin.getDrawable("google_sign_out");
googleButton.invalidate();
Run Code Online (Sandbox Code Playgroud)
我做了很多搜索,但我找不到答案.有人能告诉我这样做的正确方法吗?
我一直在尝试使用Cucumber和Android Studio来测试我的Android应用程序,但我一直在安装插件.
我正在关注jetbrains webhelp上的程序:https://www.jetbrains.com/idea/webhelp/enabling-cucumber-support-in-project.html 它说明:
条件
注意
确保启用了Cucumber for Java和/或Cucumber for Groovy捆绑插件.插件的选择取决于要生成的步骤定义的类型.
目前,我正在使用基于IntelliJ build 135.1404660的Android Studio Beta 0.8.9.我找到Cucumber for Java插件的唯一地方是JetBrains Plugins Repository(从浏览器访问,而不是通过Android Studio,因为它没有在那里列出).这是链接:http://plugins.jetbrains.com/plugin/7212?pr = androidstudio
最新版本的插件(发布于2014-10-15 17:30:53,适用于IntelliJ build 139.69)与Android Studio目前使用的IntelliJ版本不兼容,因此我安装了以前的版本(发布于2014-02- 12 15:22:49对于IntelliJ build 134.1007)Install plugin from disk通过PluginsAndroid Studio设置中的页面.不幸的是,它弹出以下警告:
Java的Plugin Cucumber依赖于未知的插件黄瓜
什么是黄瓜插件?或者还有另一个地方我可以获得Cucumber for Java插件的工作版本吗?
我正在使用keras-rl通过D-DQN算法训练我的网络。我正在GPU上运行我的训练,该model.fit_generator()函数具有在反向执行时将数据发送到GPU 的功能。我怀疑与GPU处理数据的速度相比,数据的生成速度太慢。
在数据生成中,按照D-DQN算法的指示,我必须首先使用模型预测Q值,然后将这些值用于反向传播。如果使用GPU来运行这些预测,则意味着它们正在破坏我的数据流(我希望backprops尽可能频繁地运行)。
有什么方法可以指定在哪个设备上运行特定操作?以某种方式,我可以在CPU上运行预测,而在GPU上运行backprops。