自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(110)
  • 收藏
  • 关注

转载 Android研发安全1-Activity组件安全(上)

Activity组件是用户唯一能看见的组件,作为软件所有功能的显示载体,其安全性不言而喻。针对Activity组件安全,作为一个安卓开发者来讲需要在日常开发过程中注意两点: - Activity访问权限的控制 - Activity被劫持 本篇文章将分享Activit...

2016-12-10 05:51:00 138

转载 Android应用进程防杀指南2-双进程守护

在上一篇博客中,我们谈到了Android进程防杀的常用套路,各位童鞋可以点击查看我的博客Android应用进程防杀指南1-常用套路,随着越来越多的用户手机安装某卫士,某管家,常用的进程防杀套路并不能够很好的保证我们的APP进程常驻,因此本篇博客我给大家带来抗某卫士,某管家的双进程...

2016-12-10 05:51:00 54

转载 Android开启手电筒功能(完美适配Android4x,5x,6x)

最近在研究开启安卓手电筒功能,总结了下Android4x、5x、6x的手电筒开启方法,写成公共方法,分享给大家。 添加摄像机和闪光灯权限 <uses-permission android:name="android.permission.FLASHLIGHT" /&g...

2016-12-10 05:51:00 94

转载 Android应用进程防杀指南1-常用套路

进程、服务守护防杀的实现,对于每一位开发者来说,都是一部与某系统、某卫士、某助手、某管家、某大师斗争的血泪史。 我们常用的进程守护的套路无外乎以下几种,大部分内容摘录自Never-say-Never的博客 套路一.提高进程的优先级数值 对于Service...

2016-12-10 05:51:00 265

转载 彻底掌握Android多分包技术MultiDex-用Ant和Gradle分别构建(一)

Andrid多分包技术在大型项目编译方面起着至关重要的作用,作为一个高级开发者我们有必要掌握此技能,现在我带领大家统一学习此项技能,并教会大家分别使用Ant和Gradle构建。 什么是Dex Dex是Dalvik VM executes的全称,即Android D...

2016-12-10 05:51:00 90

转载 线性表数据结构解读(三)栈结构Stack

在上一篇文章中,我们详细介绍了链式存储结构,并结合LinkedList源码进行了分析,相关文章大家可以点击这里回看我的博客:线性表数据结构解读(二)链式存储结构LinkedList 栈的定义 栈是一种特殊的线性表,其全部操作都被限制在表的固定一端进行,而且构成栈的...

2016-12-10 05:51:00 76

转载 自定义Android IOC框架

IOC-控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dep...

2016-12-10 05:51:00 62

转载 Android中Service和Thread的区别

最近有位朋友问我,Android中Service和Thread有什么区别,为什么有时候放着方便的Thread不用,而要使用Service呢? 要解答这个问题,首先我们要弄明白Service和Thread分别是怎么定义的: Thread 是程序执行的最小单元,它...

2016-12-10 05:51:00 60

转载 System.arraycopy()从指定源数组中复制一个数组

System类提供了一个arraycopy()方法 public static void arraycopy(Object src, int srcPos, Objec...

2016-12-10 05:51:00 83

转载 线性表数据结构解读(四)队列结构Queue

在上一篇文章中,我们详细介绍了栈结构,并结合Stack源码进行了分析,相关文章大家可以点击这里回看我的博客:线性表数据结构解读(三)栈结构Stack 队列的定义 队列是一种插入和删除分别在两端进行操作的线性表,一端进行插入操作,一端进行删除操作。 队列的...

2016-12-10 05:51:00 61

转载 DexClassLoader和PathClassLoader的区别

在使用Java虚拟机时,我们经常自定义继承自ClassLoader的类加载器。然后通过defineClass方法来从一个二进制流中加载Class。而在Android中我们无法这么使用,Android中ClassLoader的defineClass方法具体是调用VMClassLoa...

2016-12-10 05:51:00 86

转载 LinkedHashMap最佳实践:LruCache

一句话解释:LruCache(least recently used cache)最近最少使用缓存。 前面,我们一起学习了LinkedHashMap数据结构,那么LruCache就是LinkedHashMap的最佳实践,童鞋们可以查看我的博客线性表数据结构解读(六)链式...

2016-12-10 05:51:00 70

转载 Android6.0源码解读之ViewGroup点击事件分发机制

本篇博文是Android点击事件分发机制系列博文的第三篇,主要是从解读ViewGroup类的源码入手,根据源码理清ViewGroup点击事件分发原理,明白ViewGroup和View点击事件分发的关系,并掌握ViewGroup点击事件分法机制。特别声明的是,本源码解读是基于最新的...

2016-12-10 05:51:00 75

转载 Android NDK学习笔记4-Android.mk篇

Android.mk是一个向Android NDK构建系统描述NDK项目的GUN Makefile片段。它是每一个NDK项目的必备组件,构建系统希望它出现在jni子目录中。 上图就是Android.mk的基本文件格式,我们来一起学习下Android.mk的编写语法...

2016-12-10 05:51:00 76

转载 彻底掌握Android多分包技术MultiDex-用Ant和Gradle分别构建(二)

在上一篇博客中,我给大家详细介绍了ant实现Android多分包技术,具体可以点击查看:彻底掌握Android多分包技术MultiDex-用Ant和Gradle分别构建(一);接下来的这篇博客我将带领大家一起学习使用Gradle构建Android项目多分包。 增加多分包配置 ...

2016-12-10 05:51:00 70

转载 线性表数据结构解读(五)哈希表结构-HashMap

前面的博客中,我给大家分析过数组和链表两种线性表数据结构。数组存储区间连续,查找方便,但是插入和删除效率低下;链表存储区间离散,插入删除方便,但是查找困难。大家肯定会问,有没有一种结构,既能做到查找便捷,又能做到插入删除方便呢?答案就是我们今天要跟大家说的主角:哈希表。 ...

2016-12-10 05:51:00 93

转载 Java垃圾回收手记

常用定义 java垃圾回收 在空闲时间以不定时的方式进行垃圾回收,回收的是无任何引用的对象占据的内存空间而不是对象本身 触发主GC(Garbage Collector)的条件 (1)当应用程序空闲时,即没有应用线程在运行时,GC会被调用。因为GC在优先级最...

2016-12-10 05:51:00 66

转载 Android NDK学习笔记1-基础知识篇

引言 最近开发项目用到了多个C语言编写的动态链接库so,期间遇到很多问题,项目开发完毕后,我觉得有必要把开发中的一些知识点总结下来,并结合我手边的一本经典教程《Pro Android C++ with the NDK》,写下这个系列的文章,分享给大家,希望给想入门A...

2016-12-10 05:51:00 70

转载 解惑Android的post()方法究竟运行在哪个线程中

Android中我们常用的post()方法大致有两种情况: 1.如果post方法是handler的,则Runnable执行在handler依附线程中,可能是主线程,也可能是其他线程 下面是Handler里面的post方法 /** * Causes the R...

2016-12-10 05:51:00 132

转载 Android增量更新流程讲解

为什么需要增量更新:节省流量,节省流量,节省流量,重要的事情说三遍! 增量更新不仅可以让用户在客户端实现省流量更新,更重要的是增量更新还可以实现服务器端流量的节省,为网站节省成本。 增量更新的原理 服务端将应用的旧版本Apk与新版本Apk做差分处理,得到新版A...

2016-12-10 05:51:00 154

转载 Android NDK学习笔记12-JNI日志打印

在Java环境中我们使用JNI时可以使用printf函数打印,但是Android环境下使用JNI,printf函数就无效了,而我们使用IDE开发工具中的LogCat视图以及Console视图里也没有任何输出。其实,Android NDK完全支持JNI本地日志调试。为了使用日志函数...

2016-12-10 05:51:00 147

转载 Android NDK学习笔记9-JNI调用Java方法

与域一样,java中有两类方法:实例方法和静态方法。JNI提供访问两类方法的函数,例如: public class JavaClass {// 实例方法private String instanceMethod(){return "Instance Method";}// ...

2016-12-10 05:51:00 107

转载 Android NDK学习笔记8-JNI的访问域

java有两类域:实例域和静态域。类的每个实例都有自己的实例域副本,而一个类的所有实例共享同一个静态域。 JNI提供了访问两类域的函数,例如: public class JavaClass {// 实例域private String instanceField = "I...

2016-12-10 05:50:00 63

转载 Android自实现百分比布局

在开发中,组件布局是大家每日开发必须要面对的工作,对于Android来说提供五种常用布局,分别是: LinearLayout(线性布局) TableLayout(表格布局) RelativeLayout(相对布局) AbsoluteLayout(绝对...

2016-12-10 05:50:00 50

转载 线性表数据结构解读(二)链式存储结构LinkedList

在上一篇文章中,我们详细介绍了线性表数据结构的原理以及顺序存储结构,并结合ArrayList源码进行了分析,相关文章大家可以点击这里回看我的博客:线性表数据结构解读(一)顺序存储结构ArrayList 本篇文章,我将给大家继续解读线性表数据结构,这次我们来谈链式存储结构...

2016-12-10 05:50:00 80

转载 ant构建异常UNEXPECTED TOP-LEVEL EXCEPTION com.android.dx.cf.iface.ParseException解决

最近在一台老的电脑用ant构建项目,跑了下ant命令后,发现老是提示UNEXPECTED TOP-LEVEL EXCEPTION异常,具体异常描述 [exec] UNEXPECTED TOP-LEVEL EXCEPTION[exec] com.android.dx.cf.iface...

2016-12-10 05:50:00 326

转载 Android NDK学习笔记5-JNI数据类型总结

Java中有两种数据类型,分别是基本数据类型和引用类型。 JNI基本数据类型 java的基本数据类型可以直接与C/C++的响应基本数据类型映射: 这些基本数据类型可以在Native层直接使用。 JNI引用类型 与基本数据类型不同,引用类型对原生方法是不透明...

2016-12-10 05:50:00 52

转载 Android NDK学习笔记6-JNI对引用数据类型的操作

字符串操作 JNI把Java字符串当成引用类型来处理,JNI提供了java字符串与C字符串之间相互转换的必要函数。因为java字符串对象是不可变的,因此JNI不提供任何修改现有的java字符串内容的函数。 ● 创建字符串 可以在原生代码中用NewString函数构...

2016-12-10 05:50:00 76

转载 Android NDK学习笔记3-入门案例篇

上篇文章我们安装了NDK系统,在NDK系统文件中包含samples文件夹,打开该文件夹,我们发现里面有大量的案例项目,这里我们通过Eclipse导入一个名为hello-jni的项目 导入成功后,我们可以看到项目目录如下: 然后,我们逐个学习案例源码 1.声...

2016-12-10 05:50:00 83

转载 简单实现Android图片三级缓存机制

用户在使用我们的APP时,通常会重复浏览一些图片,这时如果每一次浏览都需要通过网络获取图片,那么将会非常流量。为了节省用户流量,提高图片加载效率,我们通常使用图片三级缓存策略,即通过网络、本地、内存三级缓存图片,来减少不必要的网络交互,避免浪费流量。 网上已经有很多讲述...

2016-12-10 05:50:00 55

转载 Android6.0触摸事件分发机制解读

本篇博文是Android触摸事件分发机制系列博文的第一篇,带领大家从全局掌握Android触摸事件分发机制。特别声明的是,本源码解读是基于最新的Android6.0版本。 (一)Android6.0源码解读之View点击事件分发机制 (二)Android6.0源码解读之V...

2016-12-10 05:50:00 48

转载 线性表数据结构解读(六)链式哈希表结构-LinkedHashMap

上一篇文章我和大家一起解读了HashMap的原理源码,各位童鞋可以点击链接查看线性表数据结构解读(五)哈希表结构-HashMap 这次我们一起来看一下LinkedHashMap,它保留插入的顺序,如果需要输出的顺序和输入时的相同,那么就选用LinkedHashMap。就...

2016-12-10 05:50:00 66

转载 Android NDK学习笔记13-JNI的局部和全局引用

局部引用 大多数JNI函数返回局部引用。局部引用不能在后续的调用中被缓存及重用,主要是因为它们的使用期限仅限于原生方法,一旦原生函数返回,局部引用即被释放。例如,使用FindClass函数返回一个局部引用,当原生方法返回时,它被自动释放,也可以用DeleteLocalRef函...

2016-12-10 05:50:00 61

转载 Error-Expected resource of type styleable [ResourceType]

错误信息 Expected resource of type styleable [ResourceType] 错误原因 最近在项目中由于要使用沉浸式通知栏,所以使用了一个工具类SystemBarTintManager,而这个工具类在项目打包的过程中提示了一个错误:Expec...

2016-12-10 05:50:00 48

转载 Android应用进程防杀指南3-JobService

在前两篇博客中,我们系统的学习了Android应用进程防杀套路和双进程守护的实现,不懂的童鞋们请查看Android应用进程防杀指南1-常用套路和Android应用进程防杀指南2-双进程守护两篇博文。 本篇博文,我将带领大家学习更高端的APP进行防杀技巧,该技巧除了能够应...

2016-12-10 05:50:00 73

转载 Android NDK学习笔记15-配置AndroidStudio

现在大家越来越多的使用AndroidStudio进行Android开发,那么今天就和大家一起交流一下AndroidStudio开发NDK的配置方法。 AndroidStudio配置NDK 通常我们有两种方法实现配置 1手动方式配置: 1.在Google的官方网站下...

2016-12-10 05:50:00 60

转载 Android NDK学习笔记2-环境搭建篇

第一步.安装JDK和配置Java环境变量 Java环境配置对于每一位开发者来说早已轻车熟路,相信不需要我再详细说明,这一过程略过,如果不了解的朋友可以自行百度。 第二步.下载Android NDK的安装包 1.在Google的官方网站下载Android NDK的安装包 下载...

2016-12-10 05:50:00 43

转载 Android NDK学习笔记14-JNI的线程

JNI技术的一些约束: 1.只在原生方法执行期间及正在执行原生方法的线程环境下局部引用时有效的,局部引用不能在多线程间共享,只有全局引用可以被多个线程共享。 2.被传递给每个原生放的的JNIEnv接口指针在与方法调用相关的线程中也是有效的,它不能被其他线程缓存或使用。 同步 ...

2016-12-10 05:50:00 65

转载 线性表数据结构解读(一)顺序存储结构ArrayList

线性表 线性表:零个或多个具有相同类型的数据元素的有限序列。数据元素的个数称为线性表的长度。 A=(a1,a2,……ai-1,ai,ai+1,……,an); ● A代表一个线性表 ● ai(1<=i<=n)成为线性表的元素,i为元素的下标,表示该元素在线...

2016-12-10 05:50:00 116

转载 Android NDK学习笔记11-JNI异常处理

捕获异常 JNIEnv接口提供了一组与异常相关的函数集,在运行过程中可以使用java类查看这些函数。 public class JavaClass{// 抛出方法private void throwingMethod() throws NullPointerExcep...

2016-12-10 05:50:00 61

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除