引言
本文首先回顾一下安卓Fragment的基本概念、使用、通信和生命周期等,然后结合开发过程中遇到的坑,记录一下解决办法。
still believe in that world can be reshaped by coding and we can benifit from it.
在安卓安全模型中,一个应用程序不能够直接去访问(读或写)另一个应用程序的数据,每个应用程序都有其自己的带id的结构化数据,自己的文件夹和私有的内存区域,ContentProvider是在这些应用程序间件共享数据。ContentProvider是一组包裹在标准的API下的读写操作。应用程序都必须注册为数据提供者才能共享数据,其它的应用程序能够通过固定的API去读写这些数据,所以ContentProvider严格遵守CRUD原则。
常见的实用ContnentProvider的案例有读取联系人方式、读取多媒体信息、以及其它的应用程序数据,同时也允许这些应用程序增删改查这些数据。
最近翻开以前fork的github代码,发现了AmazingListView,是google官方当年的时候写的实现吸顶效果的ListView组件,然后最近在项目中有遇到需要吸顶效果的RecyclerView的需求,于是看了下源码,在AmazingListView的基础上,改进了一些bug,最终出现了今天的PinnedRecyclerView.
服务,老练的程序员都不会陌生,怎么理解呢?我脑海里面最快能想到的就是那些扫地的阿姨,好吧,当然还有餐厅里面的服务员,那么计算机中的服务和这些服务员提供的服务有什么类似的地方吗?是的,我觉得是有的,都是默默无闻的,当然服务员是要拿钱的,计算机可不拿钱,总之它们是在强调一种默默的状态,在计算机里就是“后台”的概念,好了,突然发现我瞎比比的能力还是可以的。
没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了。Service作为Android四大组件之一,在每一个应用程序中都扮演着非常重要的角色。它主要用于在后台处理一些耗时的逻辑,或者去执行某些需要长期运行的任务。必要的时候我们甚至可以在程序退出的情况下,让Service在后台继续保持运行状态。
我首先想到的是周杰伦的一首歌,“训导处报告训导处报告,三年二班周杰伦,马上到训导处来”,广播里面这么一呼叫,估计周杰伦就得屁颠屁颠的去被训了,分析整个事情,首先广播这玩意儿一呼叫,全校同学都听得见,然后再根据姓名,进行匹配,周杰伦听到自己的名字,就去做响应的事情了。安卓的广播机制类似,也是在安卓系统中去发送一条广播,然后注册的广播接受者监听到了广播后,就回去匹配,是否是在叫自己,如果发现是自己,那么就去做相应的事情,广播不难,但是也有必要回顾总结一下,好记性不如烂笔头,方便以后查阅。
为什么要写关于Java反射反面的博客呢,原因背景是这样的,最近我们team在使用retrofit做数据请求和解析,但是如果服务端返回的数据不包含某些数据的时候,解析出来的数据为null,就算在定义的时候,给model对象进行了一次最初的赋值也不行,原因在于解析的时候,没有数据的字段被retrofit解析成了null,这下可好了,调用这些模型的null字段就会跪掉,好了,测试bug来了,于是针对这个问题,我们程序狗们得着手解决啦。最直接最傻逼的做法当然就是去挨着每个字断去判断咯,但是我操,这个数据多的一逼,不瞒大家说,考虑到风险的问题,我们还真的这么干了,至少能够解决问题,我们处理这个事情的同事要吐血了,哈哈。现在过了发布,准备重构一下,那么我想到了两个办法去解决这个问题,得治标治本,从源头下手,有两个办法,一个是将恢复出来的模型进行解剖,如果发现字断为null的就赋值为空字符串,另一个办法是从解析入手,覆盖retrofit的解析方法,自定义解析规则,一个一个的来吧,首先从解剖入手呗,于是又了今天这篇博客。
最近看到一个bootstrap的loading框,感觉还挺好看的,决定动手写一个。首先来技术选型一下吧,其实一个loadingview在这里扯性能问题并不是很合适,但是如果一定要讨论用什么去实现的话,我认为其事SurfaceView是个不错的选择,原因在于我们是主动的更新界面,根据数据去运算,所以,这种主动更新的场景更加适合SurfaceView来实现,刚好最近写了一片关于SurfaceView的入门博客,拿来练练手挺不错的。
决定开一个页面专门用来贴一下看过的好的youtube视频链接,以后方便速查,回顾过去看了好多的国外优秀的编程学习视频,但是现在想到很多视频都要搜索半天,想回去温习回顾的时候费半天劲,还可能找不到,好吧,好记性不如烂笔头,索性就放在这里吧。
今天开发遇到一个视觉需求,翻转一个logo用来强调入口,好吧,反正设计是就是喜欢炫的东西,作为开发来说,没的选咯,在google了一番以后,发现android developer官网有一个页面的切换动画,https://developer.android.com/training/animation/cardflip.html,好像有点意思,于是模仿者来了一发,做了一个FlipView。
#####简单介绍
这里利用Android OS的Handler类实现了一个简易的定频事件驱动类,使用起来简单方便,比如在Slider滑动效果,计数器以及其他需要定频事件驱动的场合。