- 博客(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
242
原创 shou shen ji hua
1. 删除无用资源,使用Lint;Analyze -> Run Inspection by Name -> Unused resources 2. 一些资源文件差别很小,比如箭头icon只是方向上的差别,这种资源可以通过代码手段处理得到,只需提供一份,不需要多份; 3.业务线提供的aar没有做混淆和代码压缩,导致业务线中没有被使用
2017-01-18 15:57:07
862
转载 网络框架的优缺点
网络框架AFinalhttps://github.com/yangfuhai/afinal优点:自动异步请求,不会造成主线程阻塞内部提供文件下载功能缺点:对HTTP请求没有任何缓存策略,不符合HTTP缓存协议不提供请求取消功能请求无优先级概念未修复HttpUrlConnection的BUGVolleyhttps://github.co
2017-01-18 15:54:56
2352
转载 Android性能优化之如何避免Overdraw
什么是Overdraw?Overdraw就是过度绘制,是指在一帧的时间内(16.67ms)像素被绘制了多次,理论上一个像素每次只绘制一次是最优的,但是由于重叠的布局导致一些像素会被多次绘制,而每次绘制都会对应到CPU的一组绘图命令和GPU的一些操作,当这个操作耗时超过16.67ms时,就会出现掉帧现象,也就是我们所说的卡顿,所以对重叠不可见元素的重复绘制会产生额外的开销,需要尽量减少Ove
2016-03-07 15:12:33
502
原创 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
829
原创 线程与进程的区别
线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的 地址空间;(2)进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源(3)线程是处理器调度的基本单位,但进程不是.(4)二者均可并发执行.
2015-12-23 11:41:18
395
原创 android Jvm 笔记。内存溢出。内存区域划分。垃圾回收气
native 溢出 也就是 direct memory 内存溢出 直接内存,不是虚拟机内存。是系统内存。是因为 申请的内存在 direct memory 中,垃圾回收进行时,会对 direct memory 进行回收。但是direct memory 不能像,新生代,老年代那样,发现内存控件不足了就通知收集器进行垃圾回收,他只能等待 老年代 满了后 Full GC,然后 “顺带着”帮
2015-08-26 18:02:55
998
原创 Android内存泄漏研究
概念根搜索算法Android虚拟机的垃圾回收采用的是根搜索算法。GC会从根节点(GC Roots)开始对heap进行遍历。到最后,部分没有直接或者间接引用到GC Roots的就是需要回收的垃圾,会被GC回收掉。根搜索算法相比引用计数法很好的解决了循环引用的问题。举个例子,Activity有View的引用,View也有Activity的引用,之前我还尝试去源代码里找Activity何时和
2015-08-19 16:56:03
1201
转载 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
3474
转载 Android应用setContentView与LayoutInflater加载解析机制源码分析
【工匠若水 http://blog.youkuaiyun.com/yanbober 转载烦请注明出处,尊重分享成果】1 背景其实之所以要说这个话题有几个原因:理解xml等控件是咋被显示的原理,通常大家写代码都是直接在onCreate里setContentView就完事,没怎么关注其实现原理。前面分析《Android触摸屏事件派发机制详解与源码分析三(Activity篇)》时提到了一些关
2015-08-04 11:16:08
569
原创 Android触摸屏事件派发机制详解与源码分析三(Activity篇)dispatchtouchevent,ontouch,ontouchevent,onclick
【工匠若水 http://blog.youkuaiyun.com/yanbober】该篇承接上一篇《Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)》,阅读本篇之前建议先阅读。
2015-08-04 11:11:23
592
原创 Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)dispatchtouchevent,ontouch,ontouchevent,onclick
【工匠若水 http://blog.youkuaiyun.com/yanbober】该篇承接上一篇《Android触摸屏事件派发机制详解与源码分析一(View篇)》,阅读本篇之前建议先阅读。当然,阅读完这一篇之后可以阅读继续进阶的下一篇《Android触摸屏事件派发机制详解与源码分析三(Activity篇)》。
2015-08-04 11:10:23
594
原创 Android触摸屏事件派发机制详解与源码分析一(View篇)onTouch,onClick,ontouchevent
PS一句:最终还是选择优快云来整理发表这几年的知识点,该文章平行迁移到优快云。因为优快云也支持MarkDown语法了,牛逼啊!【工匠若水 http://blog.youkuaiyun.com/yanbober】Notice:阅读完该篇之后如果想继续深入阅读Android触摸屏事件派发机制详解与源码分析下一篇请点击《Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)》
2015-08-04 11:06:02
472
原创 Annotation和xml各自作为配置项的优点与缺点。
Annotation和xml各自作为配置项的优点与缺点。 一、Annotation 的优点 1、保存在 class 文件中,降低维护成本。 2、无需工具支持,无需解析。 3、编译期即可验证正确性,查错变得容易。 4、提升开发效率。 Annotation 缺点: 1、若要对配置项进行修改,不得不修改 Java 文件,重新编译打包应用。 2、
2015-06-29 14:23:56
1858
原创 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
914
原创 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
759
转载 Android访问网络,使用HttpURLConnection还是HttpClient?
大多数的Android应用程序都会使用HTTP协议来发送和接收网络数据,而Android中主要提供了两种方式来进行HTTP操作,HttpURLConnection和HttpClient。这两种方式都支持HTTPS协议、以流的形式进行上传和下载、配置超时时间、IPv6、以及连接池等功能。HttpClientDefaultHttpClient和它的兄弟AndroidHt
2015-05-06 17:35:25
548
原创 Spannable简介,设置个别字的颜色、字体等
TextView和EditText是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,那就需要用到Spannable对象,可以借助Spannable对象实现以上设置。使用步骤:SpannableString spannable = new SpannableString(str);// SpannableStringBuilder sp
2015-04-10 15:08:17
922
转载 Volley框架的流程图分析
Volley框架的流程图分析 接着上一篇Volley框架的使用,这一篇主要主要讲Volley框架运作的原理。主要使用流程图来叙述,简单的分析了整个流程的过程,具体的请参考源代码或者查看我上一篇在文章末尾添上的链接。 一、Volley的准备生成一个RequestQueue的队列。 二、用户添加Request 三、阻塞线程
2015-03-30 17:56:59
143
转载 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
559
转载 Android应用开发:网络工具——Volley(一)
引言网络一直是我个人的盲点,前一阵子抽出时间学习了一下Volley网络工具的使用方法,也透过源码进行了进一步的学习,有一些心得想分享出来。在Android开发中,成熟的网络工具不少,Android自带了HttpClient,还有okhttp,还有koush大神创建的ion开源项目,然后就是google后来加入到Android项目源码中的Volley。为什么使用Volley,是因
2015-03-30 17:54:33
519
转载 Android应用开发:网络工具——Volley(二)
引言在Android应用开发:网络工具——Volley(一)中结合Cloudant服务介绍了Volley的一般用法,其中包含了两种请求类型StringRequest和JsonObjectRequest。一般的请求任务相信都可以通过他们完成了,不过在千变万化的网络编程中,我们还是希望能够对请求类型、过程等步骤进行完全的把控,本文就从Volley源码角度来分析一下,一个网络请求在Volley中
2015-03-30 17:53:49
615
原创 防止线程因系统休眠而挂起
Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); //设置线程可后台运行,不会因为系统休眠而挂起
2015-03-30 17:16:23
1536
原创 解决fragment嵌套fragment会崩溃的问题
/** * 这段可以解决fragment嵌套fragment会崩溃的问题 */ @Override public void onDetach() { super.onDetach(); try { //参数是固定写法 Field childFragmentManager
2015-03-03 14:49:07
1811
转载 Android Dimension转换算法原理分析
最近在做深度主题,要实现类似小米那种在主题包中设置dimension值,然后在系统中替换原值的功能。特地研究了一下Android系统中dimension类型的值的存储方式以及相关的转换算法。 在Android中,我们可以在values文件夹中定义各种资源,其中有一种就是dimension。dimension是一个包含单位(dp、dip、sp、pt、px、mm、in)
2015-01-29 16:07:03
815
原创 gitlab
https://github.com/wasabeef/awesome-android-ui#material 各种ui 效果。https://github.com/Trinea/android-open-project 各种ui 效果。
2015-01-07 19:13:26
492
转载 并发环境下延迟加载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
953
转载 Android 插件化 动态升级
最新内容请见原文:Android 插件化 动态升级 不少朋友私信以及 Android开源交流几个 QQ 群 中都问到这个问题,这里简单介绍下1、作用大多数朋友开始接触这个问题是因为 App 爆棚了,方法数超过了一个 Dex 最大方法数 65535 的上限,从这个介绍中也知道可以通过多个 Dex 来解决这个问题,因而便有了插件化的概念,将一个 App 划分为多个插
2014-10-22 17:23:45
584
转载 Android 动态加载(防止逆向编译)技术
最近工作中接到了一个研究防止逆向编译的任务.研究了几天资料,最后基本实现了防破解技术,在这个工程中,也略有一些心得体会,现整理下来分享,供大家探讨参考研究。文中如有纰漏、失实之处,请大家及时给与指正。 防破解技术主要有四种实现方式:1.代码混淆(ProGuard)技术 2.签名比对技术 3.NDK .so 动态库技术 4.动态加载技术. 参考
2014-09-18 14:49:53
715
转载 Android之ListView原理学习与优化总结
在整理前几篇文章的时候有朋友提出写一下ListView的性能优化方面的东西,这个问题也是小马在面试过程中被别人问到的…..今天小马就借此机会来整理下,网上类似的资料蛮多的,倒不如自己写一篇,记录在这个地方,供自己以后使用,不用再翻来翻去的找了,用自己写的…呵呵,不多讲其它了,说起优化我想大家第一反应跟小马一样吧?想到利用ViewHolder来优化ListView数据加载,仅仅就此一条吗?其实不是的
2014-08-14 17:25:17
461
转载 针对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
1408
转载 项目中listView常用属性设置
问题1: listview在拖动的时候背景图片消失变成黑色背景。等到拖动完毕我们自己的背景图片才显示出来。解决办法: xml中: android:scrollingCache="false" 或者 android:cacheColorHint="#00000000" 代码中: setScrollingCacheEnabled(fals
2014-07-09 15:17:40
580
转载 android自定义布局中的平滑移动
无意中搜索到这篇文章,大概扫了一眼,知道是篇好文,先转载记录下来学习!文章主要讲的是自定义view的写法心得。转自:http://www.apkbus.com/android-48445-1-1.html 在android应用程序的开发过程中,相信我们很多人都想把应用的交互做的比较绚丽,比如让界面切换平滑的滚动,还有热度灰常高的伪3D等界面效果,通常情况下,系统提供
2014-07-01 20:29:54
656
转载 android ui 优化
1、RelativeLayout 优于 LinearLayoutAndroid中最常用LinearLayout来表示UI的框架,而且也是最直观和方便的方法,例如创建一个UI用于展现Item的基本内容,如图所示: 线框示意图:通过LinearLayout实现以上UI的代码:Xml代码 android="http://schemas.android.com/
2014-05-21 17:53:22
574
转载 关于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
903
转载 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
792
转载 谷歌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
943
转载 ANDROID 探究oom内幕
从早期G1的192MB RAM开始,到现在动辄1G -2G RAM的设备,为单个App分配的内存从16MB到48MB甚至更多,但OOM从不曾离我们远去。这是因为大部分App中图片内容占据了50%甚至75%以上,而App内容的极大丰富,所需的图片越来越多,屏幕尺寸也越来越大分辨率也越来越高,所需的图片的大小也跟着往上涨,这在大屏手机和平板上尤其明显。而且还经常要兼容低版本的设备。所以Android的
2014-02-20 11:45:56
824
MINA框架中原生态心跳支持
2012-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人