做为一个混吃混喝的程序员,从2000开始到至今,就是完成公司的工作,养家糊口。一个偶然的机会,我 开始接触并使用Android native层(JNI以下)。那时的我是两眼一抹黑,都不知道Android为何物。好在有老罗的博客,让我对Android有初步的了解。内心对知识共享也是推崇备至。想着有机会,也和大家共享一些我的体会:
1) Binder:自己写一个C++的binder service,注册到service manager;然后通过Java Application访问它。GitHub上有个TimerService,client和Server都是C++的,我打算把Client改成JAVA的。为了和Android kernel的编译分开,能够直接使用make file编译,当然有如何搭建编译环境。
2) 理解GraphicBuffer。打算以ROOT过的海美迪q5四代为基础,让JAVA 应用程序产生一个Surface,传递给C++的service,service读一个YUV的文件,把数据写入从Surface取出的GraphicBuffer,这样让JAVA应用程序显示出来。
3) 进一步理解Android BufferQueue。从例子二中,我们已经接触过来Surface,其实就是BufferQueue中的producer,这次我们使用screen record来测试从SurfaceFlinger来接GraphicBuffer,然后写入一个文件。screen record来自于Android kernel,不过我们不用期中encoder和openGL部分,而是自己实现一个BufferQueueConsumer。
4) 为Java webview实现手势支持:webview不像TextureView函数,有setTransform函数,可以比较容易的支持手势。这一章代码还没有准备好,估计需要一段时间。
这一系列文件将在为了两月中完成,希望大家监督!
本文将探讨Android Native层的关键技术,包括使用C++编写Binder Service、理解GraphicBuffer及BufferQueue的工作原理,以及为WebView实现手势支持等内容。
3773

被折叠的 条评论
为什么被折叠?



