NDK

android ndk及工具地址

不羁岁月 提交于 2019-12-04 23:42:59
2016.11 NDK 13b 从Android Studio 2.2开始,NDK已经很轻易的可以下载集成到AS中,无需单独下载安装。 https://dl.google.com/android/repository/android-ndk-r13b-windows-x86.zip https://dl.google.com/android/repository/android-ndk-r13b-windows-x86_64.zip https://dl.google.com/android/repository/android-ndk-r13b-darwin-x86_64.zip https://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip 2016.10 Android Studio 2.2.1.0 https://dl.google.com/dl/android/studio/install/2.2.1.0/android-studio-bundle-145.3330264-windows.exe https://dl.google.com/dl/android/studio/install/2.2.1.0/android-studio-ide-145.3330264-windows

用Android Sutdio调试NDK

ⅰ亾dé卋堺 提交于 2019-12-04 19:30:44
网上用 Android Studio 调试 NDK 的资料不多且分散。我将这几天踩过的坑及经验纪录一下,方便其它朋友。我将从导入一个 NDK Samples 中的项目开始。 演示代码放在 GitHub 上,每个坑为一次Submit。 开发环境 操作系统: Mac OS 10.11.1 IDE: Android Studio 1.5.1 NDK: android-ndk-r10e Native链接其它库 加载 NDK Samples 中的 hello-gl2 项目后,直接运行会出现如下错误: Error:(39) undefined reference to `glGetError' Error:(41) undefined reference to `__android_log_print' ... 在 build.gradle 文件中添加命令来链接相关库,具体可见 Mac下用Android Studio运行NDK samples 。 无法进入Native代码 解决库链接问题后,程序能运行正确运行在设备上,可无法中断在Native代码上的断点处。 看到一些文章,如 《AndroidNDK开发在本地C/C++源代码中设置断点单步调试详细教程》 说的是ADT上的调试; 《Using Eclipse for Android C/C++ Debugging》 (需翻墙

在mac上用AndroidStudio1.5 创建NDK开发环境(Ubuntu 16.4LTS亲测可用)

此生再无相见时 提交于 2019-12-04 19:30:32
本文参考了youtube上的一个视频,想直接看视频的可以访问 https://www.youtube.com/watch?v=RmPuwdxR1qs (要翻墙) 废话少说打开androidStudio,新建一个工程 NDKTest 新建完毕 依次打开 File->ProjectStruct 得到下面图 检查第三行是否为空,是则代表ndk还没下载,直接点击下载即可 下载完毕后,打开设置,在搜索那里输入Exter,选择ExternalTools 注意!默认情况下这里是空的 点击左下角那个+号,添加这几个工具路径 分别是javah,ndk-build,ndk-build clean,依次如下图 Program $JDKPath$/bin/javah (javah存放路径) Parameters -classpath $Classpath$-v -jni $FileClass$ (命令参数) Working directory $SourcepathEntry$/../jni (这个是你的c/c++文件存放路径) 第一个是ndk的文件路径,默认下载地址是在你的sdk包下面 Working directory $ProjectFileDir$/app/src/main 这个跟ndk-build相比只是第二行多了个clean 到这里环境就配置完毕了 然后将目录切换到project 右键main

[原创] Android NDK 安装全记录

孤街浪徒 提交于 2019-12-04 18:58:49
[原创] Android NDK 安装全记录 1. http://www.cygwin.com/ 下载最新版本setup.exe工具, 选择最近的服务器, 我选的是163的镜像站点, 下载所有包, 到本地不安装, 然后选择, 选择全部所有, 全安装, 本地安装, 即可; 2. 执行cygwin根目录下的Cygwin.bat批处理后,输入以下,判断是否安装成功 cygcheck -c cygwin gcc -v g++ -v make --version gdb --version 3. vi cygwin/home/用户名/.bash_profile 文件最后添加此两行 NDK=/cygdrive/e/android/Android-sdk_r16-windows/android-ndk-r7b/ export NDK 4. puttycyg http://code.google.com/p/puttycyg/ 下载此程序最新版本 选择cygtem连接方式, 用户名写-, 打开即可, 使用putty来编辑了; 使用 echo $NDK 测试是否成功 附 putty不支持中文: window -> translation 选择为utf-8; putty行数太少: window -> lines of scrollback 输入2000; putty将所有显示都输出到日志文件中:

【NDK】NDK概念

空扰寡人 提交于 2019-12-04 16:39:46
1、ndk是什么 官方地址: https://developer.android.com/ndk/index.html 2、什么场景可以应用ndk 1.代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大 2.在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的(比如人脸识别、视频、图形) 3.便于移植,用C/C++写的库可以方便在其他的嵌入式平台上再次使用(比如写了一个底层库,可以供android、ios通用) 3、什么是交叉编译 简单的说,就是在一个平台上生成另一个平台上可执行的代码(比如:x86、arm、mips平台) 4、jni是什么 Java Native Interface,允许java代码和其它语言写的代码进行交互 jni的实现流程 图片里的链接库应该是*.dll或*.so。。。。 5、什么是链接库 包括:静态链接库(什么鬼。。。) 和 动态链接库(.so结尾开头的库。。。) 6、make文件介绍 .mk文件,hello-jni demo里有,去找吧~~~ 7、ndk开发包目录介绍 我的目录如下: ndk-build:命令,ndk编译。。。 ndk-stack.exe 调试代码非常有用的命令,有助于快速查找bug 来源: oschina 链接: https://my.oschina.net/u/218078

Android之NDK开发

杀马特。学长 韩版系。学妹 提交于 2019-12-04 01:22:30
一、NDK产生的背景   Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java实现,这意味着基于 Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”。在Android SDK首次发布 时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动态库,即在Android平台 上,“Java+C”的编程方式是一直都可以实现的。   不过,Google也表示,使用原生SDK编程相比Dalvik虚拟机也有一些劣势,Android SDK文档里,找不到任何JNI方面的帮 助。即使第三方应用开发者使用JNI完成了自己的C动态链接库(so)开发,但是so如何和应用程序一起打包成apk并发布?这里面也存在技术障碍。比如 程序更加复杂,兼容性难以保障,无法访问Framework API,Debug难度更大等。开发者需要自行斟酌使用。   于是NDK就应运而生了。NDK全称是Native Development Kit。   NDK的发布,使“Java+C”的开发方式终于转正,成为官方支持的开发方式。NDK将是Android平台支持C开发的开端。 二、为什么使用NDK   1.代码的保护。由于apk的java层代码很容易被反编译,而C/C+

Android NDK配、编译、调试

痞子三分冷 提交于 2019-12-03 23:09:00
Android NDK 编程开发 确定下载对应的 adt-bundle 和 NDK ,主要两个软件的操作系统版本。软件的版本配置是决定成功的重要因素。 环境说明 OS : Windows 7 x64 Adt-bundle-windows-x86-x64 : Eclipse 4.2.0 Adt : NDK : Android-ndk-windows-x86-x64(版本为9,经过测试NDK 10配置失败) 参考使用软件下载地址,目前只提供ndk插件 http://pan.baidu.com/s/1nukTked 版本与更新 查看版本 首先拿到版本以后不要急着开发,首先确定自己对应的软件版本。各个软件之间的版本将会直接影响到最终能否调试成功。 Eclipse 版本查看 打开文件查看版本 adt-bundle-windows-x86_64-20140702\eclipse\.eclipseproduct Adt 版本查看: Android SDK Manger中查看 NDK 版本查看: 网上下载,版本提前知道,具体通过软件查看未知。 版本更新 更新 Eclipse 因为版本问题可能导致一些无法预测的问题,如果你有信心解决这些意外,可以跳过版本更新匹配。 首先选择版本更新,首先更新 Eclipse 版本 Eclipse->Help->Install New Software 更新 ADT

android ndk 编译 libevent

北城余情 提交于 2019-12-03 22:57:32
下载 libevent 2.1.8 版本 先在win10上用wsl编译 libevent 在wsl上,准备需要的编译环境 sudo apt-get install automake sudo apt-get install autoconf sudo apt-get install libtool 运行 autogen.sh ``` bash ./autogen.ch autoreconf: Entering directory .' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal --force -I m4 autoreconf: configure.ac: tracing autoreconf: running: libtoolize --copy --force libtoolize: putting auxiliary files in '.'. libtoolize: copying file './ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'. libtoolize: copying file 'm4/libtool.m4' libtoolize: copying file 'm4

android build过程中的问题

∥☆過路亽.° 提交于 2019-12-03 22:44:44
非常好的下载android codes地址: http://d.zhu.im/Android/ 抓下来所有的codes,设置环境变量,开始make... 1.prebuilt/ndk/android-ndk-r5/platforms/android-9/arch-arm/usr/include/sys/types.h:1: error: expected identifier or '(' before '!' token prebuilt/ndk/android-ndk-r5/platforms/android-9/arch-arm/usr/include/sys/types.h:1: error: stray '\377' in program prebuilt/ndk/android-ndk-r5/platforms/android-9/arch-arm/usr/include/sys/types.h:1: error: stray '\376' in program 等等之类的错误。 解决方案: 发现types.h文件的内容是: !<symlink>? . / . . / . . / . . / . . / . . / p l a t f o r m s / a n d r o i d - 8 / a r c h - a r m / u s r / i n c l u d

Android NDK 开发之菜鸟

妖精的绣舞 提交于 2019-12-03 21:42:42
由于本人最近在帮一个朋友看NDK开发,期间遇到过一些不懂的问题,而在网上又没有找到什么好的解决方案;因此记录下来供参考。 首先呢,我使用的工具是Android Studio 一般来说配置好NDK也就可以了,这种教程网上也是有很多的。在这就不说了。 而我今天说的是另一种方案,不在Android Studio里面或者Eclipse里写JNI;而是使用Visual Studio 或者我使用的是QT Creator 中写项目,使用NDK进行编译。这种方式应该也是有很多人使用的。 当然在此之前你需要下载好NDK我使用的是NDK-r11,其它版本应该也是一样的。 创建一个项目 一直next; 创建一个测试JNI的类 编译项目,并进入到项目的class目录中,生成.h文件 注意目录关系,Eclipse中就是打开bin目录 当然你也可以使用cd来进入到这个目录 然后使用命令行来生成.h文件 使用javah 后面跟包名.类名 如果javah错,是你的JDK环境没配置好。如果找不到这个类,可能你还没有编译 然后关闭命令行,在目录中可以发现多了一个文件 使用QT Creator 或者Visual Studio 建立一个项目,实现上面.h中的方法 使用C++开发工具 使用c或者c++就是个人习惯了,不过在语法上略有差别 这里就不多说了,直接看结果。 注:有的编译器可能要将系统生成的 #include