小编Mou*_*usa的帖子

Android 4及更高版本仅支持armeabi-v7a是否安全?

我开发了一个主要使用C++的应用程序,并且.so像往常一样由NDK编译到库中.我们知道必须分别为每个CPU架构构建本机应用程序; 所以,我有不同so的文件armeabiarmeabi-v7a.(我故意冷落x86mips,因为没有多少与这些架构的Android设备被释放.)

但是,大小非常大,每个so文件占用大约90 MB空间,我想减少它.

我知道我可以省略armeabi-v7a,因为向后兼容,但在这种情况下,应用程序将运行非常缓慢.

考虑到我的应用程序仅支持android ICS及以上(minSdkVersion="14"),我可以安全地删除armeabi并假设所有这些新设备都使用armeabi-v7a?或者某些设备仍然可以使用旧的armeabi而不是armeabi-v7a架构?

android arm android-ndk

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

非常简单的Android地理围栏示例

我曾尝试过android开发人员培训.但是,我的程序无效.我只想注册一个简单的地理围栏,如:

mZielGeofence = new SimpleGeofence(
            "2",
            48.69421,
            13.88318,
            10,
            SimpleGeofence.GEOFENCE_EXPIRATION_TIME,
            Geofence.GEOFENCE_TRANSITION_ENTER
);
Run Code Online (Sandbox Code Playgroud)

我不想使用数据库,因为我只想尝试输入一个特定的地理围栏,就像上面的那个.

你们有人找到了一个很好的教程,有详细的文档,或者有一个简单的代码示例吗?我只需要添加1个Geofence并对enter事件做出反应.

提前谢谢了

android android-location android-activity android-geofence

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

对于没有字段的类,equals()的合适实现是什么?

假设我有一个没有字段的类,但有一些方法.例如,一个只实现以下内容的类interface:

public class SomeClass implements SomeInterface
{
    @Override
    public void someMethod(int param) {...}

    @Override
    public int getSomeValue(OtherClass param) {return ...;}
}
Run Code Online (Sandbox Code Playgroud)

现在我想覆盖equals()这个.我总是可以回答true说,"既然物体没有任何状态,它们总是平等的"?

像这样的实现:

@Override
public boolean equals(Object other)
{
    if (null == other || !(other instanceof SomeClass))
        return false;
    return true;
}
Run Code Online (Sandbox Code Playgroud)


编辑:由于有些人问起这背后的意图,我将详细阐述这个问题产生的背景:

这个类是一个事件监听器.我实例化并将其作为异步请求的侦听器传递,以及封装在名为Object的其他一些数据中Config.

换句话说,我有一个名为的类Config,它由SomeClass一些其他数据组成.

public class Config
{
    SomeClass someClass;
    int otherData;
    //...

    @Override
    public boolean equals(Object other) {/*???*/}
}
Run Code Online (Sandbox Code Playgroud)

实际上我想equals为这个Config类实现(因为我想防止重复请求).但是,由于我的Config …

java equals

3
推荐指数
1
解决办法
845
查看次数

Android TextToSpeech addSpeech() 不起作用

我有一部 Android 2.3 的 HD Desire 手机。

TTS 运行良好,它可以朗读我给出的每一条文字。但是,当我使用下面的任何一行来为某些文本设置我自己的声音时,它只是忽略它并合成文本,就像该行没有写一样!

tts.addSpeech("salam", "/sdcard/salam.wav");
tts.addSpeech("shalam", "com.company.appname", R.raw.shalam);
...
tts.speak("salam", TextToSpeech.QUEUE_FLUSH, null);  //<--This isn't playing my voice file.
tts.speak("shalam", TextToSpeech.QUEUE_FLUSH, null);  //<--Neither is this
Run Code Online (Sandbox Code Playgroud)

我确信这两个文件都存在。这是为什么?声音文件有限制吗?例如他们的频率,或者是单声道还是立体声?

我已经检查过文档并没有看到任何相关内容。

android text-to-speech

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

我们可以依靠Gson修改val属性的能力吗?

val根据设计,Kotlin的属性是不可改变的.初始化后,它们应该是固定的且不可更改的.

但是,我偶然发现Gson能够修改这些属性.

考虑这个例子:

//Entity class:
class User {
    val name: String = ""
    val age: Int = 0
}
Run Code Online (Sandbox Code Playgroud)

由于nameage被定义为val并被初始化为空字符串和零,它们必须保持不变并且永远不会改变.

但是,此测试成功:

fun main() {
    val json = "{\"name\":\"Mousa\",\"age\":30}"
    val user = Gson().fromJson<User>(json, User::class.java)
    assert(user.name == "Mousa")
    assert(user.age == 30)
    print("Success")
}
Run Code Online (Sandbox Code Playgroud)

使用此功能可使代码更清晰.因为这些属性是由Gson修改的,并且不能被我们的其余代码修改.否则,我需要为Gson提供一些可变的支持字段,为其余代码提供一些不可变的属性.

我不知道这是"特征" Gson还是"虫子".所以我的问题是:我们可以依赖于此,或者此行为可能会在以后发生变化吗?

immutability gson kotlin

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