![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 57
JohnnyYin
这个作者很懒,什么都没留下…
展开
-
Android中使用IconFont代替icon,减小app体积
现在网页中使用IconFont已经开始流行,比如新版的淘宝首页,以及36kr等。使用IconFont的好处是可以大量节省资源,同时可以无损缩放,web中减少图片请求。缺点是由于和文字一样,只支持纯色或渐变色,所以颜色上比较单一。其实在App开发中同样可以使用IconFont,尤其Win8推出后开始刮起的“扁平风”,对于一些icon,完全可以使用纯色的IconFont代替。什么是IconFo原创 2013-10-15 16:59:16 · 1580 阅读 · 0 评论 -
修改Android Gradle plugin的aapt路径
最近在做一套Andorid插件化方案,在解决资源id冲突的问题时,采用的是修改aapt的方式来做的,修改aapt的方式遇到的最大的问题就是编译插件的时候得替换sdk中的aapt,或者采用自己写的脚本来编译,这样开发过程肯定是很不方便的。因此本文尝试在Gradle plugin上修改aapt路径。原创 2016-07-26 16:50:02 · 3426 阅读 · 5 评论 -
Android模拟后台进程被杀
Android开发中,有时候我们需要测试下后台进程被杀,然后重新进入App时恢复现场的case。如果采用填充内存的方式,比较麻烦,下面介绍几种快速模拟后台进程被杀的方式:原创 2016-06-30 10:10:48 · 10770 阅读 · 0 评论 -
ApplicationContext、ActivityContext、ViewContext和ContextImpl(BaseContext)的区别
ContextWrapperContextWrapper 是 ContextImpl(也就是BaseContext) 的包装,所有对 ContextWrapper 的操作都会用代理到 BaseContext 上。Application和Activity和Service都继承自ContextWrapperandroid.content.ContextWrapper#getApplicationC原创 2015-11-21 12:31:53 · 2349 阅读 · 1 评论 -
Android中Touch事件分发过程全解析
分发过程 首先事件从native分发,会传递给 ViewRootImpl.WindowInputEventReceiver.onInputEvent ,然后会经过ViewRootImpl的分发到DecorView,DecorView会根据之前给Window设置的CallBack(具体可以参考Activity的启动过程系列文章),也就是Activity,会调用Activity的dispatchTouc原创 2015-10-29 12:01:31 · 513 阅读 · 0 评论 -
1px图片的Crash
问题描述最近在项目中遇到一个奇葩的Crash,在创建bitmap时Crash,log如下:java.lang.IllegalArgumentException: width and height must be > 0原创 2015-09-30 12:25:44 · 561 阅读 · 0 评论 -
Selector的一个坑
创建selector时,有个小坑,就是默认没有指明任何状态的item必须写在末尾。因为系统会拿第一个item去匹配当前状态,如果没有指明state的item放在第一个的话,会匹配任何state,会造成与实际期望的效果不符合的情况。 参考:http://developer.android.com/intl/zh-cn/guide/topics/resources/drawable-resource.原创 2015-08-09 14:52:28 · 584 阅读 · 0 评论 -
解决Android5.0 ListView快速滚动后,接近顶部时滚动方向反向的bug
issue描述:https://code.google.com/p/android/issues/detail?id=159739 原因:ListView内部的一个bug,在接近顶部时,mFirstPosition提前变为0,导致其他根据mFirstPosition来判断的逻辑错误,从而引发滚动事件异常。原创 2015-07-06 20:13:33 · 866 阅读 · 0 评论 -
Java中隐藏的this变量和局部变量可能引发的内存泄露问题
背景众所周知,在Java中,成员方法内可以使用this来引用当前对象,使用起来特别方便。但是在JVM中方法是在方法区中,所有的类的对象都共用了一个方法区,那么JVM是怎么知道this是指向哪个对象的呢? 其实为了实现这一功能,Java的处理方式很简单,在编译时,为每个成员方法都默默的添加了一个参数this,当调用这个方法时,把当前对象以参数的形式传进去即可。原创 2015-07-13 12:40:13 · 843 阅读 · 0 评论 -
内部类对宿主类private成员的访问
摘自http://developer.android.com/intl/zh-cn/training/articles/perf-tips.html#PackageInner原创 2015-07-05 18:59:17 · 612 阅读 · 0 评论 -
Apk安装过程分析
Apk安装过程分析原创 2015-07-11 22:18:14 · 924 阅读 · 0 评论 -
Fragment实例化,Fragment生命周期源码分析
结论:1、Fragment必须有空构造,否则无法被实例化。2、Fragment生命周期:Activity.onCreate->Fragment.onAttach->Fragment.onCreate->Fragment.onCreateView->Fragment.onViewCreated->Activity.onStart->Fragment.onActivityCrea原创 2015-05-19 21:01:44 · 1017 阅读 · 0 评论 -
Ubuntu15.04下编译Android5.1源码
编译环境ubuntu:ubuntu-15.04-desktop-amd64 android:android-5.1.0_r3 硬盘空间100G,最好预留比较多的硬盘空间,就算不设置ccache,编译完后都差不多占用了47G。原创 2015-05-30 22:21:52 · 1376 阅读 · 0 评论 -
Mac下安装OpenGrok
OpenGrok一个快速、便于使用的源代码搜索与对照引擎。它帮助你搜索,对照,定位你的源代码树。它能够明白各种程序文件格式和版本控制历史记录如SCCS,RCS,CVS与Subversion。OpenGrok是OpenSolaris操作系统源文件浏览和搜索的工具。原创 2015-05-28 14:27:05 · 2975 阅读 · 0 评论 -
Android UI控件大全
关注这个github即可,各种UI控件库https://github.com/wasabeef/awesome-android-ui原创 2015-05-13 19:12:46 · 1362 阅读 · 0 评论 -
Android动画执行过程源码分析
1、View.startAnimation public void startAnimation(Animation animation) { animation.setStartTime(Animation.START_ON_FIRST_FRAME); setAnimation(animation); invalidateParentCa原创 2015-05-09 20:56:37 · 830 阅读 · 0 评论 -
Java中内部类的内存泄露问题
package com.example.temptemp;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.widget.TextView;public class SecondActivity extends Activity { byte[原创 2015-05-10 15:29:46 · 4056 阅读 · 2 评论 -
解决QQ登录SDK不能网页授权登录的问题
现象QQ登录SDK在用户设备没有安装手机QQ客户端的情况下,默认是会调起网页授权的,但是可能是因为腾讯的某些限制,新申请的app_id都无法使用网页授权,打开后有些是跳转到下载手Q页面,有些是一直显示“正在打开授权登录页…原创 2016-06-28 11:09:35 · 11965 阅读 · 0 评论