- 博客(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关注的人