博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年7月17日

摘要: 前几天Boss就反应说,机器每次启动程序都会闪一下黑屏,这个客户不接受。没办法,只能想想怎么解决,最后找到了下面的方法。闪黑屏的原因主要是我们启动Activity的时候,需要跑完onCreate和onResume才会显示界面。也就是说需要处理一些数据后,才会显示。按照这种思路,是不是我把初始化的工作尽量减少就可以避免黑屏?事实是,就算你onCreate啥都不做,仍然会闪一下黑屏,因为初始化解析界面时需要一定时间。下面是解决办法:(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434) 1、自定义Theme//Edited by mythou//http://w... 阅读全文

posted @ 2013-07-17 16:18 泡泡糖 阅读(16810) 评论(4) 推荐(4) 编辑

2013年7月16日

摘要: 我们写程序的时候都希望能写出一个没有任何Bug的程序,期望在任何情况下都不会发生程序崩溃。不过理想是丰满的,现实是骨感的。没有一个程序员能保证自己写的程序绝对不会出现异常崩溃。特别是针对用户数达到几十万几百万的程序,当你用户数达到一定数量级后,就算你的程序出现个别异常崩溃情况也不用惊讶。 既然我们写的程序都有可能发生异常崩溃,如果是还没发布的程序,我们可以通过测试抓取Log来分析。不过针对已经发布的程序,我们没法重现现象,所以让用户反馈程序异常信息就很重要。下面我们说说如何收集程序运行过程的异常信息。(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434)1、... 阅读全文

posted @ 2013-07-16 21:17 泡泡糖 阅读(8211) 评论(5) 推荐(1) 编辑

2013年7月15日

摘要: 我们编程的时候经常需要处理同步任务和异步任务,在Android里面存在一个特性,就是UI线程是不安全的线程。所谓UI线程不安全也就是我们的主线程(进程启动的第一个线程)不能在线程外操作主线程的资源。因为主线程的资源没有做同步处理。也就是我们一般说的线程同步问题。 我们做Android应用的时候,进程需要在一个子线程执行一些耗时的操作,例如下载、播放等。这种情况我们一般使用Handler和线程结合处理,子线程负责处理耗时操作,然后通知Handler处理UI更新。Handler和子线程结合处理适合对精度控制要求比较高或者任务耗时比较长或者比较反复的情况。除了Handler和线程结合使用,An... 阅读全文

posted @ 2013-07-15 20:05 泡泡糖 阅读(11212) 评论(2) 推荐(5) 编辑

摘要: 上面一篇文章简单介绍了NFC的背景和技术应用,今天主要是讲解一下NFC如何发起通信和标签通信(主要是翻译android官网的资料,中间加入个人心得)。NFC总是在一个发起者和一个被动目标之间发生。发起者发出近场无线电波,这个近场可以给被动目标供电。这些被动的目标包括不需要电源的标签,卡,也可以是有电源的设备。拿我们手机来说,我们手机打开NFC功能后就是一个发起者,被动目标一般就是NFC标签。我们通过读取NFC标签内容,达到获取数据目的。 1、Tag发布系统 当android设备扫描到一个NFC tag,通用的行为是自动找最合适的Activity会处理这个tag Intent而不需要用户... 阅读全文

posted @ 2013-07-15 00:07 泡泡糖 阅读(2592) 评论(1) 推荐(0) 编辑

2013年7月13日

摘要: 本来想分析AppsCustomizePagedView类,不过今天突然接到一个临时任务。客户反馈说机器界面的图标很难点击启动程序,经常点击了没有反应,Boss说要优先解决这问题。没办法,只能看看是怎么回事。今天分析一下Launcher启动APP的过程。从用户点击到程序启动的流程,下面针对WorkSpace上的快捷图标点击启动流程进行分析。(如果分不清WorkSpace是什么或者不知道快捷方式和其他图标区别,请看我前面的Launcher分析文章)PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434 下面我们先看看Launcher启动APP的大概流程:(鉴于很多转... 阅读全文

posted @ 2013-07-13 23:37 泡泡糖 阅读(11554) 评论(1) 推荐(2) 编辑

摘要: 最近对NFC挺感兴趣,而且新换的手机也支持NFC功能(最近换了Find5,感觉还不错O(∩_∩)O),所以打算学学NFC编程。NFC就是我们经常说的近场通信。通常距离是4厘米或更短。NFC工作频率是13.56M Hz,传输速率是106kbit/s 到848kbit/s。不过网上查了一下,发现NFC的资料并不多,所以还是去看看android.developer上面的介绍和基本教程。下面资料主要是参考android官网,中间加入一些个人的心得笔记。1、NFC可以做的事情 NFC通信时是使用一种叫做NDEF的数据格式来通信,简单来说就是NFC芯片使用的一种通信协议。一般我们可以使用NFC完成下... 阅读全文

posted @ 2013-07-13 00:16 泡泡糖 阅读(3017) 评论(1) 推荐(0) 编辑

2013年7月11日

摘要: 接着上一篇文章,继续分析AllAPP列表界面。上一篇文章分析了所有应用列表的界面构成以及如何通过配置文件修改属性。今天主要是分析PagedViewWithDraggableItems类,因为在我们分析AppsCustomizePagedView之前,需要先了解PagedViewWithDraggableItems。这是因为他们是继承关系。我们先看看AppsCustomizePagedView的类继承关系。(以后博客的图片都会加上水印,因为发现很多转载文章的人把所有作者信息都删除了,鄙视这种行为 ╭∩╮(︶︿︶)╭∩╮)1、触摸拦截 从上面的类关系图我们可以看到,我们今天需要分析的Page... 阅读全文

posted @ 2013-07-11 12:32 泡泡糖 阅读(7315) 评论(1) 推荐(4) 编辑

2013年7月10日

摘要: 今天主要是分析一下Launcher里面的所有应用列表。Android4.0 Launcher的所有应用列表跟2.X比较大的区别就是多了Widget的显示。下面会详细分析Launcher里面有关所有应用列表配置和代码分析。1、AllApp列表配置文件配置AllAPP应用列表界面的配置文件是\res\Layout\apps_customize_pane.xml文件。AllAPP列表使用了一个TabHost组织了两个页面(全部应用和Widget),通过界面上面的TabHost进行切换。下面是TabHost的配置和AllAPP界面配置,我这里需要把Widget部分功能取消,因为我做的Launche.. 阅读全文

posted @ 2013-07-10 16:57 泡泡糖 阅读(14511) 评论(2) 推荐(2) 编辑

2013年7月8日

摘要: 最近需要编写一个日期时间的桌面Widget用来关联日历程序,以前很少写桌面Widget。对这方面技术不是很熟悉,今天花时间重新整理了一下,顺便把编写一个简单时间日期程序过程记录下来。 桌面Widget其实就是一个显示一些信息的工具(现在也有人开发了一些有实际操作功能的widget。例如相机widget,可以直接桌面拍照)。不过总的来说,widget主要功能就是显示一些信息。我们今天编写一个很简单的作为widget,显示时间、日期、星期几等信息。需要显示时间信息,那就需要实时更新,一秒或者一分钟更新一次。 这个时间Widget我是参考(Android应用开发揭秘)书里面的一个demo例子... 阅读全文

posted @ 2013-07-08 11:12 泡泡糖 阅读(6483) 评论(4) 推荐(0) 编辑

2013年7月7日

摘要: 上一篇文章写了如何进行页面滑动切换,今天我讲一下如何实现两个按钮拖动交换位置,包括同一个页面按钮交换或者两个页面之间的按钮交换。另外就是如何拖动删除界面上的快捷方式。按钮交换和拖动删除,这两个功能基本上是现在智能手机的标准功能,不管是IOS或者Android都有类似功能。我实现的功能,主要是参考Android的功能实现。下面这个就是动态交换按钮效果图:还是先把逻辑关系图放出来:1、按钮拖动怎么样才能实现拖动一个按钮到另外一个按钮位置上,实现交换?这个首先一个需要做的就是拖动按钮的操作。按钮拖动我放到封装的DUIButton里面实现。下面我们看看DUIButton里面如何把按钮拖动出来。//.. 阅读全文

posted @ 2013-07-07 00:35 泡泡糖 阅读(7596) 评论(6) 推荐(2) 编辑