Android L版本上user版本工程模式中gsensor校准失败
0赞[DESCRIPTION]
工程模式中gsensor的校准需要用到em_svr这个service,但是因为build选项的原因,在user编译时,这段code没有被build,导致user版本工程模式中gsensor无法校准。
em_svr对应的android.mk文件路径:alps\vendor\mediatek\proprietary\packages\apps\EngineerMode\jni\server_em\Android.mk
ifeq ($(mtk_GMO_RAM_OPTIMIZE), yes)
LOCAL_MODULE_TAGS := eng
else
LOCAL_MODULE_TAGS := optional
endif
LOCAL_MODULE := em_svr
LOCAL_PRELINK_MODULE := false
include $(BUILD_EXECUTABLE)
上面的code可以看到这个build选项受宏:MTK_GMO_RAM_OPTIMIZE 控制;此宏是在文
件:alps\device\mediatek\$(project)\ProjectConfig.mk 中设定的。
MTK_GMO_RAM_OPTIMIZE = yes
若客户这个宏设定为yes,则em_svr在user编译时就会编译不到,工程模式中
gsensor无法校准。
[SOLUTION]
(1)在文件alps\device\mediatek\$(project)\ProjectConfig.mk 中设定
MTK_GMO_RAM_OPTIMIZE = no
MTK_GMO_RAM_OPTIMIZE = no
(2)若客户因为某些原因,必须设定 MTK_GMO_RAM_OPTIMIZE = yes ,则可以通过
下面的方法修改Android.mk文件来解决:
# ifeq ($(MTK_GMO_RAM_OPTIMIZE), yes)
# LOCAL_MODULE_TAGS := eng
# else
LOCAL_MODULE_TAGS := optional
# endif
LOCAL_MODULE := em_svr
LOCAL_PRELINK_MODULE := false
include $(BUILD_EXECUTABLE)
备注:
文档中的$(project) 表示客户的project name。
来源:一牛网论坛