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的优化;提高操作的同步性。
更多相关文章
- 反编译apk文件,得到其源代码的方法
- Android(安卓)学习之Camera拍照流程
- Qt On Android(安卓)+ protobuf3的使用
- 安卓集成友盟调用微信登录时的问题
- Android(安卓)SurfaceFlinger 学习之路(七)----创建图形缓冲区Gr
- 在android中通过JNI调用本地方法
- Android点击事件分发机制源码分析1——Activity
- Android(安卓)中文API (38) ―― Spinner
- Android的Service深入分析