随笔分类 - Android
Android开发心得
摘要:1.handler,looper,messagequeue三者之间的关系以及各自的角色? 答:MessageQueue就是存储消息的载体,Looper就是无限循环查找这个载体里是否还有消息。Handler就是创建的时候 会使用looper来构建这个消息循环。 handler的主要功能就是 将一个任务
阅读全文
摘要:1.简述一下window是什么?在android体系里 扮演什么角色? 答:window就是一个抽象类,他的实现类是phoneWindow。我们一般通过windowManager 来访问window。就是windowmanager 和windowmanagerservice的交互。 此外 andro
阅读全文
摘要:1.view 动画有哪些需要注意的? 答:view动画 本身比较简单。http://www.cnblogs.com/punkisnotdead/p/5179115.html 看这篇文章的第五问就可以了。 2.如何给viewGroup 子元素出场时增加动画效果? 答:以listview 为例。 1 <
阅读全文
摘要:1.什么是RemoteView? 答:其实就是一种特殊的view结构,这种view 能够跨进程传输。并且这种remoteview 还提供了一些方法 可以跨进程更新界面。具体在android里面 一个是通知 一个是桌面小部件。 这2个就是remoteview 最直接的应用了 2.RemoteView在
阅读全文
摘要:1.View的绘制流程分几步,从哪开始?哪个过程结束以后能看到view? 答:从ViewRoot的performTraversals开始,经过measure,layout,draw 三个流程。draw流程结束以后就可以在屏幕上看到view了。 2.view的测量宽高和实际宽高有区别吗? 答:基本上百
阅读全文
摘要:1.View的坐标参数 主要有哪些?分别有什么注意的要点? 答:Left,Right,top,Bottom 注意这4个值其实就是 view 和 他的父控件的 相对坐标值。 并非是距离屏幕左上角的绝对值,这点要注意。 此外,X和Y 其实也是相对于父控件的坐标值。 TranslationX,Transl
阅读全文
摘要:ps:阅读本文 需要对android 多进程编程有一定了解。 1.Android中总共有几种方式进行IPC? 答:一共有两种,一种是binder 还有一种是socket。Binder 大家用的比较多。Socket很少有人用,这里给出一个利用Socket进行ipc通信的例子。 服务端代码: 1 pac
阅读全文
摘要:关于Binder,我就不解释的太多了,网上一搜资料一堆,但是估计还是很多人理解的有困难。今天就教你如何从 app层面来理解好Binder。 其实就从我们普通app开发者的角度来看,仅仅对于android应用层的话,Binder就是客户端和服务端进行通信的媒介。 AIDL就是我们理解Binder 最好
阅读全文
摘要:http://www.cnblogs.com/punkisnotdead/p/5062631.html起因 是这个blog 提到了 用webview 的时候 用开启子进程的方式 可以极大避免内存泄露。然后有很多人私信我 这种情况下如何 相互通信的问题。当然广播是一个比较不错的选择,只不过广播的方法 ...
阅读全文
摘要:Tint 这个东西 主要用来减少apk体积的,比如说我现在有一个textview,他的背景图 有两种,一种是当获得焦点时显示的a图,另一种是 失去焦点时显示的b图。相信大家开发的时候 这种需求做过很多次了,我们一般都会发现 这种a图和b图 除了颜色不一样,其他都是一样的,但是我们做的时候呢,通常是找...
阅读全文
摘要:在日常的开发中,尤其是app开发,因为不像web端那样 出错以后可以热更新,所以app开发 一般对软件质量有更高的要求(你可以想一下 一个发出去的版本如果有重大缺陷 需要强制更新新客户端是多么蛋疼的事情)。恩,所以我们app的开发者 一定要学会自己测试自己的代码 自己测试自己的app,不要寄希望于测...
阅读全文
摘要:http://www.cnblogs.com/punkisnotdead/p/4968851.html以前写的这篇文章 可以高仿出 知乎 新浪微博等 绝大多数app的换肤技术,但是遗漏了腾讯的效果,实际上腾讯的这方面比 上述app要稍微复杂一些,有一点像 现在流行的插件技术。其实也可以理解,腾讯毕竟...
阅读全文
摘要:前面那张hybrid开发心得 有人问 怎么解决不用onJsPrompt 来回调js函数的问题。其实很简单,就是在在你的jscalljava回调函数内 另外开个线程去load js代码即可:1 wb.post(new Runnable() {2 @Override3 ...
阅读全文
摘要:其实所谓这个混合开发,也就是hybird,就是一些简单的,html5和native 代码之间的交互。很多电商之类的app里面都有类似的功能,这种东西其实还是蛮重要的,主要就是你有什么功能都可以进行热部署,不需要再重新发版本。下面就简单介绍一下这种技术。我们首先看下面一个场景,我们打开网易云音乐的ap...
阅读全文
摘要:我们首先从最简单的开始,standard这个模式就是默认的模式,我们都知道 当你用这个模式时,每次发送一个intent,都会生成一个新的实例!我写一个简单的例子: 1 2 4 5 11 15 16 17 18 ...
阅读全文
摘要:一个好的app 异常处理机制 我认为应该至少包含以下几个功能:1.能把错误信息上传到服务器 让开发者可以持续改进app2.错误信息至少应该包含 是否在主进程 是否在主线程 等可以帮助程序员定位的信息3.最好包含手机硬件及软件信息。4.主进程引发的异常 最好交由系统自己处理 也就是让用户可以感知到 那...
阅读全文
摘要:总结了一下 目前觉得比较好用的gradle 和一些打包 经验。放在这里。首先说下 渠道号 这个概念,我们经常会统计我们的api 访问来源 是来自于那个app store,这有利于 我们针对性的推广。也可以知道用户的分布情况,目前我们的做法通常是这样的:然后在我们的自定义application里面 定...
阅读全文
摘要:快捷方式 应该来说 很多人都做过,我们就来看一下基本的快捷方式 是怎么实现的,会有什么问题?首先 肯定要获取权限:1 2 3 4 5 6 然后定义一下我们要发起的action:1 //删除快捷方式的action2 public static final ...
阅读全文
摘要:UC浏览器应该是android手机里 最流行的浏览器之一了,他们有一个功能 相信大家都体验过,就是如果你复制了什么文字,(在其他app中 复制也有这个效果!,所以能猜到肯定是监控了剪切板),就会弹出一个悬浮窗。悬浮窗这个东西 相信大家很多人都使用过,但是在小米的手机上,应该很多人的悬浮窗是无法使用的...
阅读全文
摘要:Fragment 相信基本上每个android developer都用过,但是知晓其原理 用的好的还是不多,今天就从源码的角度上来带着大家分析一下Fragment的源码,对fragment有了更深层次的认识以后相信写出来的代码也会越来越好看。首先,我们来看第一个流程,fragment是怎么加载到界面...
阅读全文