一.android NDK编程步骤 java文件中声明native方法. android工程根目录新建jni文件夹. 调用javah命令为第一步声明的native方法生成相应的.h头文件. 通过windows命令行窗口进入到该工程根目录下执行如下语句,便可生成对应的.h头文件: javah -classpath bin/classes;D:\yinz\adt-bundle-windows-x86_64-20131030\sdk\platforms\android-19\android.jar -…
源:android NDK编译(导入).a文件和编译多个so文件 一.编译一个静态库 libstatic_android.a LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := static_android LOCAL_SRC_FILES := libstatic_android.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MOD…
转:http://www.cnblogs.com/fww330666557/archive/2012/12/14/2817386.html 一.配置好Android开发环境 二.下载安装安卓NDK  http://developer.android.com/tools/sdk/ndk/index.html 三.下载安装cygwin   由于NDK编译代码时必须要用到make和gcc,所以你必须先搭建一个linux环境, cygwin是一个在windows平台上运行的unix模拟环境,它对于学习u…
一.NDK环境在Mac中部署 1.准备eclipse,android sdk安装包,android ndk安装包(http://dl.google.com/android/ndk/android-ndk64-r10-darwin-x86_64.tar.bz2) 2.部署android开发环境 3.部署NDK开发环境(配置环境变量) 二.编写基于NDK的HelloWorld 1.它的作用即是把实现了我们在Java code中声明的native方法的那个libraryload进来,或者load其他什…
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse->Window->Preferences->Android->NDK ,选择NDK的路径,然后Apply即可. 新建一个名为AndroidJNI_Object的Android工程,新建一个jni的文件夹,其目录下文件树列表如下: ├── jni│   ├── Android.mk│   ├─…
首先,今天发现了一个很牛逼的教程网站:慕课网(http://www.imooc.com/).有很多大牛发布的教学视频.值得收藏.学习. 今天主要参照陈启超老大的视频,学习了多个Activity之间的切换.工程中添加了多个Activity之后,最重要的还是要相应的修改AndroidManifest.xml文件. (1)注册新加的Activity (2)指定首先创建的Activity 连续两晚的学习都涉及到了AndroidManifest.xml,这次就仔细的学习下. 借鉴: http://mobi…
我们配置好NDK环境后,基本可以看到其目录结构如下图: 下面我们来分析一下NDK根目录的结构: ndk-build:该Shell脚本是Android NDK构建系统的起始点,一般在项目中仅仅执行这一个命令就可以编译出对应的动态链接库库了. ndk-gdb:该Shell允许用GUN调试器调试Native代码,并且可以配置到编辑器中,做到像调试Java代码一样调试Native代码. ndk-stack:该Shell脚本可以帮助分析Native代码崩溃时的堆栈信息. build:该目录包含NDK构建系…
转:http://www.cnblogs.com/fww330666557/archive/2012/12/14/2817385.html 一.What is the NDK? The Android NDK is a toolset that lets you embed components that make use of native code in your Android applications. Android applications run in the Dalvik vir…
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse->Window->Preferences->Android->NDK ,选择NDK的路径,然后Apply即可. 新建一个名为AndroidJNI_CathcThrow的Android工程,新建一个jni的文件夹,其目录下文件树列表如下: ├── jni│   ├── Android.mk│ …
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse->Window->Preferences->Android->NDK ,选择NDK的路径,然后Apply即可. 新建一个名为AndroidJNI_MethodCall的Android工程,新建一个jni的文件夹,其目录下文件树列表如下: ├── jni│   ├── Android.mk│ …
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse->Window->Preferences->Android->NDK ,选择NDK的路径,然后Apply即可. 新建一个名为AndroidJNI_AccessField的Android工程,新建一个jni的文件夹,其目录下文件树列表如下: ├── jni│   ├── accessfield…
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse->Window->Preferences->Android->NDK ,选择NDK的路径,然后Apply即可. 新建一个名为AndroidJNI_ObjectArray的Android工程,新建一个jni的文件夹,其目录下文件树列表如下: ├── jni│   ├── Android.mk│…
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse->Window->Preferences->Android->NDK ,选择NDK的路径,然后Apply即可. 新建一个名为AndroidJNI_IntArray的Android工程,新建一个jni的文件夹,其目录下文件树列表如下: ├── jni│   ├── Android.mk│  …
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse->Window->Preferences->Android->NDK ,选择NDK的路径,然后Apply即可. 新建一个名为AndroidJNI_Prompt的Android工程,新建一个jni的文件夹,其目录下文件树列表如下: ├── jni│   ├── Android.mk│   ├─…
Android.mk file syntax specification Introduction: This document describes the syntax of Android.mk build file written to describe your C and C++ source files to the Android NDK. To understand what follows, it is assumed that you have read theOVERVIE…
最近项目中遇到了要使用opencv的情况,涉及到了abi兼容的选择.因为如果全部都适配的话,包很大,这样兼容那些用户数极少的cpu就很不划算,所以我只适配了armeabi-v7a这一个.但是今天在x64-v8a的模拟器上看的时候,提示我的library.so文件找不到,我记得这个应该是向下兼容的,但是出现这种情况很奇怪,于是我就在网上找了找答案. 解决方法:abiFilters 在app的gradle的defaultConfig里面加上这么一句 ndk { abiFilters "armeabi…
转:http://www.cnblogs.com/fww330666557/archive/2012/12/14/2817389.html 简单的示例: makefile文件: LOCAL_PATH:=$(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE:=test-jniLOCAL_SRC_FILES := test-jni.cinclude $(BUILD_SHARED_LIBRARY) 如果有多个文件,可能有所不同吧,尚未尝试. 头文件:最好使用j…
转:http://www.cnblogs.com/fww330666557/archive/2012/12/14/2817387.html 第一步: 在Eclipse中创建android项目,并声明Native接口: public native int add (int a, int b);public native int sub (int a, int b); 编译.运行: 这样在bin目录下就会生成类文件: 第二步: 打开命令行cmd,到达bin目录: F:\fww\workspace\T…
一.写在前面 直到现在,基本我写的每一个项目都会用到NDK动态链接库的知识,可见这个也的确十分常用.那么,今天,咱们就来谈谈它. 二.什么是ABI和so 1.发展 早起的Android系统几乎只支持ARMv5的CPU架构,而现在却发展到了7种:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64 (从2014年起),每一种都关联着一个相应的ABI.每一种ABI的详细介绍可以参见官方的介绍ABI Managem…
版权声明:转载请说明出处:http://www.cnblogs.com/renhui/p/6925810.html 首先编写Jni接口的c文件,此文件命名有些特殊,具体的命名方式可以参考文档来做. #include <jni.h> #include <string.h> #include <stdio.h> JNIEXPORT jstring JNICALL Java_com_renhui_mplayer_MainActivity_displayHelloWorld(J…
为什么要写一个端口扫描的程序,Java来写不是很方便吗?因为我也没有想到什么例子能够方便的来练习.于是想到以前找到的端口扫描的C代码,于是想用他们来练习.扫描服务端端口的方式有许多种,最简单的就是直接去连接该端口,复杂一些的就是看SYN的应答.其他方式就不说了.下面的portScan.c位于jni目录下:(原本可在linux下运行,修改部分代码,使之能够返回结果给Java层的调用.)#include<stdio.h> #include<stdlib.h> #include<j…
目录 使用Shared Preference 保留简单的应用程序数据 保存回话间的Activity实例数据 管理应用程序首选项和创建Preference Screen 保存并加载文件以及管理本地文件系统 将静态文件作为外部资源添加 使用Shared Preference 保留简单的应用程序数据 Shared Prefrence 是一种简单的.轻量级的名/值对(NVP)机制,用于保存原始应用程序数据,最常见的是用户的应用程序首选项. Android 中的数据持久化技术为平衡速度.效率和健壮性提供了…
一.Android.mk Android.mk分为一下几部分: LOCAL_PATH:= $(call my-dir), 返回当前文件在系统中的路径,Android.mk文件开始时必须定义该变量. include $(CLEAR_VARS), 表明清楚上一次构建过程中的所有全局变量,因为在一个Makefile编译脚本中,会使用到大量的全局变量,使用这行脚本表明需要清除所有的全局变量. LOCAL_SRC_FILES,要编译的C或者CPP的文件,注意这里不需要列举头文件,构建系统会自动帮助开发者依…
编写一个Java类,并且在某个方法签名的修饰符中加上native修饰符. 使用Javac命令编译第一步中的Java类,使之成为一个class文件. 使用Javah -jni 包名.类名 生成Jni接口头文件. 将上一步生成的Jni头文件复制到项目下的jni目录,并建立一个cpp文件实现该JNI头文件中的函数. 编写Android.mk文件,加入第四步的本地代码,使用ndk-build生成动态链接库. 在Java中加载上一步生成的动态链接库,static { System.loadLibrary(…
Android同意我们使用Service组件来完毕后台任务.这些任务的同意不会影响到用户其它的交互. 1.Activity类 [java] view plaincopy package demo.camera; import android.app.Activity; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android…
Application.mk file syntax specification Introduction: This document describes the syntax of Application.mk build files written to describe the native modules required by your Android application. To understand what follows, it is assumed that you ha…
如果你的C++代码中出现了很多C++特有的库,例如<iostream>,<list>等,那么你还需要在jni的文件夹下添加一个Application.mk文件,文件内容为: APP_STL := stlport_static APP_STL := gnustl_static 示例 Application.mk : APP_ABI := armeabiAPP_STL := gnustl_static #GNU STL  APP_CPPFLAGS := -fexceptions -fr…
一.从C/C++层调用JAVA层代码(无参数调用) //在c代码里面调用java代码里面的方法 // java 反射 // 1 . 找到java代码的 class文件 // jclass (*FindClass)(JNIEnv*, const char*); jclass dpclazz = (*env)->FindClass(env, "com/renhui/sffmpegandroidstreamer/MainActivity"); if(dpclazz==0) { LOGI…
一.AllocObject jobjectAllocObject(JNIEnv *env, jclass clazz); 分配新 Java 对象而不调用该对象的任何构造函数.返回该对象的引用. clazz 参数务必不要引用数组类. 参数: env:JNI 接口指针. clazz:Java 类对象. 返回值: 返回 Java 对象.如果无法构造该对象,则返回NULL. 抛出: InstantiationException:如果该类为一个接口或抽象类. OutOfMemoryError:如果系统内存…
转自:http://android.yaohuiji.com/about Android学习指南的内容分类: 分类 描写叙述 0.学习Android必备的Java基础知识 没有Java基础的朋友,请不要先看Android的课程,这样会非常累. 1.Android学习指南基础篇 对于有Java基础的朋友,能够通过本分类60讲左右的课程,打下比較坚实的基础. 2.Android学习指南项目实训篇 对于学过"1.Android2.2学习指南基础篇"的朋友,能够通过本分类项目的联系,加深对基础…