我有混淆的问题.为了更好的想象力:
JAVA CODE
class JniTest...
public void test()
{
//some code
}
public void runJniCode()
{
//here I call native code
}
Run Code Online (Sandbox Code Playgroud)
本地代码
JNIEXPORT void JNICALL
Java_path_to_class_test(JNIEnv* env, jobject obj)
{
//here I call test method from Java
}
Run Code Online (Sandbox Code Playgroud)
一切正常,直到我想发布一个混淆版本.此类中的Java类(JniTest例如)和方法test的名称由proguard重命名为"a"和"a()"(这可能并不总是相同),但在本机代码中,方法和类的原始名称保持,因为它被硬编码为字符串,如:
jmethodID mid = env->GetMethodID(cls, "test", "someSignature");
Run Code Online (Sandbox Code Playgroud)
...有没有办法动态设置方法名称?
我们在最新的Android Android 4.2.2上遇到呼叫广播的问题.
我们正在开发应用程序,它应该静音一些联系人.它在旧系统上运行良好,但在OS 4.2.2上,设备响铃约1-2秒,直到我们能够将其静音.
仅当设备处于睡眠模式(屏幕关闭)时才会发生这种情况.这个系统的广播是否以某种方式延迟?有没有人遇到类似的问题呢?谢谢你的回复.
编辑:经过一些实验(在Nexus 4上),我们发现了这一点:当我们关闭Wi-Fi时,问题就会消失,因此当从睡眠中再次开启时,Wi-Fi可能会使用太多的CPU时间(这是唯一的假设).而其他人认为我们发现:它发生了4次尝试中的3次.