- 博客(24)
- 收藏
- 关注
原创 Android N新特性:direct reply notification
Android N带来了一系列新功能,比如分屏与画中画,更好的后台管理等,其中就包括了direct reply notification,顾名思义,就是可以直接回复的通知。
2016-09-08 16:40:27
1115
原创 Java笔记整理:对象
最近花了点时间重新阅读了Java名作《Java 编程思想》,为了改掉自己以前不喜笔记的坏习惯,把所学知识整理并笔记到Onenote和优快云上第一章:对象
2016-08-31 11:05:01
427
原创 Firebase初探:实时数据库(2)
Firebase初探:实时数据库(2)前面的那篇介绍了Firebase实时数据库的相关知识,那么客户端将如何与实时数据库进行沟通呢?小试牛刀Firebase的SDK当然是必不可少的了,为了使用数据库相关的API,需要在应用的依赖项中添加:compile 'com.google.firebase:firebase-database:9.4.0'为了和数据库交互,需要得到数据库的一个实例,而且具体的交互
2016-08-29 14:37:16
3763
1
原创 Firebase初探:身份认证
Firebase初探:身份认证用户使用app的第一步,就是身份认证,包括注册,登陆还有登出功能。Firebase的Auth模块就是对应身份认证这一点的。Firebase的登陆方式除了基本的邮箱+密码方式,还有第三方账号的登陆方式,包括Google,Facebook,twitter和Gihub,除此之外,Firebase也允许开发者自定义登陆方式 在启用某种登录方式时,需要在Firebase控制台的
2016-08-26 00:32:46
13639
1
原创 Firebase初探:配置
当app发展到本地以外,就不得不牵扯到服务器了,当然这对于大公司来说并不是什么大问题,服务器有后台人员维护,网站有前端人员负责,移动端也有对应人员搞定。但是服务器就一个(或一组,一间etc),其中的数据要联动到web,android,ios等不同平台上,可能就会有不同的差异,开发工具包自然是一点,从服务器拉取的方式和传送数据的格式可能也会有不同。 对于小型开发团队或者独立开发者来说就更痛苦了,在开
2016-08-24 02:52:05
5483
1
原创 JobScheduler学习
JobScheduler学习后台任务是应用开发中常见的问题。 最简单的做法就是直接开一个Thread,用Handler通信即可,但是所开的线程和活动是没有关系的,一旦应用被杀死,就和之前所创建的线程失去了联系,就算活动再次启动,此时启动的线程并不是之前的线程。 当然,这个问题可以用Service解决,那么如果用户把服务也杀了呢?你可能会想用AlarmManager,周期性地进行唤醒,可是用户关机
2016-08-19 03:20:01
6713
原创 Data binding学习
Data binding学习Google在去年下半年的时候推出了Data binding的support包,当时用起来似乎挺麻烦,不过随着Android Studio 2.0的发展,Google不仅让Data binding支持包变得更易用,也提升了AS对Data binding在IDE上的支持。 随着界面的内容越来越丰富以及项目工程的扩大,在代码里控制UI控件的显示和更新会变得越来越麻烦,你会发
2016-08-16 01:56:29
699
原创 TODO-MVP源码解析
Google Samples上有很多优先的app代码范例,最近在总结设计模式时,看到书中提到了Smalltalk的MVC模式,这个缩写好像经常能在网上见到,还往往还MVP一起出现。我以前也稍微了解过一下,但是网上对MVC运行原理的解释有很多版本,被弄蒙后也没看下去了。恰好又偶然在Google Samples上看到了这个用MVP模式写的todo应用,于是想尝试通过代码的角度来了
2016-08-14 17:52:04
1906
原创 面向接口编程与面向实现编程
面向接口编程与面向实现编程最近拜读了四人组的经典名作《设计模式 可复用面向对象软件的基础》一书,打算以博客的形式进行笔记与思考书中提到了可复用面向对象设计的原则,其中的第一个原则是: 针对接口编程,而不是针对实现编程其实在使用面向对象语言进行编程的时候,经常不经意间就会涉及书中提到的知识,但是一旦用专门的词汇进行描述时,第一反应就是“诶?这是什么意思?看不懂啊”,只有经过反复的阅读与思考,才意
2016-04-26 17:02:37
15667
8
原创 android的消息与线程
需要认清的四个主要组成部分是:LooperMessageMessageQueueHandler 一个线程如果需要接受来自其他线程的消息,并且加以处理的话,就必须使用Looper来为这个线程添加一个消息队列,即MessageQueueLooper的四个主要方法:public static prepare();public static my
2016-03-22 17:30:46
438
原创 结构体和联合体的字节对齐问题
为了提速之类的,在结构体和联合体的内存块中,是按照一定的规则安排的联合体:联合体的内存不会为了所有成员安排,而是只取最大的成员的所需内存大小,每次只能使用其中一个成员。但是有一个问题:typedef union{ char a; int[5] b; double c;}当然只取最大的int数组的大小20没错,但是double是8字节的,而此时联合体已经按
2016-03-20 16:56:20
5375
原创 安卓屏幕适应
首先可能会涉及的几个关于屏幕尺寸的单位:px,像素,屏幕现象的基本单位分辨率,屏幕宽高即横纵两个方向的像素个数,比如480*800屏幕尺寸,经常会说几寸几寸的,其实是屏幕对角线的长度,单位是英寸,1inch=2.54cmdpi,即dots per inch,每英寸多少个像素点,相当于px/inchdp,或称dip,density independent pixels,密度无关像
2016-03-19 11:42:21
356
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人