自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Freeline 让AndroidStudio快的飞起来

你的AndroidStudio编译时是否很卡?你的Gradle编译时是否很慢,运行一次要等10分钟?如果你还没有遇到,那可能说明你的电脑配置够好,或者项目还不够大。版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com尤其像我这种公司电脑配置渣,还是机械硬盘的开发者肯定是忍不了的,太影响开发效率了,所以我们就想办法加快编译速度了,当然加快编译的手段有很多种...

2017-06-01 00:07:56 599

转载 简单直白教你理解Java中四大引用强引用,软引用,弱引用,虚引用

我属于自学型的,所以知识不够系统,只能是一边儿工作一边查漏补缺,在此要对那些写技术文章的人由衷的说句谢谢,谢谢各位大神们的分享ONE,强引用(StrongReference)概念介绍:在此说明一下,StrongReference只是对强引用的一个称呼,但是强引用没有对应的实体类。使用强引用的对象就算是内存出现outofmemory(内存溢出)的异常也不会回收。也就是

2017-05-03 23:54:50 442

原创 Weex 报 throw new Error('resolve path error:'+this.path) 的解决办法

解决办法:1. 卸载使用 cnpm 安载的 weex-toolkitcnpm uninstall -g weex-toolkit2. 使用 npm 重新安装,不要用 cnpmnpm install -g weex-toolkit

2017-05-01 10:42:09 2221

转载 android studio 调试技巧

说到android studio的调试,很多人可能会说,这有什么可讲的不就是一个断点调试么,刚开始我也是这么认为的,直到我了解之后,才发现,调试原来可以玩的这么牛。下面我分别一一做介绍。条件断点(Conditional Breakpoints)这个调试模式是我最喜欢的,简直不能再方便了,以前遇到在循环里面打断点,需要看某个条件下的值,我只能一遍遍点击,直到满足条件。那么这个条件

2017-04-28 23:53:07 446

原创 NavigationView: No resource identifier found for attribute '***' in package

错误信息:解决办法:     在build.gradle中,添加对material design 控件的支持。

2017-04-23 20:18:39 274

转载 webview注入js方法

Android中向webview注入js代码可以通过webview.loadUrl("javascript:xxx")来实现,然后就会执行javascript后面的代码。但是当需要注入一整个js文件的时候,貌似就有点麻烦了。不过理清以下思路,方法其实也很简单,如下:我们通过在webview的onPageFinished方法中执行js代码注入:第一种:当webview加载

2017-04-21 22:49:33 6572

原创 华为和魅族手机不输出Log打印

华为拨号盘,输入*#*#2846579#*#* –>【工程菜单】–>【后台设置】–>【LOG设置】–>勾选【AP日志】魅族【设置】–>【开发者选项】–>【性能优化】–>【高级日志输出】–>【全部允许】

2017-04-17 23:31:43 658

原创 Bitmap毛边问题

一、Bitmap转为Base64字符串a) Bitmap按照JPEG格式转码try { ByteArrayOutputStream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out); byte[] imgByte = out.toByteArray(); retu

2017-04-17 22:40:12 1003

原创 Python代码执行过程

2017-04-17 19:35:49 1154

原创 Python语言特点

2017-04-17 19:32:51 2364

转载 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 1423

原创 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 2516

原创 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 1528

原创 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 2773

原创 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

转载 Android客户端性能优化(魅族资深工程师毫无保留奉献)

众所周知,一个好的产品,除了功能强大,好的性能也必不可少。有调查显示,近90%的受访者会因为APP性能差而卸载,性能也是造成APP用户沮丧的头号原因。那Android客户端性能的指标都有哪些?如何发现和定位客户端的性能问题?本文结合多个项目的开发实践,给出了要关注的重要指标项目,以及定位和解决性能问题的一般步骤。性能优化应该贯穿于功能开发的全部周期,而不是做完一次后面便不再关注。每

2017-02-19 22:01:54 600

转载 如何合理地估算线程池大小?

如何合理地估算线程池大小?这个问题虽然看起来很小,却并不那么容易回答。大家如果有更好的方法欢迎赐教,先来一个天真的估算方法:假设要求一个系统的TPS(Transaction Per Second或者Task Per Second)至少为20,然后假设每个Transaction由一个线程完成,继续假设平均每个线程处理一个Transaction的时间为4s。那么问题转化为:如何设计线程

2017-02-19 13:23:02 428

原创 Android实现Banner轮播效果

一、动态布局纯粹为了保持代码风格的一致性,也可以用xml布局来实现。private View createBannerView() { LinearLayout bannerLayout = new LinearLayout(mContext); bannerLayout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParam

2017-02-08 23:25:31 2502

转载 单例中引用Context导致内存泄漏的问题

1、Context概念其实一直想写一篇关于Context的文章,但是又怕技术不如而误人子弟,于是参考了些资料,今天准备整理下写出来,如有不足,请指出,参考资料会在醒目地方标明。Context,相信不管是第一天开发Android,还是开发Android的各种老鸟,对于Context的使用一定不陌生~~你在加载资源、启动一个新的Activity、获取系统服务、获取内部文件(夹)路径、创

2017-01-03 23:59:50 5962 5

原创 Gradle 3.0+ Sync失败问题

方法一:将gradle的版本降为2.0+方法二:gradle插件的版本和AS版本保持一致

2016-12-26 23:37:34 1980

转载 如何查看jar包的jdk版本

查看.jar包中的META-INF\MANIFEST.MF用7-zip打开.jar包,查看META-INF\MANIFEST.MF中的内容,Build-Jdk属性就是JDK的版本,比如:Build-Jdk: 1.5.0_2211说明其JDK版本为1.5.0.22。 注意:一个.jar文件中,如果没有这个字段,就必须通过下面一种方法来查看通过反编译.class文件来查

2016-12-20 23:33:53 14148

原创 Unknown verification type [*] in stack map frame

1. 下载Ant和Proguard源码  Ant官网: http://ant.apache.org  Proguard官网: https://www.guardsquare.com/en/proguard2. 修改Proguard源码: src/proguard/classfile/ClassConstants.java   将ATTR_Stac

2016-12-20 23:21:22 1687

原创 Android中自定义的attr属性,报重定义的问题

1.单模块冲突①方法一:重命名相同的attr属性名;②方法二:提取重复定义的attr,作为公共属性。在declare-stylable节点内,直接调用即可:2.多模块冲突由于按功能定义的attr属性,全部重新命名不太现实,所以在定义各模块的attr属性时,加上模块前缀:

2016-12-17 22:55:04 2311

原创 Gradle编译出现OOM错误

在build.gradle文件中,配置dexOptions的javaMaxHeapSize大小:

2016-12-17 21:59:12 1841 1

原创 查看Android App中的方法/变量数的方法

一、dexdump命令#查看apk的method总数dexdump -f app.apk | grep method_ids_size#查看apk的field总数dexdump -f app.apk | grep field_ids_size      只是对单个dex的统计。如果在apk中有多个dex,则只会计算classes.dex的

2016-12-11 23:59:06 1219

转载 其实你不知道MultiDex到底有多坑

遭遇MultiDex愉快地写着Android代码的总悟君往工程里引入了一个默默无闻的jar然后Run了一下, 经过漫长的等待AndroidStudio构建失败了。于是总悟君带着疑惑查看错误信息。UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: method ID not in [0, 0xffff

2016-12-11 15:34:42 619

原创 Gradle离线配置

1. 先在Gradle官网下载最新的离线zip压缩包。https://gradle.org/2. 将下载的zip压缩包,保存到本地磁盘下的目录中。3. 修改(gradle/wrapper/gradle-wrapper.properties)中的distributionUrl,使其指向zip压缩包的本地路径。4. 修改 File->Settings->

2016-11-30 23:44:17 12165 2

原创 App在Luancher上生成2个图标

1. 在AndroidManifest.xml文件中添加了两个intent-filter的LAUNCHER,或者在作为library的module的AndroidManifest.xml文件中也添加了intent-filter的LAUNCHER。                           android:name="android.intent.action.MAIN"

2016-11-27 00:24:09 425

原创 实现Splash页的正确方式, 解决启动闪屏现象(一)

1. 由于系统加载Activity的时候,首先会读取Activity的Theme,然后根据Theme中的配置来绘制,当Activity加载完毕后,才会替换为真正的界面。所以这里通过android:windowBackground属性,来进行加载前的配置。另外,由于在现有的Theme.Appcompat系列中不包含NoTitleBar一类的Theme,所以在这里自定义全屏、无标题栏的Theme。

2016-11-26 20:49:18 1539

原创 java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

1. 在报错的代码之前,调用Looper.prepare(),给线程创建消息循环。2. 在报错的代码之后,调用Looper.loop(),使消息循环起作用。

2016-11-26 18:47:25 320

原创 第三发jar包或者aar包混淆:can't find superclass or interface

-dontwarn和-keep 结合使用,保证com.xx.yy.**包里的所有类和所有方法不被混淆。-dontwarn com.xx.yy.**-keep class com.xx.yy.** { *;}

2016-11-24 21:59:36 1141

空空如也

空空如也

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

TA关注的人

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