【发布时间】:2013-12-02 07:52:10
【问题描述】:
我正在开发一个 Android 应用程序使用的设备驱动程序。每当我对驱动程序进行小修改并重新编译修改后的驱动程序时,似乎该应用程序并未使用修改后的驱动程序,但仍在使用=使用以前的版本。我确信这一点,因为所做的修改包括应用程序运行时不显示的打印语句。
但是,一旦我删除驱动程序并重建它或重新启动系统,它似乎工作正常。 这样做的问题是它很耗时,因为我必须确保应用程序使用的是最新的驱动程序。
所以我的问题是android是否缓存库?如果是这样,是否有任何简单的技巧可以防止它这样做?
编辑: 事实上,我可以删除我的设备驱动程序,并且使用它的应用程序仍然可以运行而不会报告缺少驱动程序的问题!!!!!!!!!!!!!!!!!!
【问题讨论】:
-
如何安装驱动?它是应用程序的一部分吗? (重新安装应用程序不应缓存任何内容)
-
U 构建驱动程序(现在我正在交叉编译),然后将其保存在 /system/lib .... 以便应用程序在运行时获取它。该应用程序只是一个普通的Android应用程序例如:我,这是一个可以播放视频的厨房应用程序……但是重新安装该应用程序与重新启动系统相同……缓存的东西被扔掉了
-
杀掉app进程还不够?您的“驱动程序”只是一个 .so 库,您可以将其动态加载到应用程序进程中,对吗?
-
是的......我的想法......顺便说一句,杀死应用程序你的意思是在应用程序上使用kill命令......我的应用程序播放视频几秒钟然后关闭...... ..视频结束后我做了ps,发现我的app没有列出来....
-
Android(或 zygote)可能会在启动时缓存它们,至少ro.zygote.disable_gl_preload 表明它有能力这样做。另见"speedup is achieved by NOT copying the shared libraries"。
标签: android device-driver