NDK

Android Studio 使用NDK开发

旧时模样 提交于 2019-12-01 16:00:35
Android Studio 使用NDK编程 使用Android Studio有半年多了,感觉很好用,不就感觉费劲的就是NDK的支持一直不是很好,再Bate版的时候好像0.4.x之前可以使用NDK,当然本身Android Studio本身是支持NDK编译的,下面我就来解释一下怎么使用Android Studio来编译。 很简单,首先要创建你的项目,创建完成之后点击项目右键new->Folder->JNI Folder,如图 然后就生成了jni文件夹 再往里面添加你的c/cpp文件和Android.mk文件 最后再中添加ndk.dir=你的ndk路径 此时,如果项目没错就可以编译了(先不去使用,因为现在还没办法把.so文件打到apk中) 最后一项!!!最终要的:找到项目中得.iml文件,找到 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/ndk" /> 这一行,然后删掉!!!其实注释掉在编译的时候也会删掉那行。 此时,再编译就可以看到build->intermediates->ndk,说明已经修改成功! 2 、如何调用 因为再Android Studio中跟Eclipse不太一样,连jni的调用的名称都有点不同,如果此时你的项目中有两个工程A和B,A想调用B工程的XXlib.so

Android 开发NDK,SDK环境配置详解一

你离开我真会死。 提交于 2019-12-01 11:18:21
Android 开发 NDK , SDK 环境配置详解一 Windows 环境下 Android 开发环境配置清单: 1, Eclipse 2, Eclipse 插件 CDT 支持 C/C++ 开发的插件 3, Eclipse 插件 ADT 支持 Android 的开发插件 4, Android-SDK 5, Android-NDK 6, Cygwin 7, Eclipse 插件 Sequoyah Sequoyah Sequoyah 的项目负责人者 Eric Cloninger 说: “Sequoyah 是 2009 年 12 月特许为移动开发人员提供的一个项目,不管他们使用的是何种编程语言或移动平 台, Sequoyah 都能提供帮助,项目的贡献者来自摩托罗拉,诺基亚和 Wind River , Sequoyah 也积极参与了 RIM 和 Symbian 基金会。我们是从 DSDP 的几个子项目开始这个项目的,在太阳神中,我们增加了新的组件 进来,随着这次的发布,我们这个项目也将顺利从实验室毕业,正式进入成熟项目家庭中的一员, Sequoyah 的未来是充满希望的,因为我们正在进行一些支 持 Web 应用程序和 Android 本地开发的努力 ” 。 Cygwin cygwin 是一个在 windows 平台上运行的 unix 模拟环境,是 cygnus solutions

在 Android Studio 2.2 中愉快地使用 C/C++

瘦欲@ 提交于 2019-12-01 11:01:50
Android Studio 2.2 正式版发布后,看到更新内容中有提到对 C/C++ 支持的完善,表示非常高兴。然后将官网上这一部分内容翻译出来,如有错误,欢迎指正。 原文链接: Add C and C++ Code to Your Project 使用 Android studio,你可以将 C 和 C++ 代码构建成 native library(即 .so 文件),然后打包到你的 APK 中。你的 Java 代码可以通过 Java Native Interface(JNI)调用 native library 库中的方法。 Android Studio 默认使用 CMake 编译原生库。由于已经有大量的代码使用了 ndk-build 来编译 native code,所以 Android Studio 同样也支持 ndk build。如果你想导入一个 ndk-build 库到你的 Android Studio 项目中,请参阅后文的 关联本地库与 Gradle 部分。然而,如果你创建了一个新的 native 库工程,你应该使用 CMake。 本篇文章将会说明如何使用 Android Studio 来创建、配置 Android 项目,以支持 native code,以及将其运行到你的 app 中。 注意:要在 Android Studio 中使用 CMake 或者 ndk

Android应用开发相关下载资源(2014/12/14更新)

a 夏天 提交于 2019-12-01 10:20:27
Android 应用开发相关下载资源 官方终于发布了 Android Studio 正式版, Android Studio 将会成为推荐使用的主要 Android 开发工具 . (1)Android SDK (Android SDK 主安装包,包含 SDK Manager 、 AVD Manager 、工具包 tools ,释放后的根文件夹为 android-sdk-windows): revision 23.0.2 http://dl.google.com/android/android-sdk_r23.0.2-windows.zip http://dl.google.com/android/installer_r23.0.2-windows.exe http://dl.google.com/android/android-sdk_r23.0.2-macosx.zip http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz revision 24.0.1 http://dl.google.com/android/android-sdk_r24.0.1-windows.zip http://dl.google.com/android/installer_r24.0.1-windows.exe http://dl

Android应用开发相关下载资源

邮差的信 提交于 2019-12-01 10:20:05
官方终于发布了Android Studio正式版,Android Studio将会成为推荐使用的主要Android开发工具. (1)Android SDK (Android SDK主安装包,包含SDK Manager、AVD Manager、工具包tools,释放后的根文件夹为android-sdk-windows): revision 23.0.2 http://dl.google.com/android/android-sdk_r23.0.2-windows.zip http://dl.google.com/android/installer_r23.0.2-windows.exe http://dl.google.com/android/android-sdk_r23.0.2-macosx.zip http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz revision 24.0.1 http://dl.google.com/android/android-sdk_r24.0.1-windows.zip http://dl.google.com/android/installer_r24.0.1-windows.exe http://dl.google.com/android/android-sdk_r24.0.1

Android native debug: 手动使用gdbserver远程调试C代码

吃可爱长大的小学妹 提交于 2019-12-01 09:57:11
一般用java做一个Android app,里面夹杂着jni/*.c 所编译出来的lib,是可以通过gdb来调试的,也许大多数人都在按照网上各种帮助在使用,原理是比较古怪的:app里被塞进去一个gdbserver程序!安装后,会在该app的data目录下出现gdbserver,然后eclipse活着什么别的工具偷偷的启动gdbserver,让他调试改app进程,哦,是通过侦听一个socket,以便让PC端远程发送命令。关于这个网上有不少原理叙述。 但是有时候,就是开发一个和java无关的C程序放在android里运行,要想调试,这么简单的需求,就不想被那些乱七八糟的束缚了 ,方法基本参照gdbserver标准方法,例如 这个 。 只是稍微结合一下Android和NDK。 大致如下: 在ndk里找到gdbserver, 例如 find /Applications/android-ndk -type f -name '*gdbserver*' |grep arm 结果 /Applications/android-ndk/prebuilt/android-arm/gdbserver/gdbserver /Applications/android-ndk/prebuilt/android-arm64/gdbserver/gdbserver Android 5.0之前是第1行,之后是第2行。

linux 下 android ndk-gdb 调试 jni 中的c 代码

我的未来我决定 提交于 2019-12-01 09:56:43
ndk-gdb 调试方法: 1 androidManifast.xml 中设置 android:debuggable="true" 2 eclipse 启动调试,并在调用 jni 代码行打断点,等待 3 Android 中操作,直到 eclipse 中断点, 4 eclipse 中运行至jni 断点 , 这时在 Terminl 中进行当前 工程目录 , cd myAndroidPj/ 启动 ndk-gdb ($ ndk-gdb) 接下来,就是gdb 的命令了!! 关键 点2,3,4 步。 来源: oschina 链接: https://my.oschina.net/u/208153/blog/55267

【jni 编程】—— NDK环境搭建

好久不见. 提交于 2019-12-01 08:35:57
在《站在巨人的肩膀上,谈app的创新性》一文中 http://my.oschina.net/liusicong/blog/311971 ,我提到过构建app技术壁垒的必要性。在构建技术壁垒时,我们往往需要调用许多库函数,例如:图像处理的库函数,音频处理的库函数。我们发现一个有效可行的方案就是使用NDK工具来交叉调用C++函数。 我习惯于把我搜到的数篇帖子中特别好的帖子的地址附在问题后,这也是一种资源整合,面向想要入门学习android的java和c++交叉调用技能的读者盆友。 本文将分两部分来介绍如何在android下使用NDK实现c++开发:NDK环境的搭建,调用C++函数。 一. NDK环境搭建 1. 下载,解压 android-ndk-r5c-windows.zip 2. Cygwin 安装,同时参考以下两个教程 图文教程: http://wenku.baidu.com/link?url=JW5SDYlQAeGBWGm_gber3QJ3bGvIfaIElEpj1btc4WOmLuYSVqC7HjgDX4QKpbZp6yXSnXgGrOucpc_dnvwIpPiD-Saj_IlTcX_izN-npUu 图文教程: http://blog.csdn.net/pengchua/article/details/7582949 3. 配置 NDK builder

windows下配置android-NDK环境

给你一囗甜甜゛ 提交于 2019-12-01 06:15:29
第一步,下载安装cygwin,(模拟Linux 的编译环境),我们可以到Cygwin的官方网站下载Cygwin的安装程序,地址是: http://www.cygwin.com/ ; 开始安装Cygwin,安装教程 http://jingyan.baidu.com/article/48a42057accae3a92525045a.html 第二部,下载ndk, http://developer.android.com/tools/sdk/ndk/index.html ;下载完成,解压; 第三步,在Cygwin的安装目录的etc的文件夹下,找到profile的文件: 在profile中配置ndk的环境变量: # Setup some default paths. Note that this order will allow user installed # software to override 'system' software. # Modifying these default path settings can be done in different ways. # To learn more about startup files, refer to your shell's man page. PATH="/usr/local/bin:/usr/bin:

NDK学习三:[转载] android开发 NDK 编译和使用静态库、动态库

假如想象 提交于 2019-12-01 05:06:54
转载: http://hi.baidu.com/joec3/blog/item/687cf98913065dae0e244442.html 特别注意,编译静态库的时候你需要多加一个Application.mk,俺开始没有注意,一直不编译 NDK 编译和使用静态库、动态库 情况一:编译静态库 情况二:编译动态库 情况三:编译动态库+静态库 情况四:已有第三方静态库(动态库),编译静态库(动态库) 默认所有代码和文件在$project/jni下,否则特殊说明。 情况一:编译静态库 文件Android.mk: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := hello-jni LOCAL_SRC_FILES := hello-jni.c include $(BUILD_STATIC_LIBRARY) 文件Application.mk: APP_MODULES :=hello-jni 情况二:编译动态库 文件Android.mk: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := hello-jni LOCAL_SRC_FILES := hello-jni.c include $(BUILD_SHARED_LIBRARY)