vnc 项目的几点总结

1.获取Android root权限;

     测试平台三星V210(android2.2) ,瑞芯微RK2818(android2.3),摩托罗拉(android2.2);

      失败:联想A60

2.Android java上层通过JNI调用native c 动态库;

     在Android系统下如何在编译过程中将动态库加入APK工程;OK

     掌握在Android编译模式下加入现成的so库;  ???

    在Eclipse环境下加入libs库;/libs/armeabi/xxxx.so

    掌握NDK环境下编译so库;OK


3. JNI native与java上层之间的通信

该功能主要是为实现在so动态库中出现的错误,将错误通过JNI调用,在Java上层以Toast的形式向用户提示错误信息。以弥补logcat调试信息的不足,毕竟非专业用户并不熟悉使用adb等调试功能。

 1) socket通信。推荐使用!使用方法见另一文。

 2)通过调用java上层函数; 

     通过JNI在C中调用java上层函数时,Android特有元素将会被本地编译器自动跳过。所以,可以采用static全局变量作为变化检测。


4. 后台服务进程的中止;

   restartpackage(android2.1及以下),killbackgroundProcess(android2.2以上支持)。 注意service与服务中进程的联系。

5.自动选择字符输入设备touch device , keyboard device

     a. 查找uinput虚拟输入设备;

     b. 目录/dev/input下输入设备类型的差别(多点触摸、普通单点触摸、键盘输入设备、鼠标设备、GSensor设备)

     c. 对相应的设备注入事件event,从底层控制输入设备操作;

6. 本地库的兼容性问题;

    由于libc版本的不同在android2.2或 android2.3中编译的so库或者执行程序可能无法兼容不同的android版本。

   因此编译so动态库及本地执行程序,最好采用NDK编译。


7.  updateScreen的优化;提高操作的同步性。

你可能感兴趣的:(vnc 项目的几点总结)