我发现很难获得有关哪些Android手机有陀螺仪的整合信息,或者是否有Android手机都有这种传感器.我读到了至少有一个6轴加速度计的一些(特别是三星)手机型号,但我也读到这与真正的陀螺仪不同.
所以我的问题是:
Sensor.TYPE_GYROSCOPE自API 3以来可用的Android API )任何参考如链接,规格等都非常感谢,当然会得到回报.:-)
谢谢你的帮助!
我必须在Android中构建更复杂的自定义视图.最终布局应如下所示:
<RelativeLayout>
<SomeView />
<SomeOtherView />
<!-- maybe more layout stuff here later -->
<LinearLayout>
<!-- the children -->
</LinearLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
但是,在XML文件中我只想定义它(不定义SomeView,SomeOtherView等):
<MyCustomView>
<!-- the children -->
</MyCustomView>
Run Code Online (Sandbox Code Playgroud)
这在Android中是否可行,如果是的话:最干净的方法是什么?我想到的可能的解决方案是"覆盖addView()方法"和"删除所有视图并在以后再次添加它们",但我不确定要走哪条路......
非常感谢您的帮助!:)
我在我的设备上使用Android Custom ROM,也使用自定义boot.img(自定义内核+ cmdline + ramdisk).我现在希望能够在内核崩溃后立即查看内核日志,但遗憾的是我无法使用串行控制台.
好消息:Android的Linux内核中似乎有一些源/模块正是为此目的编写的.例如,在我的内核的.config文件中激活了以下行:
CONFIG_ANDROID_RAM_CONSOLE=y
CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
CONFIG_APANIC=y
CONFIG_APANIC_PLABEL="oem_log"
Run Code Online (Sandbox Code Playgroud)
我的问题是:在我强制内核恐慌以便测试它之后,即通过加载一个简单的恐慌内核模块insmod panic.ko,似乎没有日志被写入名为oem_log的MTD (存在于我的设备上).其次,RAM在重启后也不包含日志,因为它似乎被清除 - 或者也没有写入日志.
那么如何在恐慌之后获取内核日志呢?如果有一种方法可以测试正在运行的系统上的APANIC,那将会很有帮助.也许通过使用内核调试系统?截至目前,我对此很陌生.
在此先感谢您的帮助!
在我们的应用程序中,我们需要一个不确定的进度条,如下所示:
我们可以通过在ProgressBar上设置负边距来实现这一点,如下所示:
<ProgressBar
android:id="@+id/progressbar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="true"
android:marginTop="-7dp"
android:visibility="@{loading ? View.VISIBLE : View.GONE}" />
Run Code Online (Sandbox Code Playgroud)
但是因为ConstraintLayout不支持负边距,所以它看起来像这样:
好吧,负利润是一个黑客.让我们换一个不同的黑客,好吗?让我们来介绍我们的自定义视图CustomProgressBar,它扩展ProgressBar并覆盖其onDraw方法,如下所示:
@Override
protected void onDraw(Canvas canvas) {
int marginTop = dpToPx(7);
canvas.translate(0, -marginTop);
super.onDraw(canvas);
}
Run Code Online (Sandbox Code Playgroud)
但所有这些都闻起来像坏代码.必须有一个更好的解决方案!你会推荐什么?
我正在开发一个项目,以前的开发人员添加了许多this.x代码,在我看来,这些代码使代码更长,因此可读性更低.它通过一些Eclipse保存操作放在整个项目中.
我正在寻找的是IntelliJ重构方法,我可以重构整个项目的所有自引用,以便:
this.something = "foo";
Run Code Online (Sandbox Code Playgroud)
成为这个:
something = "foo";
Run Code Online (Sandbox Code Playgroud)
有这样的东西(我正在使用Android Studio 1.2),还是我必须运行正则表达式替换并确保没有任何破坏?
我最近向Android Market(此应用程序)上传了一个新应用程序.我还上传了高分辨率应用程序图标,功能图形和促销图形.
然而,促销图形获得了非常难看的JPEG压缩.这是我上传的图片:

Android Market就是这样做的:

有趣的是,Android Market似乎将其转换为JPEG图像,但保留了.png文件扩展名.这是一个错误吗?
这是我试图解决的问题:
有人有同样的问题吗?你做了什么修复它?
非常感谢您的帮助!
如何轻松地在Android Studio(IntelliJ)中为我的Android项目添加单元测试?
更确切地说:我想添加一个包含测试代码的文件夹(JUnit 4),并使用常规安装的JDK(不在Android模拟器中)从那里执行单元测试.到目前为止,我将文件夹'test/java /'添加到我的模块中,并将'test'添加为源集,将junit添加为测试依赖项:
sourceSets {
instrumentTest.setRoot('src/test')
}
dependencies {
instrumentTestCompile 'junit:junit:4.+'
// ...
}
Run Code Online (Sandbox Code Playgroud)
当我现在在test/java文件夹中选择Run'All Tests'时,它会给我一个UnsupportedOperationException.
我错过了什么?你如何运行Android项目的单元测试?
对于插件的建议的加分点,其工作方式类似于Eclipse中的"Infinitest" - 我可以简单地保存一个类,并自动执行单元测试.:-)
PS:我不想使用https://github.com/JakeWharton/gradle-android-test-plugin,因为该插件似乎已被弃用.
在Android应用程序中,我需要向RelativeLayout添加一个符合以下规则的视图:
它看起来应该是这样的(正方形应该垂直居中):
+-------------+
| activity |
| |
|+-----------+|
|| ||
|| square ||
|| ||
|| ||
|+-----------+|
| |
| |
+-------------+
Run Code Online (Sandbox Code Playgroud)
最后我想要一个显示二次图像的ImageView.目前我通过将视图的宽度和高度都设置为FILL_PARENT来实现此目的,并让ImageView正确绘制图像(使用scaleType = centerInside).
但是:现在我希望有一个与方形视图的顶行对齐的附加视图,这就是我的方法失败的地方.如果我现在将视图的宽度设置为FILL_PARENT,并将其高度设置为WRAP_CONTENT,则图像将不再适合整个宽度.
你有解决这个问题的方法吗?如果可以通过编写XML来完成,那将是更好的选择.
提前致谢!
在我的一个Android项目中(但不一定与Android绑定)我有很多方法调用,除了炸掉代码之外什么都不做,可以自动删除.例子:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return super.onCreateOptionsMenu(menu);
}
@Override
public void onDestroy() {
super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)
我找不到任何帮助我自动删除这些表达式的检查,所以我尝试了结构搜索.到目前为止我的尝试:我复制了"注释方法"的模板并进行了2次小改动.
模板代码:
class $Class$ {
@$Annotation$( )
$MethodType$ $MethodName$($ParameterType$ $ParameterName$) {
$Statement$;
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,这么好 - 它只是在体内找到一条线的方法.但是现在我想明确地搜索调用super方法的精确语句(有点像$ MethodName $的后引用),但它也返回超值(当不是void时).有任何想法吗?
我相信这将是一个非常有用的检查,可以集成到主IntelliJ代码库中.:-)
在我们的 Android 应用程序中,我们希望将 Compose 引入一个简单的调试屏幕,我们可以在其中启用/禁用 SharedPreferences。我正在尝试使用 Compose 界面来运行它MutableState- 但它并不像我想象的那样工作。我的计划是暂时用于MutableState在 SharedPreferences 中设置布尔值(在稍后迁移到 DataStore 之前)。
这是我的想法:
private class MyOwnState(startWith: Boolean) : MutableState<Boolean> {
override var value: Boolean = startWith
override fun component1(): Boolean = value
override fun component2(): (Boolean) -> Unit = { value = it }
}
// then, in composable:
var value by remember { MyOwnState(false) }
Run Code Online (Sandbox Code Playgroud)
当然,在现实生活中我会覆盖value- 但这个例子就足够了,因为它不起作用。状态更改不会传播,UI 也不会更新。
为了说明这一点,我将代码片段by remember { mutableStateOf(false) }和by remember { MyOwnState(false) }. 第一个有效(开关已更新),第二个无效。 …