1、下载美图秀秀apk,使用反编译软件“Android逆向助手”提取里面的jni.java文件到我们的工程里

package com.mt.mtxx.image;public class JNI
{public native void AutoColor(byte[] paramArrayOfByte, int paramInt1, int paramInt2, int paramInt3, int paramInt4);public native void AutoColorLevel(byte[] paramArrayOfByte, int paramInt1, int paramInt2, boolean paramBoolean);.............................
}

2、包名称不能变package com.mt.mtxx.image

3、解压美图秀秀的apk把,lib目录下的libmtimage-jni.so拷贝到工程里的armeabi目录下

4、创建页面,加载so文件System.loadLibrary(“mtimage-jni”);

/*** @描述         美图秀秀* @项目名称      App_imooc* @包名         com.android.imooc.jni* @类名         ArrayActivity* @author      chenlin* @date        2014年6月7日 下午10:26:02* @version     1.0*/public class XiuXiuActivity extends Activity{private ImageView iv;private Bitmap mBitmap;static{//加载类库System.loadLibrary("mtimage-jni");}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_jni_xiuxiu);mBitmap = BitmapFactory.decodeFile("sdcard/girl.jpg");iv = (ImageView) findViewById(R.id.imageView1);iv.setImageBitmap(mBitmap);}public void canvas(View view){}}

5、实现方法:

public void canvas(View view){JNI jni = new JNI();int width = mBitmap.getWidth();int height =mBitmap.getHeight();int[] pixels = new int[width * height];mBitmap.getPixels(pixels, 0, width, 0, 0, width, height);//int[] paramArrayOfInt 表示像素;//int paramInt1; 宽//int paramInt2; 高jni.StyleLomoB(pixels, width, height);Bitmap createBitmap = Bitmap.createBitmap(pixels, width, height, mBitmap.getConfig());mImageView.setImageBitmap(createBitmap);}

6、bitmap.getPixels方法说明:

public void getPixels (int[] pixels, int offset, int stride, int x, int y, int width, int height)

把位图的数据拷贝到pixels[]中。每一个都由一个表示颜色值的int值来表示。幅度参数表明调用者允许的像素数组行间距。对通常的填充结果,只要传递宽度值给幅度参数。
参数
pixels 接收位图颜色值的数组
offset 写入到pixels[]中的第一个像素索引值
stride pixels[]中的行间距个数值(必须大于等于位图宽度)。可以为负数
x  从位图中读取的第一个像素的x坐标值。
y 从位图中读取的第一个像素的y坐标值
width   从每一行中读取的像素宽度
height    读取的行数

7、布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><Button
        android:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="canvas"android:text="美颜" /><ImageView
        android:id="@+id/imageView1"android:layout_width="match_parent"android:layout_height="match_parent"android:src="@drawable/pic_6" /></LinearLayout>

8、下载
http://pan.baidu.com/s/1skLTfT7

Android 反编译美图秀秀APK,开发自己的美颜apk相关推荐

  1. android Studio 编写美图秀秀的简单demo

      借鉴在慕客网上的学习,给大家分享一下.目前在自学之中,没什么编程背景,JAVA也在自学之中.希望志同道合的朋友能留个言,大家一起交流. 首先在主界面创建了3个按钮,这三个按钮分别是通过不同的机理来 ...

  2. Android实现仿美图秀秀给图片加框

    // 花色边框  public Bitmap getBitmapHuaSeBianKuang(Bitmap bitmap) {   float frameSize = 0.5f * getFrameS ...

  3. Android JNI实现Java与C/C++互相调用,以及so库的生成和调用(JNI方式调用美图秀秀so)

    前言 关于Android Studio如何继承JNI开发环境,请阅读上一篇博文 Android CMake集成JNI开发环境本篇博文将结合实例分别讲解Android中Java如何调用C/C++的方法, ...

  4. 03_美图秀秀实现思路

    LOMO其实是一个早期的苏联的相机厂.五六十年代产了一些廉价的比较实用的相机.后来苏联解体之后这个相机厂就不产了.九十年代的时候有一个叫杰克的哥们,去货摊上找到了一个全新的没开封的这个LOMO相机,照 ...

  5. php文件 用户头像上传代码,网页web上传用户头像代码实现(美图秀秀开放)

    网页web上传用户头像代码实现(美图秀秀开放) 在制作论坛或者一些门户社交网站的时候,经常要获取用户的头像.之前我们一般都是自己制作flash插件头像上传.或者用js来自己开发一个头像上传功能.比如有 ...

  6. Chrome插件之使用美图秀秀编辑图片

    这几天在网络上使用了几款在线的图片编辑器,其中美图秀秀网页版我非常喜欢,我们单位也有一个嵌入在我们建站系统的图片编辑器,使用Javascript开发的,效果很差.美图秀秀网页版使用简单,非常适合我这样 ...

  7. Android App开发实战项目之模仿美图秀秀的抠图工具(附源码和演示视频 简单易懂 可直接使用)

    需要图片集和源码请点赞关注收藏后评论区留言~~~ 所谓抠图神器,就是从一副图片中扣出用户想要的某块区域 一.需求描述 美图的修图功能如此强大,离不开专业的图片加工技术,抠图便是其中重要的一项功能.在A ...

  8. Android+JNI+OpenGL开发自己的美图秀秀

    https://blog.csdn.net/oshunz/article/details/50537631 Android+JNI+OpenGL开发自己的美图秀秀 2016年01月18日 16:39: ...

  9. 美图秀秀2015年实习生android应用开发方向招聘笔试题

    美图秀秀的实习生笔试题总体上比较简单,考察的比较基础,主要是自己比较low,有些题当时都木有做出来.下面整理了两道当时没做出来的题目. 1(JAVA题).打印九九乘法表,要求:只能使用一次for循环, ...

最新文章

  1. 2021年大数据常用语言Scala(十三):基础语法学习 函数 重点掌握
  2. 【风控策略】(未完成)策略规则与模型评分
  3. 蓝桥杯-出现次数最多的整数(java)
  4. 每日程序C语言30-static作用
  5. 常用json框架介绍和Jackson返回结果处理
  6. 【西安活动】 | 4月20日「拥抱开源,又见.NET:云时代 • 新契机」
  7. Android Studio 日志工具
  8. git 查看分支编码_12个常用的Git命令,赶紧记一波!
  9. SpringBoot实现国际化
  10. python 解析模块脚本_Python pexpect模块及shell脚本except原理解析
  11. mybatis 3的TypeHandler深入解析(及null值的处理)
  12. Jmeter设置默认中文页面
  13. docker常用操作(八) docker安装Zookeeper
  14. 深夜更新博客的美女们[组图]
  15. 暑期集训1期11暑期集训一期12阶段性测验
  16. 【Angular】ng-zorro-ant表格切换pageSize页数选择器不生效解决方案
  17. 2022支付宝集五福活动开始了 有哪些集福方法你知道吗?
  18. 如何用不到200行代码实现经典小游戏贪吃蛇,附源代码及详细实现思路
  19. 写给Python社群的第2课:Python逻辑语句,天天要写的 if 和 while
  20. oneAPI 、DPC++ 学习篇章

热门文章

  1. 从面试6连挂到成功拿下20K的offer,这一个月我是这样做的····
  2. Dockerfile基础和实例测试
  3. 一年级abb式词语并造句_abb式的词语造句|字词解析
  4. 英语学习-英语常用口语学习2
  5. 苹果a13_iPhone11大降800元,苹果A13+256GB,库克还是清仓了
  6. 开发必备工具,快速生成接口文档、调用示例、mock配置
  7. C语言求最大公约数和最小公倍数
  8. 微信小程序开发基础 图片与声音
  9. 仿淘宝闲鱼的 TabBar
  10. 20171126,三四两题