- 浏览: 838883 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
loveseed1989:
您好,我用您的方法运行Cone.java,会给我报java.l ...
vtk学习笔记 --- 编译vtk库和java库 -
60love5:
60love5 写道首先谢谢你的解析,但你这个验证可见性的小程 ...
多线程中共享对象的可见性 -
60love5:
首先谢谢你的解析,但你这个验证可见性的小程序是存在问题的,你的 ...
多线程中共享对象的可见性 -
Gamehu520:
...
java 中的Unsafe -
shanpao1234560:
这个list不是静态的第一种情况下也会有线程安全的问题么,求指 ...
一个看似线程安全的示例
开发环境:
ubuntu 10.10 + eclipse + adt +android ndk + android sdk
1、新建简单项目:JNIDemo,
设计jni到java类:
package com.lt.jni
public class JNI { /** * call the native printf method to print */ public native void print(); public native String sayHello(); }
2、在android到bin目录下,执行命令:
javah -jni com.lt.jni.JNI 来生成头文件:com_lt_jni_JNI.h
/* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class com_lt_jni_JNI */ #ifndef _Included_com_lt_jni_JNI #define _Included_com_lt_jni_JNI #ifdef __cplusplus extern "C" { #endif /* * Class: com_lt_jni_JNI * Method: print * Signature: ()V */ JNIEXPORT void JNICALL Java_com_lt_jni_JNI_print (JNIEnv *, jobject); /* * Class: com_lt_jni_JNI * Method: sayHello * Signature: ()Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_com_lt_jni_JNI_sayHello (JNIEnv *, jobject); #ifdef __cplusplus } #endif #endif
3、在项目目录下,新建jni目录,并新建c源文件com_lt_jni_JNI.c:
#include <jni.h> #include <stdio.h> #include <string.h> #include <android/log.h> #include "com_lt_jni_JNI.h" /* * Class: com_lt_jni_JNI * Method: print * Signature: ()V */ JNIEXPORT void JNICALL Java_com_lt_jni_JNI_print (JNIEnv *env, jobject obj) { __android_log_print(ANDROID_LOG_INFO,"JNI","Java_com_lt_jni_JNI_print"); printf("Hello world!\n"); return ; } JNIEXPORT jstring JNICALL Java_com_lt_jni_JNI_sayHello (JNIEnv *env, jobject obj) { __android_log_print(ANDROID_LOG_INFO,"JNI","Java_com_lt_jni_JNI_sayHello"); return (*env)->NewStringUTF(env,"Hello JNI"); }
关键代码:#include <android/log.h>
__android_log_print(ANDROID_LOG_INFO,"TAG","log info");
4、在jni目录下新建Android.mk文件:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:=\
com_lt_jni_JNI.c
LOCAL_CFLAGS := -O2 -g
#LOCAL_CFLAGS += -D__FAVOR_BSD
#LOCAL_C_INCLUDES += \
# bionic/libc/include\
# external/libpcap
LOCAL_C_INCLUDES := \
$(JNI_H_INCLUDE)
#LOCAL_STATIC_LIBRARIES += libpcap
#LOCAL_SHARED_LIBRARIES += libssl libcrypto
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
#LOCAL_MODULE_TAGS := eng
LOCAL_MODULE := helloworld
include $(BUILD_SHARED_LIBRARY)
评论
建议到ubuntu下面搭建android开发环境,包括ndk开发环境。
java代码和ndk代码分两个项目来开发。
ndk可以放到源码环境中编译
发表评论
-
基于Oracle Streams + Oracle AQ 捕获变更,发布变更(二)
2014-11-21 22:23 3171要求:使用Oracle Streams捕获某个用户下部 ... -
基于Oracle Streams + Oracle AQ 捕获变更,发布变更(一)
2014-11-20 22:23 2727要求:使用Oracle Streams捕获某个用户下部分表 ... -
如何去掉在浏览器中打开java applet时的警告对话框
2013-08-24 12:10 6959好久没更新博客了! 最近,由于项目要求,需要将sw ... -
Android 内存泄露笔记
2013-03-05 23:10 01、大部分内存泄露都是错误的持有了Activity或者Con ... -
java 虚拟机总结 【思维导图】
2012-12-22 20:11 2064java虚拟机总结思维导图: 参考《深入理解jav ... -
Java虚拟机字节码执行引擎 【思维导图】
2012-12-22 19:51 1602java虚拟机字节码执行引擎思维导图总结: 参考《深入理 ... -
java 垃圾回收相关总结 【思维导图】
2012-12-21 19:03 3241java垃圾回收相关总结: 参考《深入理解java ... -
java并发中的延迟初始化
2012-12-12 19:17 4655在《java并发编程实战 ... -
java同步容器与并发容器
2012-12-09 18:07 4318何为同步容器:可以简 ... -
一个看似线程安全的示例
2012-12-09 14:56 4989在《java并发编程实战》第四章4.4.1节给出了一个程序示 ... -
多线程中的long和double
2012-12-08 19:26 4136在看一些代码的时候,会发现在定义long型和double型的 ... -
多线程中共享对象的可见性
2012-12-08 18:52 5071在阅读《java并发编程实战》的第三章的时候,看到书中的一个 ... -
一个快速、轻量级 Collection 库 Trove
2012-12-07 09:35 3707Trove一个快速、轻量级针对java原子类型(byte,i ... -
java 中的Unsafe
2012-12-05 22:25 32683在阅读AtomicInteger的源码时,看到了这个类:su ... -
在ubuntu10上编译Thrift0.8.0
2012-08-01 15:34 2111下载thrift0.8.0 ,地址: http:// ... -
生活小工具--记账小助手1.0发布
2012-05-31 15:08 1651因为自己平时喜欢记账,把每日的消费情况都记录下来,所以希望找 ... -
话费速查升级版v1.3发布
2012-05-04 12:47 1383前段时间开发了一个话费速查的小应用,最近一直保持每周更新一个 ... -
编译zeromq的java绑定:jzmq
2012-05-03 22:47 134951、 下载zeromq源码:http://www.ze ... -
Android软件包静默安装小应用 - 附源码
2012-04-21 20:50 12352老早之前,写了一个android软件包静默安装的应用,放在工 ... -
最方便的联通话费,余额查询软件来了! --- 联通话费速查v1.2
2012-04-12 18:01 3963软件介绍: 联通话费速查是一款针对联通 ...
相关推荐
Android JNI日志工具类,面去了每次手写android_print_info的繁琐写法,只需要导入头文件即可
基于 Android NDK 的学习之旅-----JNI LOG 打印 eclipse工程文件
本示例实现了Android JNI在C语言中打印log的配置,有关本示例的详细解析请参考博文:http://blog.csdn.net/l1028386804/article/details/47425073
节点-jni 在 jvm/dalvik/ART 上访问 node.js,阅读:android。大概的概念我努力争取后端 nodejs 工程师可以为(android)移动前端编写通信管道的那一天……目标不一定按此顺序: 构建共享库 (node.js/io.js) -- 完成...
当 crashlog 将 libcrashlog.so 动态加载到应用程序中时,它会在应用程序指定的目录中创建一个崩溃日志文件。 ##edit $vi local.properties sdk.dir=<your>ndk.dir=<your>NDKBUILD=ndk-build (linux, mac) or ndk-...
1 在网络条件不好的情况下在全屏和竖屏两个Activity之间切换可能会出错退出,原因是官方播放库中的线程没有做线程分离,在log中可以看到错误信息,这个问题在应用层没法改。如果只是在一个页面播放而不跳新页面则没...
的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...
分析Log.java的底层JNI代码程序结构
#define LOGE(format, ...) __android_log_print(ANDROID_LOG_ERROR, "(>_<)", format, ##__VA_ARGS__) #define LOGI(format, ...) __android_log_print(ANDROID_LOG_INFO, "(=_=)", format, ##__VA_ARGS__) #else #...
在socket.java里面增加LOG打印,打印所有使用过socket.java创建、关闭的socket本地与远端端口。可以通过persist.debug.logging_socket 属性控制是否打印。 资源是导入JNI的一些patch。核心代码在: ...
NDK开发C/C++配置Log打印日志,可以参考:https://blog.csdn.net/niuba123456/article/details/80991477
C++ Android Log
该资源是hello-jni.tar.gz 实例,来源于android-ndk-r8e的sample。博主已经编译生成shared library,以备分析汇编文件使用。libs/armeabi目录下有博主生成的log.obj、log.elf、log.hex,分别由arm-robin-linux-...
包含2大块功能:第一,如何利用ndk构建工具,在android平台下移植live555 rtsp库到jni中;第二,移植成功后,将测试文件push到sdcard中,启动apk,推流文件中的数据, 即可在客户端用...(rtsp地址在log中已经打印出来)
Genius-Android 是 Android 中一些常用的的方法集合, Genius 提供6个基本板块: app (Ui) animation (动画) widget (Material控件) command (命令行) ...
import android.util.Log; public class SerialPort { private static final String TAG = "SerialPort"; /* * Do not remove or rename the field mFd: it is used by native method close(); */ private...
1、jni 回调demo 源码。 2、运行环境android studio。 3、实例测试,不停的往上层回调发送信息,log看很直观。
QuickJS Java 为 Android 和 JVM 打包的。 (正在寻找吗?)用法 try ( QuickJs engine = QuickJs . create()) { Log . d( " Greeting " , engine . evaluate( " 'hello world'.toUpperCase(); " ) . toString());} ...
a20_hummingbird_v4.5_v1.0_csi01_2ov7670_rtl8188eus 20150918 1830 JNI.7z 无法打开USB Wifi rtl8188eus.txt 配置前后ov7670双摄像头 JNI调用读写一次之后就会出现内核出错,系统死机。 有可能与系统为android...
1. 继承Nativity,打通native和java层 public class MyNativeActivity extends NativeActivity { @Override public void onCreate(Bundle savedInstanceState) { ... Log.v(test, GetWebPicture