UI controllers (activities and fragments) 中代码越少越好,不应该自己去请求数据,而是用ViewModel来更新数据,并且监听LiveData来更新UI UI controllers 中的UI写成数据驱动的,也就是UI controller需要做的只有当数据变化时更新view,或者当用户有输入行为时给ViewModel反馈 把数据逻辑放在ViewModel中,ViewModel存在的目的是将UI controller 与应用内其他的一切分离.ViewMod…
谷歌官文文档地址:https://developer.android.google.cn/topic/libraries/architecture 安卓构架组建是库的集合:帮助你设计健壮的.易测试的.可维护的应用.使用类作为入口管理UI组建的生命周期和处理数据持久化. Android architecture components are a collection of libraries that help you design robust, testable, and maintainab…
面对越来越复杂的 App 需求,Google 官方发布了Android 框架组件库(Android Architecture Components ).为开发者更好的开发 App 提供了非常好的样本.这个框架里的组件是配合 Android 组件生命周期的,所以它能够很好的规避组件生命周期管理的问题.今天我们就来看看这个库的使用. 通用的框架准则 官方建议在架构 App 的时候遵循以下两个准则: 关注分离 其中早期开发 App 最常见的做法是在 Activity 或者 Fragment 中写了大量…
1. 当前Android开发面临的问题 Android开发不同于传统的桌面程序开发,桌面程序一般都有唯一的快捷方式入口,并且常作为单进程存在:而一个典型的Android应用通常由多个应用组件构成,包括不同数量的Activity.Fragment.Service.Content Provider.Broadcast Receiver等. 此外,用户在移动设备上常常会在多个App之间切换.例如,如果用户想要在一个社交应用上分享一张图片,那么一般的流程是首先该社交应用可能会使用Intent的方式通过A…
翻自:http://developer.android.com/training/articles/memory.html 在任何软件开发环境中,RAM都是宝贵的资源,但在移动操作系统中更加珍贵.尽管Dalvik虚拟机有垃圾回收机制,也不要忽略分配和释放内存. 为了让GC回收内存,你要避免内存泄漏(通常因为全局成员变量引用对象引起),并且在适当的时候释放对象引用.对大多数app来说,垃圾回收负责剩下的:当相应的对象离开app活动线程范围时,系统回收内存分配.为了让GC回收内存,你要避免内存泄漏(…
https://developer.android.com/topic/libraries/architecture/index.html ViewModel 有LiveData Activity 监听(observe) LiveData, LiveData有变化通知Activity 1.ViewModel定义 Since these objects might be destroyed or re-created by the operating system, any data you ho…
Best Practices for User Experience & UI Designing Effective Navigation 导航:帮助用户有效直观地使用你的应用. Planning Screens and Their Relationships 应用的信息模型可以用实体关系图表示(entity-relationship diagrams (ERDs)). 定义出信息模型之后,就可以定义你的app所需要的所有屏幕画面.然后定义出屏幕之间的直接关系.跳转逻辑.这样就得到了scree…
灵活执行后台任务可以帮助提升应用性能,并最小化电量损耗. Android后台任务主题包含以下三个子主题: 1. 在IntentService中执行后台任务: 2. 使用CursorLoader在后台加载数据: 3. 管理设备的唤醒状态:…
本课将告诉你如何通过后台加载来加速应用启动和降低应用耗电. 后台跑服务 除非你做了特殊指定,否则在应用中的大部分前台操作都是在一个特殊的UI线程里面进行的.这有可能会导致一些问题,因为长时间运行的操作会影响到你应用的响应速度.为了避免这个问题,android框架提供了一系列帮助你在后台通过线程推迟加载的功能,被使用得最多的非IntentService莫属了. 本课将向你描述如何实现一个IntentService,发送请求操作并向其它组件报告结果. 创建一个后台服务 本课将直观地告诉你如何通过后台…
本书以一个完整的微博应用项目实例为主线,由浅入深地讲解了Android客户端开发和PHP服务端开发的思路和技巧.从前期的产品设计.架构设计,到客户端和服务器的编码实现,再到性能测试和系统优化,以及最后的打包发布,完整地介绍了移动互联网应用开发的过程.同时,本书也介绍了Android系统中比较有特色的功能,比如Google地图.LBS功能.传感器.摄像头.多媒体以及语音功能的使用等.此外,本书还介绍了Android NDK的开发以及Android游戏开发的相关内容,包括OpenGL的使用.流行游戏…