欢迎来到天天文库
浏览记录
ID:32420599
大小:71.94 KB
页数:9页
时间:2019-02-04
《如何用纯c(ndk)开发安卓应用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、如何用纯C++(ndk)开发安卓应用?2014-06-0413:19佚名OpenG字号:T
2、T如何安装安卓的开发环境以及怎么设置ndk的环境变量等在前边的文章已经有了详细的讲解,在这里我就不再说明,如果有不会安装和设置环境的,请先参考安卓环境搭建的内容。AD:WOT2014课程推荐:实战MSA:用开源软件搭建微服务系统51CTO主办WOT全球软件技术峰会直减百元优惠活动抢票进行中!如何安装安卓的开发环境以及怎么设置ndk的环境变量等在前边的文章已经有了详细的讲解,在这里我就不再说明,如果有不会安装和设置环境的,
3、请先参考安卓环境搭建的内容。好,假设以及安装好了ndk,使用纯c++开发安卓程序,下边是详细的步骤与说明:1.编写入口函数android_main为入口函数,和C++中的main函数是一样的。这里创建CELLAndroidApp的对象,直接调用main函数。1.void android_main(struct android_app* state) 2.{ 3. CELLAndroidApp app(state); 4. 5. app.main(0,0); 6.} 说明:其中的 CELL
4、AndroidApp是我们设计的一个图形绘制类,稍后将对其做详细说明2.绘制类的实现说明2.1类的成员说明1.protected: 2. EGLConfig _config; 3. EGLSurface _surface; 4. EGLContext _context; 5. EGLDisplay _display; 6. android_app* _app; 7. int _width; 8
5、. int _height; 部分参数说明:_surface:用于绘制图形,相当于windows绘图中的位图_context:可以看做是opengl对象_display:用于绘图的设备上下文,类似于windows绘图中的dc2.2构造函数说明1.CELLAndroidApp(android_app* app):_app(app) 2. { 3. _surface = 0; 4. _context = 0; 5.
6、 _display = 0; 6. _width = 64; 7. _height = 48; 8. app->userData = this; //用户数据 9. app->onAppCmd = handle_cmd; //窗口的创建销毁等 10. app->onInputEvent = handle_input; //回调函数
7、 11. } 值得注意的是,这里的app中的userData,传入用户数据,这里直接传入this,onAppCmd传入的handle_cmd回调函数,onInputEvent传入的事handle_input回调函数2.3类中函数main()说明1.virtual void main(int argc,char** argv) 2. { 3. int ident; 4. int events; 5. android_poll_source*
8、 source; 6. 7. while (true) 8. { 9. while ((ident = ALooper_pollAll(0, NULL, &events, (void**)&source)) >= 0) 10. { 11. if (source != NULL) 12. source->process(_app, source); //有触
9、摸事件,调用input函数,相当于dispatchmessage 13. 14. if (_app->destroyRequested != 0) 15. return; 16. } 17. render(); 18. } 19. } 其中的android
此文档下载收益归作者所有