自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 资源 (4)
  • 收藏
  • 关注

原创 git 命令

1、查看远程仓库地址            git remote -v2、查看远程分支 只显示 远程分支/  带提交记录          git branch -r / git branch -rv3、只查看本地分支 /  查本地和远程 所有的,无对应关系           git branch / git branch -a4、查看本地分支 带了最近一次提交记录g...

2018-09-05 11:10:00 184

原创 shou shen ji hua

1. 删除无用资源,使用Lint;Analyze -> Run Inspection by Name -> Unused resources 2. 一些资源文件差别很小,比如箭头icon只是方向上的差别,这种资源可以通过代码手段处理得到,只需提供一份,不需要多份;     3.业务线提供的aar没有做混淆和代码压缩,导致业务线中没有被使用

2017-01-18 15:57:07 795

转载 网络框架的优缺点

网络框架AFinalhttps://github.com/yangfuhai/afinal优点:自动异步请求,不会造成主线程阻塞内部提供文件下载功能缺点:对HTTP请求没有任何缓存策略,不符合HTTP缓存协议不提供请求取消功能请求无优先级概念未修复HttpUrlConnection的BUGVolleyhttps://github.co

2017-01-18 15:54:56 2262

转载 Android性能优化之如何避免Overdraw

什么是Overdraw?Overdraw就是过度绘制,是指在一帧的时间内(16.67ms)像素被绘制了多次,理论上一个像素每次只绘制一次是最优的,但是由于重叠的布局导致一些像素会被多次绘制,而每次绘制都会对应到CPU的一组绘图命令和GPU的一些操作,当这个操作耗时超过16.67ms时,就会出现掉帧现象,也就是我们所说的卡顿,所以对重叠不可见元素的重复绘制会产生额外的开销,需要尽量减少Ove

2016-03-07 15:12:33 464

原创 Android中RelativeLayout和LinearLayout性能分析

先看一些现象吧:用eclipse或者Android studio,新建一个Activity自动生成的布局文件都是RelativeLayout,或许你会认为这是IDE的默认设置问题,其实不然,这是由 android-sdk\tools\templates\activities\BlankActivity\root\res\layout\activity_simple.xml.ftl 这个文件事先就定

2016-03-07 14:43:05 789

原创 线程与进程的区别

线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的 地址空间;(2)进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源(3)线程是处理器调度的基本单位,但进程不是.(4)二者均可并发执行.

2015-12-23 11:41:18 359

原创 android Jvm 笔记。内存溢出。内存区域划分。垃圾回收气

native 溢出 也就是 direct memory 内存溢出 直接内存,不是虚拟机内存。是系统内存。是因为 申请的内存在 direct memory 中,垃圾回收进行时,会对 direct memory 进行回收。但是direct memory 不能像,新生代,老年代那样,发现内存控件不足了就通知收集器进行垃圾回收,他只能等待 老年代 满了后 Full GC,然后 “顺带着”帮

2015-08-26 18:02:55 959

原创 Android内存泄漏研究

概念根搜索算法Android虚拟机的垃圾回收采用的是根搜索算法。GC会从根节点(GC Roots)开始对heap进行遍历。到最后,部分没有直接或者间接引用到GC Roots的就是需要回收的垃圾,会被GC回收掉。根搜索算法相比引用计数法很好的解决了循环引用的问题。举个例子,Activity有View的引用,View也有Activity的引用,之前我还尝试去源代码里找Activity何时和

2015-08-19 16:56:03 1153

转载 JAVA中有关byte,int,long这些基本数据类型的存储方式以及负数在JAVA中的表示方式

Java 定义的位运算(bitwise operators )直接对整数类型的位进行操作,这些整数类型包括long,int,short,char,and byte 。表4-2 列出了位运算: 表4.2 位运算符及其结果 运算符 结果 ~ 按位非(NOT)(一元运算) & 按位与(AND) | 按位或(OR) ^ 按位异或(XOR) >> 右移 >>> 右移,左边

2015-08-17 16:48:13 3387

转载 Android应用setContentView与LayoutInflater加载解析机制源码分析

【工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处,尊重分享成果】1 背景其实之所以要说这个话题有几个原因:理解xml等控件是咋被显示的原理,通常大家写代码都是直接在onCreate里setContentView就完事,没怎么关注其实现原理。前面分析《Android触摸屏事件派发机制详解与源码分析三(Activity篇)》时提到了一些关

2015-08-04 11:16:08 539

原创 Android触摸屏事件派发机制详解与源码分析三(Activity篇)dispatchtouchevent,ontouch,ontouchevent,onclick

【工匠若水 http://blog.csdn.net/yanbober】该篇承接上一篇《Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)》,阅读本篇之前建议先阅读。

2015-08-04 11:11:23 548

原创 Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)dispatchtouchevent,ontouch,ontouchevent,onclick

【工匠若水 http://blog.csdn.net/yanbober】该篇承接上一篇《Android触摸屏事件派发机制详解与源码分析一(View篇)》,阅读本篇之前建议先阅读。当然,阅读完这一篇之后可以阅读继续进阶的下一篇《Android触摸屏事件派发机制详解与源码分析三(Activity篇)》。

2015-08-04 11:10:23 553

原创 Android触摸屏事件派发机制详解与源码分析一(View篇)onTouch,onClick,ontouchevent

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!【工匠若水 http://blog.csdn.net/yanbober】Notice:阅读完该篇之后如果想继续深入阅读Android触摸屏事件派发机制详解与源码分析下一篇请点击《Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)》

2015-08-04 11:06:02 434

原创 Annotation和xml各自作为配置项的优点与缺点。

Annotation和xml各自作为配置项的优点与缺点。  一、Annotation 的优点   1、保存在 class 文件中,降低维护成本。   2、无需工具支持,无需解析。   3、编译期即可验证正确性,查错变得容易。   4、提升开发效率。  Annotation 缺点:   1、若要对配置项进行修改,不得不修改 Java 文件,重新编译打包应用。   2、

2015-06-29 14:23:56 1756 1

原创 java: 复制文件最快方法

利用Java复制文件到处都可以用到,这里总结了一个类供大家参考。里面总共有两个方法: public static boolean copyFile(String srcFileName, String destFileName,boolean overlay); public static boolean copyDirectory(String srcDirName, String

2015-06-13 16:29:10 881

原创 ViewHolder的经典用法<SparseArray>

今天在看项目代码的时候,发现了一个经典的viewHolder用法。抽象出了一种经典的存储view的方法[java] view plaincopypublic class ViewHolder {  // I added a generic return type to reduce the casting 

2015-05-20 15:56:56 727

转载 Android访问网络,使用HttpURLConnection还是HttpClient?

大多数的Android应用程序都会使用HTTP协议来发送和接收网络数据,而Android中主要提供了两种方式来进行HTTP操作,HttpURLConnection和HttpClient。这两种方式都支持HTTPS协议、以流的形式进行上传和下载、配置超时时间、IPv6、以及连接池等功能。HttpClientDefaultHttpClient和它的兄弟AndroidHt

2015-05-06 17:35:25 508

原创 Spannable简介,设置个别字的颜色、字体等

TextView和EditText是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,那就需要用到Spannable对象,可以借助Spannable对象实现以上设置。使用步骤:SpannableString spannable = new SpannableString(str);// SpannableStringBuilder sp

2015-04-10 15:08:17 886

转载 Volley框架的流程图分析

Volley框架的流程图分析      接着上一篇Volley框架的使用,这一篇主要主要讲Volley框架运作的原理。主要使用流程图来叙述,简单的分析了整个流程的过程,具体的请参考源代码或者查看我上一篇在文章末尾添上的链接。 一、Volley的准备生成一个RequestQueue的队列。  二、用户添加Request   三、阻塞线程

2015-03-30 17:56:59 107

转载 Volley 源码解析

转自:https://github.com/android-cn/android-open-project-analysis/tree/master/volleyVolley 源码解析本文为 Android 开源项目源码解析 中 Volley 部分项目地址:Volley,分析的版本:35ce778,Demo 地址:Volley Demo分析者:grumoon,校

2015-03-30 17:56:01 515

转载 Android应用开发:网络工具——Volley(一)

引言网络一直是我个人的盲点,前一阵子抽出时间学习了一下Volley网络工具的使用方法,也透过源码进行了进一步的学习,有一些心得想分享出来。在Android开发中,成熟的网络工具不少,Android自带了HttpClient,还有okhttp,还有koush大神创建的ion开源项目,然后就是google后来加入到Android项目源码中的Volley。为什么使用Volley,是因

2015-03-30 17:54:33 488

转载 Android应用开发:网络工具——Volley(二)

引言在Android应用开发:网络工具——Volley(一)中结合Cloudant服务介绍了Volley的一般用法,其中包含了两种请求类型StringRequest和JsonObjectRequest。一般的请求任务相信都可以通过他们完成了,不过在千变万化的网络编程中,我们还是希望能够对请求类型、过程等步骤进行完全的把控,本文就从Volley源码角度来分析一下,一个网络请求在Volley中

2015-03-30 17:53:49 574

原创 防止线程因系统休眠而挂起

Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); //设置线程可后台运行,不会因为系统休眠而挂起

2015-03-30 17:16:23 1478

原创 解决fragment嵌套fragment会崩溃的问题

/**     * 这段可以解决fragment嵌套fragment会崩溃的问题     */    @Override    public void onDetach() {        super.onDetach();        try {            //参数是固定写法            Field childFragmentManager

2015-03-03 14:49:07 1756

转载 Android Dimension转换算法原理分析

最近在做深度主题,要实现类似小米那种在主题包中设置dimension值,然后在系统中替换原值的功能。特地研究了一下Android系统中dimension类型的值的存储方式以及相关的转换算法。 在Android中,我们可以在values文件夹中定义各种资源,其中有一种就是dimension。dimension是一个包含单位(dp、dip、sp、pt、px、mm、in)

2015-01-29 16:07:03 762

原创 gitlab

https://github.com/wasabeef/awesome-android-ui#material  各种ui 效果。https://github.com/Trinea/android-open-project  各种ui 效果。

2015-01-07 19:13:26 463

转载 并发环境下延迟加载Singleton实例的终极方案:Initialization-on-demand holder idiom

相信你对这个问题已经很熟悉了:并发环境下如何延迟加载Singleton Instance ? Java代码  public class Expensive {      private static Expensive instance;    p    public static Expensive getInstance() {         

2014-11-19 17:32:58 911

转载 Android 插件化 动态升级

最新内容请见原文:Android 插件化 动态升级 不少朋友私信以及 Android开源交流几个 QQ 群 中都问到这个问题,这里简单介绍下1、作用大多数朋友开始接触这个问题是因为 App 爆棚了,方法数超过了一个 Dex 最大方法数 65535 的上限,从这个介绍中也知道可以通过多个 Dex 来解决这个问题,因而便有了插件化的概念,将一个 App 划分为多个插

2014-10-22 17:23:45 545

转载 Android 动态加载(防止逆向编译)技术

最近工作中接到了一个研究防止逆向编译的任务.研究了几天资料,最后基本实现了防破解技术,在这个工程中,也略有一些心得体会,现整理下来分享,供大家探讨参考研究。文中如有纰漏、失实之处,请大家及时给与指正。           防破解技术主要有四种实现方式:1.代码混淆(ProGuard)技术 2.签名比对技术 3.NDK  .so 动态库技术 4.动态加载技术.          参考

2014-09-18 14:49:53 678

转载 Android之ListView原理学习与优化总结

在整理前几篇文章的时候有朋友提出写一下ListView的性能优化方面的东西,这个问题也是小马在面试过程中被别人问到的…..今天小马就借此机会来整理下,网上类似的资料蛮多的,倒不如自己写一篇,记录在这个地方,供自己以后使用,不用再翻来翻去的找了,用自己写的…呵呵,不多讲其它了,说起优化我想大家第一反应跟小马一样吧?想到利用ViewHolder来优化ListView数据加载,仅仅就此一条吗?其实不是的

2014-08-14 17:25:17 437

转载 针对android方法数64k的限制,square做出的努力。精简protobuf

1、早期的Dalvik VM内部使用short类型变量来标识方法的id,dex限制了程序的最大方法数是65535,如果超过最大限制,无法编译,把dex.force.jumbo=true添加到project.properties文件中可以通过编译,在低端手机无法安装,报错误INSTALL_FAILED_DEXOPT。2、dex文件解决8M时,低端机安装也会出现INSTALL_FAILED_D

2014-07-10 11:17:55 1361 1

转载 项目中listView常用属性设置

问题1:       listview在拖动的时候背景图片消失变成黑色背景。等到拖动完毕我们自己的背景图片才显示出来。解决办法:      xml中: android:scrollingCache="false"  或者 android:cacheColorHint="#00000000"     代码中: setScrollingCacheEnabled(fals

2014-07-09 15:17:40 547

转载 android自定义布局中的平滑移动

无意中搜索到这篇文章,大概扫了一眼,知道是篇好文,先转载记录下来学习!文章主要讲的是自定义view的写法心得。转自:http://www.apkbus.com/android-48445-1-1.html 在android应用程序的开发过程中,相信我们很多人都想把应用的交互做的比较绚丽,比如让界面切换平滑的滚动,还有热度灰常高的伪3D等界面效果,通常情况下,系统提供

2014-07-01 20:29:54 609

转载 android ui 优化

1、RelativeLayout 优于 LinearLayoutAndroid中最常用LinearLayout来表示UI的框架,而且也是最直观和方便的方法,例如创建一个UI用于展现Item的基本内容,如图所示: 线框示意图:通过LinearLayout实现以上UI的代码:Xml代码   android="http://schemas.android.com/

2014-05-21 17:53:22 545

原创 apidemos 实例解析

http://www.2cto.com/special/ApiDemos/

2014-03-25 11:44:42 689

转载 关于ADT 17的BuildConfig.DEBUG

在日常开发中,我们使用android.util.Log来打印日志,方便我们的开发调试。但是在打包发布时,需要手工把Log关闭,多少会有些不便,而且不排除打包者忘记关闭Log的情况。那么有没有更好的方法来帮助开发者解决这个问题?      ADT(r17)发布以后,Google为我们提供了一种新的调试机制,即BuildConfig.DEBUG。      ADT 17.0.0的New

2014-03-05 11:52:24 835 1

转载 ADB用法

ADB用法  2012-04-01 12:47:20|  分类: 默认分类|举报|字号 订阅ADB (Android Debug Bridge)说明:下面一些命令需要有root权限才能执行成功快速启动dos窗口执行adb:1. adb.exe所在路径添加到系统环境变量中2. 配置快捷键启动dos进入C:\WINDOWS\system32目录下,找到

2014-02-27 11:05:33 749

原创 adb Android中如何查看内存

adb shell getpropadb logcat >>

2014-02-27 10:56:42 3623

转载 谷歌Volley网络框架讲解——HttpStack及其实现类

HttpStack有两个实现类。其中HttpCliantStack是在2.3以下使用,Hurl是在2.3以上使用,这样分开的原因谷歌给了注释。12// Prior to Gingerbread, HttpUrlConnection was unreliable. // See: http://android-developers.b

2014-02-20 16:28:12 898

转载 ANDROID 探究oom内幕

从早期G1的192MB RAM开始,到现在动辄1G -2G RAM的设备,为单个App分配的内存从16MB到48MB甚至更多,但OOM从不曾离我们远去。这是因为大部分App中图片内容占据了50%甚至75%以上,而App内容的极大丰富,所需的图片越来越多,屏幕尺寸也越来越大分辨率也越来越高,所需的图片的大小也跟着往上涨,这在大屏手机和平板上尤其明显。而且还经常要兼容低版本的设备。所以Android的

2014-02-20 11:45:56 779

android内存管理-MAT与防范手段

介绍android内存管理-MAT与防范手段

2013-12-31

android事件分发源码

android事件分发源码

2013-05-19

MINA框架中原生态心跳支持

MINA本身自带了对心跳协议的支持,可以对心跳做出细致的配置,昨天仔细研究了一下MINA的API文档,翻译了一下其中心跳的内容(翻译的不好请大家见谅),做了一个测试例子。和需要用到MINA此功能的同行一起探讨一下。

2012-06-17

listView中多个listItem布局时,convertView缓存及使用

listView中多个listItem布局时,convertView缓存及使用

2012-05-24

空空如也

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

TA关注的人

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