进阶
huaxun66
这个作者很懒,什么都没留下…
展开
-
Android字节码插桩
什么是字节码插桩字节码插桩就是在构建的过程中,通过修改已经编译完成的字节码文件,也就是class文件,来实现功能的添加。简单来讲,我们要实现无埋点对客户端的全量统计。这里的统计概括的范围比较广泛,常见的场景有:页面(Activity、Fragment)的打开事件各种点击事件的统计,包括但不限于Click LongClick TouchEventDebug期需要统计各个方法的耗时。注意这里...原创 2019-12-11 18:49:20 · 3527 阅读 · 0 评论 -
Gradle自定义插件
Android GradleAndroid项目使用 Gradle 作为构建框架,Gradle 又是以Groovy为脚本语言。所以学习Gradle之前需要先熟悉Groovy脚本语言。Groovy是基于Java语言的脚本语言,所以它的语法和Java非常相似,但是具有比java更好的灵活性。Android Gradle 的 Project 和 Tasks这个是Gradle中最重要的两个概念。每次...原创 2019-12-11 18:20:35 · 716 阅读 · 0 评论 -
Android 内存检测工具
所谓内存泄漏,是指本该被回收的内存由于某种原因绕开了GC回收算法,从而导致该内存无法被有效数据使用而使得总内存减小的情况。内存泄漏会导致内存消耗的增加,大量的消耗会使得APP OOM,特别是在一些内存比较小的机器上。下面我们看看有哪些工具可以用来分析内存泄漏。Heap DumpHeap Dump的主要功能就是查看不同的数据类型在内存中的使用情况。它可以帮助你找到大对象,也可以通过数据的变化发现内存泄原创 2017-08-28 17:02:58 · 12083 阅读 · 0 评论 -
Android 性能检测工具
trace文件trace.txt是系统用于保存ANR Log的文件,通过这个文件可以找到系统检测到的ANR的应用。ANR的定义在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用程原创 2017-08-28 10:26:08 · 1314 阅读 · 0 评论 -
Android APK的反编译和重新打包
反编译Android程序打完包之后得到的是一个APK文件,这个文件是可以直接安装到Android手机上的,我们反编译其实也就是对这个APK文件进行反编译。Android的反编译主要又分为两个部分,一个是对代码的反编译,一个是对资源的反编译。开始学习之前,我们需要准备一个APK文件,项目很简单,代码如下所示:public class MainActivity extends AppCompatActi原创 2016-08-23 10:53:13 · 10822 阅读 · 1 评论 -
Android bluetooth开发实践
之前我写过一篇文章,Android Socket编程实践,讲解了如何通过ServerSocket和Socket实现局域网通信,但当时的通信环境是WIFI条件下。其实Android从2.0版本的sdk开始支持蓝牙框架,使设备可以通过蓝牙以无线方式与其他蓝牙设备进行数据交换。工作流程首先两个设备上都要有蓝牙设备或者专业一点叫蓝牙适配器,以手机和电脑为例我画了如下流程图。其次在手机上进行扫描,扫描周围蓝蓝原创 2016-12-08 13:21:07 · 4030 阅读 · 0 评论 -
Android APK加固(加壳)工具
之前一篇文章Android proguard代码混淆,我们讲解了如何实现APK的代码混淆,让反编译者不那么容易阅读我们的源代码。虽然我们混淆,做到native层,但是这都是治标不治本的。反编译的技术在更新,那么保护Apk的技术就不能停止。现在有很多Apk加固的第三方平台,譬如爱加密,360加固,梆梆加密等,但是这些平台都是收费的。今天我们给大家介绍一个免费的APK加固工具APK Protect。测试原创 2016-12-06 11:04:45 · 34379 阅读 · 6 评论 -
JNI学习(一)之设置编译环境
JNI概述JNI(Java Native Interface)意为JAVA本地调用,它允许Java代码和其他语言写的代码进行交互,简单的说,是一种在Java虚拟机控制下执行代码的标准机制。 我们都知道,Java应用程序是一处编码,处处运行的,之所以可以这么威风,靠的就是JVM这个东西,那么JVM是什么呢,JVM就是Java虚拟机,是一种虚拟技术,位于java应用程序和特定的操作系统之间,担当着“一原创 2016-10-09 20:40:09 · 3927 阅读 · 0 评论 -
Android视频直播的实现
最近一段时间,视频直播可谓大火。在视频直播领域,有不同的商家提供各种的商业解决方案,包括软硬件设备,摄像机,编码器,流媒体服务器等。本文要讲解的是如何使用一系列免费工具,打造一套视频直播方案。 视频直播流程视频直播的流程可以分为如下几步: 采集 —>处理—>编码和封装—>推流到服务器—>服务器流分发—>播放器流播放1.采集采集是整个视频推流过程中的第一个环节,它从系统的采集设备中获取原始视频数据,原创 2016-12-01 22:33:11 · 66709 阅读 · 41 评论 -
《深入理解Android 卷一》第2章 深入理解JNI
本文摘自《深入理解Android 卷一》第二章。第2章 深入理解JNI本章主要内容 通过一个实例,介绍JNI技术和在使用中应注意的问题。 本章涉及的源代码文件名及位置 下面是本章分析的源码文件名及其位置。MediaScanner.Java framework/base/media/java/src/android/media/MediaScanner.javaandroid_media转载 2016-10-12 20:40:56 · 815 阅读 · 0 评论 -
JNI学习(二)之实例分析
在上一篇我们讲解JNI技术时,说过通过这种技术可以做到以下两点:Java程序中的函数可以调用Native语言写的函数,Native一般指的是C/C++编写的函数。Native程序中的函数可以调用Java层的函数,也就是在C/C++程序中可以调用Java的函数。本篇我们就来演示一下这两种情况的实现。Java调用C/C++其实JNI学习的第一篇文章设置编译环境实现的例子就是Java调用C++。原创 2016-10-12 22:11:47 · 613 阅读 · 0 评论 -
Android proguard代码混淆
之前我写过一篇博客Android APK的反编译和重新打包讲解了APK反编译方面的知识,包括反编译代码、反编译资源、以及重新打包等内容。那么本文我们来学习一下如何防止自己的APK被别人反编译,即代码混淆。 代码混淆并不是让代码无法被反编译,而是将代码中的类、方法、变量等信息进行重命名,将它们改成一些毫无意义的名字,譬如A类的b()方法等。所以说代码混淆可以在不影响程序正常运行的前提下让破解者很头疼原创 2016-11-11 15:52:54 · 6459 阅读 · 1 评论