hans

hans

【Android】在ecplise上配置ADT, SDK, NDK以及用C++代码生成其他平台.so库的简单流程(Ubuntu 14.04)


文中有些东西不科学上网下载不了,可以从这里下: Android_免费高速下载 | 百度网盘 - 分享无限制

一、JDK(JAVA SDK)安装#

sudo apt-get install openjdk-7-jdk

二、Eclipse 去官网下载安装就好。#

三、安装 ADT 步骤:

1. 先去下载: dl.google.com/android/ADT-23.0.2.zip

2. 打开 eclipse 》》help》》Install New Software》》add,选上面下载的 zip 包,根据提示安装好,最后重启 eclipse。

【2018.05.14 更新】这里注意看 ecliplse 右下角安装条,安装好之后会自动提示是否重启。

四、安装 Android SDK#

下载: http://dl.google.com/android/android-sdk_r24.2-linux.tgz

tar -xvf android-sdk_r24.2-linux.tgz
cd android-sdk-linux/tools
./android update sdk --no-ui
vi ~/.zshrc
export PATH=${PATH}:$HOME/sdk/android-sdk-linux/platform-tools:$HOME/sdk/android-sdk-linux/tools:
$HOME/sdk/android-sdk-linux/build-tools/22.0.1/
source ~/.zshrc
sudo apt-get install libc6:i386 libstdc++6:i386
sudo apt-get install zlib1g:i386

上面 update 那一步很慢很慢,而且还会出现 connect refused 的情况,无视就好,耐心等,可以去看一部电影。

【2018.05.14 更新】今儿在 mac 上无法更新 sdk,上网找到了解决办法 ------------

  1. ./sdk/tools/android 运行 sdk

  2. 打开设置, 在『Android SDK Manager - Settings』窗口中,在「HTTP Proxy Server」和「HTTP Proxy Port」输入框内填入 mirrors.neusoft.edu.cn 和 80,并且选中「Force https://… sources to be fetched using http://…」复选框。设置完成后单击「Close」按钮关闭『Android SDK Manager - Settings』,窗口返回到主界面;

  3. 依次选择「Packages」、「Reload」。


打开 eclipse》》Window》》Preferences》》Android,选择 SDK 目录位置,apply。

五、配置 NDK#

1. 先去下载: NDK 下载 | Android NDK | Android Developers

2. 解压缩

3. 打开 eclipse》》Window》》Preferences》》Android》》NDK,选择 NDK 目录位置。

六、简单说下用 C/C++ 代码生成可供 ARM 用的.so 库的流程#

1. 创建 android 项目

2. 将 C/C++ 代码放入 jni 目录

3. 在 src 目录下创建 source folder,写.java 文件

4. 上面 Build 右边有个带红色文件夹的 Build 按钮,

打开 External Tools Configurations,

1668711411366.jpg

1668711425013.jpg

1668711433624.jpg

在 jni 目录下生成.h 头文件。

5. 根据头文件修改 C/C++ 代码。

  1. 下载并解压 OpenCV-2.4.9-android-sdk

7. 在 jni 目录下创建 Android.mk 文件

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

######################################
# change this folder path to yours
NCNN_INSTALL_PATH := /home/hans/ncnn/build-android-armv7  #####改

include $(CLEAR_VARS)
LOCAL_MODULE := ncnn  ####改
LOCAL_SRC_FILES := $(NCNN_INSTALL_PATH)/libs/armeabi-v7a/libncnn.a  ####改
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)

#################################################
#default
#OPENCV_CAMERA_MODULES:=off
#OPENCV_INSTALL_MODULES:=off
OPENCV_INSTALL_MODULES:=on
#OPENCV_LIB_TYPE:=SHARED
					
include /home/hans/eclipse/OpenCV-2.4.9-android-sdk/sdk/native/jni/OpenCV.mk   ####改

#####################################
LOCAL_MODULE    := FMInterface   ####改
LOCAL_SRC_FILES := featureMap.cpp  ###改

######################################
LOCAL_C_INCLUDES += $(NCNN_INSTALL_PATH)/install/include   ####改

LOCAL_STATIC_LIBRARIES := ncnn  ####改

LOCAL_CFLAGS := -O2 -fvisibility=hidden -fomit-frame-pointer -fstrict-aliasing -ffunction-sections -fdata-sections -ffast-math
LOCAL_CPPFLAGS := -O2 -fvisibility=hidden -fvisibility-inlines-hidden -fomit-frame-pointer -fstrict-aliasing -ffunction-sections -fdata-sections -ffast-math
LOCAL_LDFLAGS += -Wl,--gc-sections

LOCAL_CFLAGS += -fopenmp
LOCAL_CPPFLAGS += -fopenmp
LOCAL_LDFLAGS += -fopenmp

LOCAL_LDLIBS    += -lm -llog -landroid -lz -ljnigraphics

include $(BUILD_SHARED_LIBRARY)

8. 上面 Build 右边有个带红色文件夹的 Build 按钮,

打开 External Tools Configurations,

Location 找到 NDK 中 ndk-build 路径,

Working Directory 可以统一填写 “${project_loc}${system_property.separator} ”

Refresh 选第三个,同上

Build 选第二个,同上

单击带红色文件夹的 Build 按钮,选 ndk_build。

出现 libs 和 obj 目录。我们要的.so 库就在 libs 目录下的 armeabi 目录中。

r10 以后版本的 NDK 都没有了 samples 目录,也就没有了 hello-jni 这个样例。

我这里发出来: hello-jni.tgz

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.