我希望将3.1版(Honeycomb)中引入的Android RTP API移植到早期版本。我下载了4.0版的源代码,发现这些API同时具有java和本机代码。为了使用NDK构建本机代码,需要某些共享库。
根据Android.mk文件,这些文件是libnativehelper
,libcutils
,libutils
和libmedia
。尽管源代码中存在所有这些的来源,但构建它们很困难。每个都需要许多其他共享库。例如,libmedia
需要以下共享库:libui
,libcutils
,libutils
,libbinder
,libsonivox
,libicuuc
,{ {1}},libexpat
,libcamera_client
,libstagefright_foundation
和libgui
。
所以我的问题是,有没有办法获得原来的4个共享库?它是否涉及建立整个来源?
答案 0 :(得分:3)
假设我需要构建一段本地代码,该代码将使用标准的Android共享库,例如libutils
,libcutlis
,libmedia
。我会执行以下步骤:
AOSP
存储库。./frameworks/base
下的相应目录中。 Android.mk
当然可能更容易。AOSP
的一部分时,它将构建所需的库并自动为您链接。P.S。为了实现这一点,您最好使用基于Linux的构建主机。
答案 1 :(得分:0)
使用cygwin终端,构建本机部分即jni文件夹。要使用cygwin构建,请使用cygdrive命令转到jni文件夹。然后输入ndk-build。成功完成后,将在libs文件夹中创建共享库,即.so文件。
答案 2 :(得分:0)
我可以理解你的问题,你可以从设备或模拟器的/ system / lib中提取库。但是您需要系统权限。但是你可以通过安装应用程序来实现。 否则在linux平台上构建你的源代码。构建过程非常简单,只需使用2或3命令即可。第一次需要很长时间才能建造。之后你需要很短的构建时间,它只会根据修改后的代码的时间戳来构建。 Please have a look here