Android显示模块如何使用软件渲染(非硬件加速)
2017-01-16 17:47
344 查看
自从Android系统引入了黄油计划以后,Android显示模块默认使用的是硬件加速渲染。硬件加速渲染的好处是图像刷新速度快,UI界面切换比较流畅。但是这种方式需要GPU的支持,因此需要硬件IC和内核显示子系统同时配合。
假如某款产品,不需要大屏、大分辨率显示,只需要Android系统的环境,那么这个时候完全没有必要使用GPU。既可以节省硬件成本,也可以减小产品开发难度,可以更灵活使用内核。
下面介绍下如何使用渲染渲染:
1. 修改~/framework/native/opengl/libs/egl/Loader.cpp,将if (!strcmp(e->d_name, "libGLES_android.so"))括号里面的continue注释掉,然后重新编译替换libEGL.so、libGLESv1_CM.so、libGLESv2.so;
2. hwcomposer和gralloc这两个库使用Android原生自带的源码进行编译生成,即使用gralloc.default.so和hwcomposer.default.so;
3. 修改~/framework/base/core/res/res/value/config.mk,将config_avoidGfxAccel由false改为true,然后重新编译替换framework-res.apk;
4. 修改~/framework/base/core/java/android/view/HardwareRenderer.java,将sRendererDisabled和sSystemRendererDisabled由false改为true,然后重新编译替换framework.jar和framework2.jar;
5. 上述步骤修改完成后,重启系统,下次开机就会使用软件渲染图形图像。
假如某款产品,不需要大屏、大分辨率显示,只需要Android系统的环境,那么这个时候完全没有必要使用GPU。既可以节省硬件成本,也可以减小产品开发难度,可以更灵活使用内核。
下面介绍下如何使用渲染渲染:
1. 修改~/framework/native/opengl/libs/egl/Loader.cpp,将if (!strcmp(e->d_name, "libGLES_android.so"))括号里面的continue注释掉,然后重新编译替换libEGL.so、libGLESv1_CM.so、libGLESv2.so;
2. hwcomposer和gralloc这两个库使用Android原生自带的源码进行编译生成,即使用gralloc.default.so和hwcomposer.default.so;
3. 修改~/framework/base/core/res/res/value/config.mk,将config_avoidGfxAccel由false改为true,然后重新编译替换framework-res.apk;
4. 修改~/framework/base/core/java/android/view/HardwareRenderer.java,将sRendererDisabled和sSystemRendererDisabled由false改为true,然后重新编译替换framework.jar和framework2.jar;
5. 上述步骤修改完成后,重启系统,下次开机就会使用软件渲染图形图像。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件