如何编译 netty 源码并导入android studio
发布网友
发布时间:2022-04-25 16:24
我来回答
共2个回答
热心网友
时间:2022-05-05 08:25
一、修改Android Studio(以下简称AS)的内存配置
因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio.vmoptions中-Xms和-Xmx的值。文档中使用的是748m, 可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一个没有classpath的JDK, 这样可以确保使用源码里的库文件
并将其作为要使用的SDK的Java SDK。
三、生成导入AS所需配置文件(*.ipr)
①编译源码(为了确保生成了.java文件,如R.java;如果编译过,则无需再次编译)
②检查out/host/linux-x86/framework/目录下是否有idegen.jar
如果idegen.jar不存在,执行:
mmm development/tools/idegen/
在5.0.1的源码中会生成res.java的文件夹,导致idegen.jar运行时抛FileNotFoundException,这是idegen的代码不够严谨造成的。
我的分享里有修改这个bug的patch,或者直接使用我分享的idegen.jar。
③执行
development/tools/idegen/idegen.sh
等待出现类似下面的结果:
Read excludes: 5ms
Traversed tree: 44078ms
这时会在源码的根目录下生成android.ipr和android.iml两个IntelliJ IDEA(AS是基于IntelliJ IDEA社区版开发的)的配置文件
热心网友
时间:2022-05-05 09:43
ndk编译是针对jni的。jni是java native interface的缩写,意为java本地接口。
java本地接口一般是用C语言来实现一些功能,然后通过特定的格式暴露接口给java调用。但是C语言的代码不能直接被java使用,而是需要通过ndk进行编译,编译后会在libs目录下生成.so文件,这事动态运行库,这时C语言曝露出的接口才能被java调用。
楼主可以检查你的vlc项目中的libs目录下,是否包含了.so文件,如果有的话一般是不需要ndk进行 编译的。不过如果楼主修改了c语言中的代码,那么为了使修改生效必须从新用ndk编译,编译后会删除原来生成的.so,并生成新的.so文件。
使用ndk-r7以及更高版本的ndk,可以免安装cygwin而直接使用命令行进行编译,非常方便。
方法:
将ndk的根目录设置环境变量,然后dos命令行进入需要编译的项目的根目录,执行命令
ndk-build