Android中的EGL/GLES库不是在运行时直接链接的,而是在第一次使用时根据配置选择性载入的。更具体的,libEGL.so文件包含了一个“载入器”,它会尝试载入硬件图形库或是软件图形库(libagl)。载入器的源代码位于:frameworks/base/openl/libs/EGL/Loader.cpp.
上面的C++文件会进行打开这个cfg文件。
我们的MTK 的cfg档案存放的路径是在:mediatek/config/{project}/这个路径下面:
内容如下:
0 0 android
0 1 mali
当时调试的时候,将memory、backlight、lcm都设置好后,DL 进去后,发现一直在处于在show logo的状态。我用adb shell进去,也可以进去android,可以确认kernel、android都已经完全起来了,只是launcher一直启动 不了。
这个问题一直折腾了好几天,问MTK 是图形库的原因,上面的mali是3D的图形库,目前还没有使用,所以一直卡在那里。
第二个数字如果为1代表硬件库,0代表软件图形库。如果有硬件图形库,则必须放在软件图形库对应行前。
第三个域是共享库后缀,库的全称为libEGL_
例如,我们可以在system/lib/egl/libGLES_android.so这个库文件。