自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JohnnyYin的博客

专注移动互联网开发

  • 博客(20)
  • 论坛 (1)

原创 修改Android Gradle plugin的aapt路径

最近在做一套Andorid插件化方案,在解决资源id冲突的问题时,采用的是修改aapt的方式来做的,修改aapt的方式遇到的最大的问题就是编译插件的时候得替换sdk中的aapt,或者采用自己写的脚本来编译,这样开发过程肯定是很不方便的。因此本文尝试在Gradle plugin上修改aapt路径。

2016-07-26 16:50:02 2818 5

原创 Android模拟后台进程被杀

Android开发中,有时候我们需要测试下后台进程被杀,然后重新进入App时恢复现场的case。如果采用填充内存的方式,比较麻烦,下面介绍几种快速模拟后台进程被杀的方式:

2016-06-30 10:10:48 8168

原创 解决QQ登录SDK不能网页授权登录的问题

现象QQ登录SDK在用户设备没有安装手机QQ客户端的情况下,默认是会调起网页授权的,但是可能是因为腾讯的某些限制,新申请的app_id都无法使用网页授权,打开后有些是跳转到下载手Q页面,有些是一直显示“正在打开授权登录页…

2016-06-28 11:09:35 7338

原创 ApplicationContext、ActivityContext、ViewContext和ContextImpl(BaseContext)的区别

ContextWrapperContextWrapper 是 ContextImpl(也就是BaseContext) 的包装,所有对 ContextWrapper 的操作都会用代理到 BaseContext 上。Application和Activity和Service都继承自ContextWrapperandroid.content.ContextWrapper#getApplicationC

2015-11-21 12:31:53 1746

原创 Android中Touch事件分发过程全解析

分发过程 首先事件从native分发,会传递给 ViewRootImpl.WindowInputEventReceiver.onInputEvent ,然后会经过ViewRootImpl的分发到DecorView,DecorView会根据之前给Window设置的CallBack(具体可以参考Activity的启动过程系列文章),也就是Activity,会调用Activity的dispatchTouc

2015-10-29 12:01:31 449

原创 1px图片的Crash

问题描述最近在项目中遇到一个奇葩的Crash,在创建bitmap时Crash,log如下:java.lang.IllegalArgumentException: width and height must be > 0

2015-09-30 12:25:44 443

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

原创 Java中隐藏的this变量和局部变量可能引发的内存泄露问题

背景众所周知,在Java中,成员方法内可以使用this来引用当前对象,使用起来特别方便。但是在JVM中方法是在方法区中,所有的类的对象都共用了一个方法区,那么JVM是怎么知道this是指向哪个对象的呢? 其实为了实现这一功能,Java的处理方式很简单,在编译时,为每个成员方法都默默的添加了一个参数this,当调用这个方法时,把当前对象以参数的形式传进去即可。

2015-07-13 12:40:13 555

原创 Apk安装过程分析

Apk安装过程分析

2015-07-11 22:18:14 788

原创 解决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 739

原创 内部类对宿主类private成员的访问

摘自http://developer.android.com/intl/zh-cn/training/articles/perf-tips.html#PackageInner

2015-07-05 18:59:17 516

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

原创 Windows、Ubuntu双系统下,给Ubuntu增加磁盘空间

因为本人安装的是Windows,Ubuntu双系统,所以当时给Ubuntu分配的空间比较小,现在想在Ubuntu下编译Android Rom,但是AOSP代码就是几十G,空间严重不够,因此,准备给Ubuntu增加磁盘空间。

2015-05-30 16:43:05 18727 3

原创 Mac下安装OpenGrok

OpenGrok一个快速、便于使用的源代码搜索与对照引擎。它帮助你搜索,对照,定位你的源代码树。它能够明白各种程序文件格式和版本控制历史记录如SCCS,RCS,CVS与Subversion。OpenGrok是OpenSolaris操作系统源文件浏览和搜索的工具。

2015-05-28 14:27:05 2570

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

原创 Android Studio中忽略目录不显示在Project文件列表中

在Android Studio中,有时一个Projcet下Module比较多,可能有些不需要显示,这时需要隐藏掉一些Module不显示,但是Studio默认没有提供可视化的操作,但是可以通过修改iml文件来做到:

2015-05-19 11:39:56 3417 2

原创 Android UI控件大全

关注这个github即可,各种UI控件库https://github.com/wasabeef/awesome-android-ui

2015-05-13 19:12:46 1197

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

原创 Android中使用IconFont代替icon,减小app体积

现在网页中使用IconFont已经开始流行,比如新版的淘宝首页,以及36kr等。使用IconFont的好处是可以大量节省资源,同时可以无损缩放,web中减少图片请求。缺点是由于和文字一样,只支持纯色或渐变色,所以颜色上比较单一。其实在App开发中同样可以使用IconFont,尤其Win8推出后开始刮起的“扁平风”,对于一些icon,完全可以使用纯色的IconFont代替。什么是IconFo

2013-10-15 16:59:16 1450

空空如也

win7 64位Windows event log服务启动后自动关闭怎么办

发表于 2012-02-21 最后回复 2012-11-23

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