javah生成头文件
编写native方法,如:
package com.example.renzhenming.appmarket.ui.selectimage; import android.graphics.Bitmap; public class ImageUtil { static { System.loadLibrary("jpeg"); System.loadLibrary("compressimg"); } /** * 图片压缩 * @param quality 压缩的质量 * @param fileName 压缩后的路径 */ public static void compressImage(Bitmap bitmap,int quality, String fileName){ compressBitmap(bitmap,quality,fileName); } /** * NDK方法加载图片 * @param quality 压缩的质量 * @param fileName 压缩后的路径 * @return */ public native static int compressBitmap(Bitmap bitmap,int quality, String fileName); /*public static Bitmap decodeFile(String path) { int finalWidth = 800; // 先获取宽度 BitmapFactory.Options options = new BitmapFactory.Options(); // 不加载图片到内存只拿宽高 options.inJustDecodeBounds = true; BitmapFactory.decodeFile(path,options); int bitmapWidth = options.outWidth; int inSampleSize = 1; if(bitmapWidth>finalWidth){ inSampleSize = bitmapWidth/finalWidth; } options.inSampleSize = inSampleSize; options.inJustDecodeBounds = false; return BitmapFactory.decodeFile(path,options); }*/ }
cmd进入build/intermediates/classes/debug文件目录下,输入如下命令
C:\Users\renzhenming\Desktop\appdemo\AppMarketDemo\app\build\intermediates\classes\debug>javah -classpath D:\application\java\sdk\platforms\android-26\android.jar;. -jni com.example.renzhenming.appmarket.ui.selectimage.ImageUtil
其中的-classpath作用是引入安卓类库中的类,因为很明显在上边我们的例子中使用了Android中的bitmap类,如果我们不加-classpath的话,就会报错
错误: 找不到类android.graphics.Bitmap。(如果没有使用的话不需要加)
注意后边的分号和点必须加,否则无法找到
编写完成后make project 一下,会在文件夹下生成.h文件(不make也许也可以)
这样我们就获取到头文件了,可以进行c语言编程了
/* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class com_example_renzhenming_appmarket_ui_selectimage_ImageUtil */ #ifndef _Included_com_example_renzhenming_appmarket_ui_selectimage_ImageUtil #define _Included_com_example_renzhenming_appmarket_ui_selectimage_ImageUtil #ifdef __cplusplus extern "C" { #endif /* * Class: com_example_renzhenming_appmarket_ui_selectimage_ImageUtil * Method: compressBitmap * Signature: (Landroid/graphics/Bitmap;ILjava/lang/String;)I */ JNIEXPORT jint JNICALL Java_com_example_renzhenming_appmarket_ui_selectimage_ImageUtil_compressBitmap (JNIEnv *, jclass, jobject, jint, jstring); #ifdef __cplusplus } #endif #endif
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android StaggeredGridLayoutManager布局RecyclerView在滚动状态可见范围刷新数据
Android StaggeredGridLayoutManager布局RecyclerView在滚动状态可见范围刷新数据 之所以把StaggeredGridLayoutManager布局的RecyclerView单列出来处理滚动状态下可见(可视)范围内的数据更新问题,是因为在StaggeredGridLayoutManager布局下的RecyclerView,对于第一个可视item和最后一个可视item,即第一个可视item位置和最后一个可视item位置,不像在LinearLayoutManager布局下直接获取,需要进行一个简单计算。关键的计算过程我写在了getOutRange()方法内。 package zhangphil.recyclerview; import android.graphics.Color; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support....
- 下一篇
ubuntu、deepin 程序启动菜单创建
ubuntu、deepin 程序启动菜单创建 ubuntu、deepin中webstorm、androidsudio 、idea等程序启动菜单创建。 1.首先我们到idea官网下载压缩包,下载完之后解压,然后复制路径,全路径/bin/studio.sh 2.以超级管理员的身份打开/usr/share/applications这个文件夹,root修改密码的命令是sudo passwd root 3.我们可以看到有好多.desktop文件,这就是应用程序菜单。 这里写图片描述 这里写图片描述 4.我们复制一个,或这新建一个 as.desktop然后输入如下内容,我们只需把 Exec 和 Icon 换成自己的路径,name 随便改,保存后就可以看到自己的启动程序图标了 Categories=Application; Comment=this is Android Studio Exec=/home/nelson/soft/android-studio/bin/studio.sh Icon=/home/nelson/soft/android-studio/bin/studio.png Name...
相关文章
文章评论
共有0条评论来说两句吧...