android个人笔记(二)——NDK开发常用工具
来源:互联网 发布:郭天祥十天单片机下载 编辑:程序博客网 时间:2024/06/08 02:47
打日志
// 需要包含的头文件#include <android/log.h> // .mk文件中需要导入的库// LOCAL_LDLIBS := -llog
#define LOG_TAG "libSVGm"#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)//打日志示例:LOGI("Enter initPlugIn(), nSize = %d", nSize);
Load动态库及获取接口
//需包含的头文件:#include <dlfcn.h>// 定义句柄void *fileHandle = NULL;// 定义接口函数指针示例NXCGSVGInterface* (*getSvgInterface)() = NULL;// Load动态库示例char *libPath = "/data/data/com.example.nxcgsvgparser/lib/libNXCGSVGParser.so";fileHandle = dlopen(libPath, RTLD_LAZY);if(fileHandle){ LOGI("Load Lib Success, %d", 0); getSvgInterface = (NXCGSVGInterface* (*)())dlsym(fileSvgHandle, "NXCGSVG_GetInterface"); if(getSvgInterface) { LOGI("getSvgInterface success, %d", 0); }}
JNI解析Bitmap对象
// 需要包含的头文件#include <android/bitmap.h>// .mk文件中需要导入的库LOCAL_LDLIBS += -ljnigraphics/**inBuffer为从java层以jobject类型传过来的Bitmap*/AndroidBitmapInfo infoImg; void* pixelsImg; int ret; //AndroidBitmap_getInfo(env, inBuffer, &infocolor); if((ret = AndroidBitmap_getInfo(env, img, &infoImg)) < 0) { LOGE("AndroidBitmap_getInfo() failed ! error=%d", ret); return; } LOGI("color image :: width is %d; height is %d; stride is %d; format is %d;flags is%d", infoImg.width,infoImg.height,infoImg.stride,infoImg.format,infoImg.flags); if ((ret = AndroidBitmap_lockPixels(env, img, &pixelsImg)) < 0) {//【锁定AndroidBitmap_lockPixels】 //锁定之后,pixelscolor指向图片的首地址 LOGE("AndroidBitmap_lockPixels() failed ! error=%d", ret); } else { LOGI("pixels have locked, %d", 0); } //TPOUTLINEFIGURE* pOutLine = ((CNXCGSVG*)cgSvg)->GenerateOutline(); //((CNXCGSVG*)cgSvg)->GenerateBuffer((DWORD*)pixelsImg, nWidth, nHeight);/**此处锁定之后可以对Bitmap的内存进行操作*/ LOGI("Have GenerateBuffer(), %d", 0); AndroidBitmap_unlockPixels(env, img);
生成JNI头文件
D:\workspace\testjni1\bin>javah -d header -classpath C:\android\android-sdk-windows\platforms\android-16\android.jar;classes -jni com.example.testjni1.MainActivity
0 0
- android个人笔记(二)——NDK开发常用工具
- Android——NDK开发(二)
- Android学习笔记-NDK开发(二)
- Android NDK (学习笔记二) —— 开发第一个Android NDK项目
- Android 开发的常用工具类(二)——Toast统一管理类
- Android NDK(学习笔记四)—— 在NDK开发中JNI打印Log信息
- android之NDK(jni)开发笔记1——运行第一个NDK程序
- android ndk开发二
- Android自定义View(二)——常用工具
- Android自定义View探索(二)—常用工具
- Android NDK 开发笔记
- android NDK 开发笔记
- Android NDK 开发之(二) 牛刀小试
- Android NDK 开发之(二) 牛刀小试
- Android NDK开发学习(二)
- Android NDK开发(二)数组
- Android逆向基础笔记—Android NDK开发4之Android studio NDK自动编译
- Android逆向基础笔记—Android NDK开发3之使用ndk-build工具手动编译
- linux更改文件夹权限,更改文件所有者
- ios7版 30天精通iPhone手机编程 第1天 ios7开发基础知识点
- Java内存泄露
- 小波变换和motion信号处理(一)
- 对于学习ror的 半年的总结及下一年的计划
- android个人笔记(二)——NDK开发常用工具
- Struts1与Struts2原理 区别 详解 汇总
- Matlab mex 命令行参数详解
- 金山手机助手为啥非要用adb的端口?
- 浙大PAT basic level 解题1016-10120
- java中的缓存
- stretchableImageWithLeftCapWidth
- 黑马程序员——反射机制
- V4L2