坑人的Android(3)

这个不算一个新的话题。关于Android程序完全退出,有以下两种方式

  1. 调用System.exit(0)退出
  2. 调用android.os.Process.killProcess(android.os.Process.myPid()) 退出

其实,无论哪一种,都可以退出,但如果将其放到MainActivity的Ui线程中,程序退出后自动重启了。最后在退出之前调用了MainActivity的finish()函数才解决

webview问题调查

这算是我最郁闷的一次调查了。刚开始是为了html5游戏能快速的兼容android,于是,便调 查在webview的表现等等,结果发现点击之类的在webview似乎非常的不灵敏,虽然我是通过 页面元素模拟按键事件的,但还是觉得无法忍受。

我起始以为是程序运行的速度太快,而模拟的按键消息发送的太慢,于是,调查各种方式, 以便解决按键的延迟问题。

等等一系列调查下来,我注意到了webview中的速度比浏览器中的速度慢很多很多,于是, 便推翻了之前的结论,转移到webview的执行效率上来了。

硬件加速,开启,还是相同的慢(我用的是nexus 5),看到网上说的关于webview的js执行 速度慢,考虑jit?,浏览android源代码中关于Browser中的代码,相关内容几乎采用相同的 机制,但还是没有任何效果。浏览android的webview的相关源代码,还是没有找到问题的原 因。

首先,我知道的事情是,硬件加速开启了,但在webview中的速度就是比自带的浏览器速度 慢,如果没有开启的话,webgl相关几乎就会罢工的。

其次,浏览器中自带的支持很多声音的,而webview却不支持,这比较怪,浏览android源代 码中相关的chrome代码,也没有发现有这方面的限制。

最后,在在线调试javascript代码的时候,我注意到浏览器用的并不是Browser.apk,而是 Chrome.apk,也就是说我从一开始便走错了路。没想到都已经是4.4.2了,竟然这两个还是 分开的,在我第一次关注这个的时候,这两个就是分开的,没想到还是分开的。

知道了问题的所在,剩余的事情就理所当然了。

这个坑爹的货啊,白白浪费了我将近一周的时间。

JNI函数需要注意的地方

给自己敲个钟,防止每次都犯相同的错误

对于含有下划线的函数,比如在java文件中这样写:

       package com.rix.myApp;
       public class myApp
       {
       public native void rix_init();
       }
       

在jdk 1.7中对应查找的函数为:

       JNIEXPORT void JNICALL Java_com_rix_myApp_myApp_rix_1init
  (JNIEnv *, jobject);
       

记得在jdk 1.6中不会存在这个问题,所以,最好的办法是通过javah
去获取函数,生成对应的.h文件

       javah -classpath bin/classes:android-sdk-windows/platforms/android-7/android.jar:Java/jdk1.7.0_25/lib -d jni com.rix.myApp.myApp
       

但如果函数中不包含下划线则不会存在这样的问题

SCH-I879 CM Recovery

因服务器更改,以下附件内容全部丢失

这个Recovery模式是东凑西凑的,分辨率不对的,但基本不影响使用。

介绍下内容:

1. 这个不是官方的recovery

2. 使用这个recovery,可以从外置SD卡安装zip应用,而不用管什么鉴

3. 这个recovery使用的内核版本应该不是最新的,我已经很久没有升
级版本了。不过应该没什么影响

4. 修复权限什么的CM Recovery的多种功能,Root是否自带不确定,可
能有

5. 缺陷: 我在弄fstab文件的时候写错了一个地方,造成只能从外置
SD卡中安装,默认的sdcard安装即是外置的SD卡,extsdcard没办法使用。

文件位置:SCH_I879_recovery.tar.md5

相关截图: