Linux Android NDK r7开发技巧,应用程序/库
来源:互联网 发布:淘宝卖家多发货 编辑:程序博客网 时间:2024/05/04 05:06
近来有需求在Android下开发程序,由于性能的需求,不能使用java语言来实现效率要求较高的代码;
下载了最新的r7 NDK,解压到某一Linux目录
1.设置环境变量,下面语句加入到.bash_profile中:
export NDK_HOME=<path to android ndk>
export PATH=$NDK_HOME:$PATH
之后就可以在任意工程目录里运行ndk-build来编译自己的程序了
2.Android NDK r7在默认的工程目录结构上和之前的NDK相比有一定的改变(本人没有使用过其他版本,但是单依据网上搜索到的文章来实现已经行不通了)
<Project dir>
-Application.mk//如果为应用程序,一般会有这个文件,静态编译时该文件在jni目录下
-default.properties//可以确定使用的API集合
-<jni> //源文件目录
-Android.mk//类似于makefile文件
-*.h *.c *.cpp//源文件
- Application.mk格式
一般只有这句:APP_PROJECT_PATH := $(call my-dir)如果如果ndk为r7版本,并且为静态库编译,则应该将该文件放置到jni目录下,并且使用这句APP_MODULES := lib<name> //name为你的库名称- default.properties格式,工程一般应该有这个文件:
target=android-8 //使用的目标机器API版本
- Android.mk
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := <输出文件名字>LOCAL_SRC_FILES := ... //列出你所有的.c .cpp源文件LOCAL_CFLAGS := -O2 -g -DANDROID_ARM //加入你希望的编译选项LOCAL_LDLIBS += -lc //这个是链接选项include $(BUILD_SHARED_LIBRARY)//这里可以设置生成的目标文件类型(BUILD_SHARED_LIBRARY是动态加载库,BUILD_STATIC_LIBRARY是静态库,BUILD_EXECUTABLE则可直接作为应用程序编译)
3.在工程目录下运行ndk-build,也可以在任意目录下运行ndk-build -C <Project dir>来编译,编译结果一般在<Project dir>/libs/armeabi/下
下面是一个编译libpcap的例子:
1.从网上搜索的android官方发布的libpcap git源地址已经改变了,现在其域名为:
https://android.googlesource.com/
2.下载libpcap的git源,运行:git clone https://android.googlesource.com/platform/external/libpcap.git
3.将libpcap下所有文件移入libpcap工程目录的jni目录下面
4.Android.mk内容如下
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES := \ bpf_dump.c \ bpf/net/bpf_filter.c \ bpf_image.c \ etherent.c \ fad-gifc.c \ gencode.c \ grammar.c \ inet.c \ nametoaddr.c \ optimize.c \ pcap.c \ pcap-linux.c \ savefile.c \ scanner.c \ version.cLOCAL_CFLAGS := -O2 -gLOCAL_CFLAGS += -DHAVE_CONFIG_H -D_U_="__attribute__((unused))" -Dlinux -D__GLIBC__ -D_GNU_SOURCELOCAL_MODULE := libpcapinclude $(BUILD_STATIC_LIBRARY)
5.注意为静态编译,jni目录下还应该有一个Application.mk文件
APP_MODULES := libpcap
6.cd到工程目录(也就是jni的上一级)
运行ndk-build
7.不出问题的话,将能在<工程目录>/libs/armeabi/下找到libpcap.a
8.之后的文件就可以直接使用libpcap的头文件并链接这个库来编译了
- Linux Android NDK r7开发技巧,应用程序/库
- Android NDK r7发布
- Ubuntu下搭建android NDK R7开发环境
- 使用R7版NDK搭建Android开发环境
- Ubuntu下构建android NDK R7开发环境
- Ubuntu下搭建android NDK R7开发环境
- 使用R7及以上版NDK搭建Android开发环境
- Ubuntu下搭建android NDK R7开发环境
- 使用R7版NDK搭建Android开发环境
- 使用R7版NDK搭建Android开发环境
- android-ndk-r7的使用
- Linux下Android NDK r7 环境配置以及配合eclipsex使用NDK
- android ndk r7 安装及问题
- android-ndk-r7 Syntax error: word unexpected
- android-ndk-r7 的awk问题
- android ndk r7 安装配置问题
- android-ndk-r7 编译 ffmpeg-0.10
- windwos android ndk r7环境配置
- Ext Designer 导出 项目 Export Project
- Flash服务端常见架构方案
- hadoop on windows with eclipse
- “压图高手”——JPEG Optimizer V3.0
- 滚动条的样式说明
- Linux Android NDK r7开发技巧,应用程序/库
- Cookie注入是怎样产生的
- 子衿的事(59)
- SQL Cursor 基本用法
- java set
- 黑马程序员_Java_I/O流学习——File对象
- 各种字符编码方式详解及由来(ANSI,UNICODE,UTF-8,GB2312,GBK)
- 使用Java、Jquery、Ajax实现的带进度条的文件上传。
- 使用BodyTagSupport类实现Jsp自定义标签