- 博客(20)
- 收藏
- 关注
原创 修改Android Gradle plugin的aapt路径
最近在做一套Andorid插件化方案,在解决资源id冲突的问题时,采用的是修改aapt的方式来做的,修改aapt的方式遇到的最大的问题就是编译插件的时候得替换sdk中的aapt,或者采用自己写的脚本来编译,这样开发过程肯定是很不方便的。因此本文尝试在Gradle plugin上修改aapt路径。
2016-07-26 16:50:02 3496 5
原创 Android模拟后台进程被杀
Android开发中,有时候我们需要测试下后台进程被杀,然后重新进入App时恢复现场的case。如果采用填充内存的方式,比较麻烦,下面介绍几种快速模拟后台进程被杀的方式:
2016-06-30 10:10:48 10834
原创 解决QQ登录SDK不能网页授权登录的问题
现象QQ登录SDK在用户设备没有安装手机QQ客户端的情况下,默认是会调起网页授权的,但是可能是因为腾讯的某些限制,新申请的app_id都无法使用网页授权,打开后有些是跳转到下载手Q页面,有些是一直显示“正在打开授权登录页…
2016-06-28 11:09:35 12132
原创 ApplicationContext、ActivityContext、ViewContext和ContextImpl(BaseContext)的区别
ContextWrapperContextWrapper 是 ContextImpl(也就是BaseContext) 的包装,所有对 ContextWrapper 的操作都会用代理到 BaseContext 上。Application和Activity和Service都继承自ContextWrapperandroid.content.ContextWrapper#getApplicationC
2015-11-21 12:31:53 2376 1
原创 Android中Touch事件分发过程全解析
分发过程 首先事件从native分发,会传递给 ViewRootImpl.WindowInputEventReceiver.onInputEvent ,然后会经过ViewRootImpl的分发到DecorView,DecorView会根据之前给Window设置的CallBack(具体可以参考Activity的启动过程系列文章),也就是Activity,会调用Activity的dispatchTouc
2015-10-29 12:01:31 526
原创 1px图片的Crash
问题描述最近在项目中遇到一个奇葩的Crash,在创建bitmap时Crash,log如下:java.lang.IllegalArgumentException: width and height must be > 0
2015-09-30 12:25:44 572
原创 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 599
原创 Java中隐藏的this变量和局部变量可能引发的内存泄露问题
背景众所周知,在Java中,成员方法内可以使用this来引用当前对象,使用起来特别方便。但是在JVM中方法是在方法区中,所有的类的对象都共用了一个方法区,那么JVM是怎么知道this是指向哪个对象的呢? 其实为了实现这一功能,Java的处理方式很简单,在编译时,为每个成员方法都默默的添加了一个参数this,当调用这个方法时,把当前对象以参数的形式传进去即可。
2015-07-13 12:40:13 874
原创 解决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 883
原创 内部类对宿主类private成员的访问
摘自http://developer.android.com/intl/zh-cn/training/articles/perf-tips.html#PackageInner
2015-07-05 18:59:17 629
原创 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 1387
原创 Windows、Ubuntu双系统下,给Ubuntu增加磁盘空间
因为本人安装的是Windows,Ubuntu双系统,所以当时给Ubuntu分配的空间比较小,现在想在Ubuntu下编译Android Rom,但是AOSP代码就是几十G,空间严重不够,因此,准备给Ubuntu增加磁盘空间。
2015-05-30 16:43:05 21461 4
原创 Mac下安装OpenGrok
OpenGrok一个快速、便于使用的源代码搜索与对照引擎。它帮助你搜索,对照,定位你的源代码树。它能够明白各种程序文件格式和版本控制历史记录如SCCS,RCS,CVS与Subversion。OpenGrok是OpenSolaris操作系统源文件浏览和搜索的工具。
2015-05-28 14:27:05 3004
原创 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 1037
原创 Android Studio中忽略目录不显示在Project文件列表中
在Android Studio中,有时一个Projcet下Module比较多,可能有些不需要显示,这时需要隐藏掉一些Module不显示,但是Studio默认没有提供可视化的操作,但是可以通过修改iml文件来做到:
2015-05-19 11:39:56 4618 2
原创 Android UI控件大全
关注这个github即可,各种UI控件库https://github.com/wasabeef/awesome-android-ui
2015-05-13 19:12:46 1378
原创 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 4071 2
原创 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 843
原创 Android中使用IconFont代替icon,减小app体积
现在网页中使用IconFont已经开始流行,比如新版的淘宝首页,以及36kr等。使用IconFont的好处是可以大量节省资源,同时可以无损缩放,web中减少图片请求。缺点是由于和文字一样,只支持纯色或渐变色,所以颜色上比较单一。其实在App开发中同样可以使用IconFont,尤其Win8推出后开始刮起的“扁平风”,对于一些icon,完全可以使用纯色的IconFont代替。什么是IconFo
2013-10-15 16:59:16 1590
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人