在实际开发中,有时候时间短,任务量大,可以查看类似的apk,将行apk反编译,通过看源码分析,用里面的JNI代码!

本案例中用了美图秀秀的JNI.java和jni.so链接库


项目中调用别人写的c代码:

1.得到so和开发文档;

2.把so文件放到libs/armeabi/目录下;

3.根据开发文档在java代码中写一个本地方法;

4.加载动态库,调用本地方法.


准备工作 :

   创建一个第三方美图秀秀apk中JNI的一样的包名,将JNI,java放入此包名下

   将得到的so所在的文件夹armeapi复制在libs下

import com.mt.mtxx.image.JNI;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
public class MainActivity extends Activity {
static {
System.loadLibrary("mtimage-jni");//注意:这么名字是libs/armeapi下so的名字,去除前面的lib和后面的.so得到的
}
private ImageView iv;
private Bitmap bmp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.iv);
bmp = BitmapFactory.decodeFile("/mnt/sdcard/aa.jpg");
iv.setImageBitmap(bmp);
}
public void show(View v){
int width = bmp.getWidth();
int height = bmp.getHeight();
int[] pixels = new int[width*height];
bmp.getPixels(pixels , 0, width, 0, 0, width, height);
JNI jni = new JNI();
jni.StyleLomoHDR(pixels, width, height);
Bitmap bitmap = Bitmap.createBitmap(pixels, width, height, bmp.getConfig());
iv.setImageBitmap(bitmap);
}
}

最新文章

  1. 学习ASP.NET Core,怎能不了解请求处理管道[2]: 服务器在管道中的“龙头”地位
  2. linux学习日记之鸟哥
  3. HDU2159 二维完全背包
  4. DataGrid中的事件和方法
  5. android studio打包出现翻译问题
  6. 求一个数组中最小的K个数
  7. 手把手教你学习FPGA系列视频教程_救护车鸣笛声
  8. Picasso 加载图片到RelativeLayout之解决方案
  9. C++重载运算符的规则
  10. 基于visual Studio2013解决C语言竞赛题之0417四倍数
  11. 鸟哥的LINUX私房菜基础篇第三版 阅读笔记 二
  12. CodeForces 510C Fox And Names (拓扑排序)
  13. Windows 常用的运行命令
  14. java validate date
  15. WIN7搭建ASP站点
  16. U3D MonoBehaviour
  17. 设置gem源,解决下载慢的问题
  18. z-index 层级关系
  19. js 判断数组重复元素以及重复的个数
  20. html中引入另一个html文件

热门文章

  1. Win10系统的开机启动项如何去关闭?
  2. Python中文转为拼音
  3. deep_learning_Function_Sklearn_Mode
  4. deep_learning_初学neural network
  5. BLE 5协议栈-主机控制接口(HCI)
  6. linux基础—课堂随笔_03 SHELL脚本编程基础
  7. URL编码以及GET和POST提交乱码解决方案 (转)
  8. SOA架构分析
  9. 【Layui】Layui模板引擎生成下拉框不显示
  10. vue中axios的二次封装