自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

转载 Android安全开发之ZIP文件目录遍历

摘要: 因为ZIP压缩包文件中允许存在“../”的字符串,攻击者可以利用多个“../”在解压时改变ZIP包中某个文件的存放位置,覆盖掉应用原有的文件。如果被覆盖掉的文件是动态链接so、dex或者odex文件,轻则产生本地拒绝服务漏洞,影响应用的可用性,重则可能造成任意代码执行漏洞,危害用户的设备安全和信息安Android安全开发之ZIP文件目录遍历

2017-03-27 16:53:55 877

原创 DialogFragment实现右侧、中间、底部菜单

效果图  实现public class MenuDialogFragment extends DialogFragment { private String mPosition; private JSONArray mItems; @Override public Dialog onCreateDialog(Bundle savedInsta

2017-03-25 22:39:01 1420

原创 Gradle编译时,Module间动态覆盖resValue

场景:       Android Project中新建了多个Module,其中Module A主要实现了公共接口和Widget,而Module B则是通过Provided方式依赖Module A中的接口和Widget来实现功能。       现在Module B需要使用setTag(int key, final Object tag)方法附加一些参数信息,然后通过super.method

2017-03-25 16:13:20 2515

原创 Android setTag方法定义key的问题

一般情况下,我们只需要使用唯一参数的setTag方法,给控件附加一些信息。但我们需要去附加多个信息的时候,开发就需要使用带key的重载。如果我们使用java常量定义key,就会遇见如下错误:              这是Google官方文档的描述:           “ The specified key should be an id declared in the

2017-03-22 23:45:04 1387

原创 用Intent传递SparseArray类型的参数

自定义 SparseArray 实现 SparseArray 接口,替代原有的SparseArray 。import android.os.Parcel;import android.os.Parcelable;import android.util.SparseArray;/** * * @param E> */public class SparseParcelableA

2017-03-22 23:07:45 2378 3

原创 android:maxLines="1"截取显示不全,用android:singleLine="true"解决

问题描述:1. android:maxLines="1", 只显示一个中文 2. android:singleLine="true", 正常显示 问题原因:Google Document 的解释:android:maxLines Makes the TextView be at most this many lines tall. androi

2017-03-21 22:52:37 4329

转载 为你的安卓应用实现自签名的 SSL 证书

英文原文:Android security - Implementation of Self-signed SSL certificate for your App.介绍网络安全已成为大家最关心的问题. 如果你利用服务器存储客户资料, 那你应该考虑使用 SSL 加密客户跟服务器之间的通讯. 随着这几年手机应用迅速崛起. 黑客也开始向手机应用转移, 原因有下列3点:

2017-03-19 17:45:10 489

转载 Java包装类的缓存

包装类同String类相似,也是非可变类,其对象一经创建,就不能修改。并且,包装类也重写了equals方法,对于相同类型的两个包装类对象,只要两个对象所包装的基本数据类型的值是相等的,则equals方法就会返回true,否则返回false。在使用“==”比较两个包装类引用时,如果两个引用指向的地址相同(指向相同的对象),则结果为true,否则结果为false。       包装类提供了对象的缓

2017-03-16 23:31:51 1523

原创 HttpsURLConnection请求https,抛出javax.net.ssl.SSLException: hostname in certificate didn't match:

解决办法:try { SSLContext sc = SSLContext.getInstance("TLS"); sc.init(null, new TrustManager[]{new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] chain, String aut

2017-03-16 23:08:24 2772

原创 HttpClient请求https,抛出javax.net.ssl.SSLException: hostname in certificate didn't match:

解决办法:SSLSocketFactory.getSocketFactory().setHostnameVerifier(new AllowAllHostnameVerifier());

2017-03-16 22:59:27 4352 1

转载 内存分析工具 MAT 的使用

1 内存泄漏的排查方法Dalvik Debug Monitor Server (DDMS) 是 ADT插件的一部分,其中有两项功能可用于内存检查 :·    heap 查看堆的分配情况·    allocation tracker跟踪内存分配情况DDMS 这两项功能有助于找到内存泄漏的操作行为。Eclipse Memory Analysis To

2017-03-12 18:08:17 232

转载 Android Studio +MAT 分析内存泄漏实战

对于内存泄漏,在Android中如果不注意的话,还是很容易出现的,尤其是在Activity中,比较容易出现,下面我就说下自己是如何查找内存泄露的。首先什么是内存泄漏?内存泄漏就是一些已经不使用的对象还存在于内存之中且垃圾回收机制无法回收它们,导致它们常驻内存,会使内存消耗越来越大,最终导致程序性能变差。 其中在Android虚拟机中采用的是根节点搜索算法枚举根节点判断是否是垃圾

2017-03-12 17:29:07 383

原创 Genymotion下载虚拟设备超时的问题

1.首先,找到存放genymotion相关log的目录:2.打开genymotion.log文件,找到如下日志信息后,复制URL进行下载:3.将下载的.oav文件,拷贝到如下目录:4.最后,重启Genymotion

2017-03-06 22:31:10 457

原创 Android 如何判断当前代码是否在主线程中执行

方法一:Looper.getMainLooper() == Looper.myLooper();方法二:Looper.getMainLooper().getThread() == Thread.currentThread();方法三:Looper.getMainLooper().getThread().getId() == Thread.currentThread().

2017-03-05 18:34:22 2907

空空如也

空空如也

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

TA关注的人

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