Google dev 100 days系列视频
Day 1:The Android Design Library
compile 'com.android.support:design:22.2.0'
- TextInputLayout
EditText的hint将一直以浮动形式显示在输入框下面,并且可以通过setError()接口,提示错误信息; - FloatingActionButton
浮动操作按钮,默认设置为app theme的颜色;可以设置为mini大小;继承自ImageView,可以为其设置任何显示内容; - Snackbar
轻量、快速的用户反馈方式;显示在屏幕底部,支持一个可选的操作按钮,显示超时后自动消失,用户也可以滑动使其消失;API与toast基本一致,但功能更强大;Snackbar .make(parentLayout, R.string.snackbar_text, Snackbar.LENGTH_LONG) .setAction(R.string.snackbar_action, myOnClickListener) .show(); // Don’t forget to show!
- TabLayout
多view tab支持;可以和ViewPager一起使用; - NavigationView
支持通过menu资源文件创建导航视图;把NavigationView放到DrawerLayout里面,通过app:headerLayout
属性设置headerLayout,通过app:menu
属性设置导航菜单内容,支持高亮显示当前选中的菜单项,支持多级菜单,通过setNavigationItemSelectedListener()
接口设置菜单点击回调;需要注意的是NavigationView会负责状态栏的操作,在API 21+时,需要考虑状态栏的控制; - CoordinatorLayout
- floating action buttons
将FloatingActionButton放到CoordinatorLayout中,在使用Snackbar时,将CoordinatorLayout传入到Snackbar的Snackbar.make()
函数中,那么action button将会在snack bar显示和消失时,自动改变其位置,不需要任何代码;layout_anchor
和layout_anchorGravity
属性可以设置浮动view和其他view的位置; - app bar(以前的ActionBar)
AppBarLayout可以和RecyclerView响应,RecyclerView通过app:layout_behavior
属性指定Behavior子类,AppBarLayout的元素通过app:layout_scrollFlags
属性指定对滑动事件的响应方式; - Collapsing Toolbars
把Toolbar直接作为AppBarLayout的子元素,无法满足Toolbar的不同元素以不同方式响应滑动操作的需求,为此,可以在中间加一层CollapsingToolbarLayout;可以实现顶部自定义布局,随滚动而变化为bar,再滚动则消失,反向滚动则显示的炫酷效果
!videopatterns-scrolling-techniques_flex_space_image_xhdpi_003.webm - Custom views
自定义View可以通过定义Coordinator.Behavior的子类来与CoordinatorLayout进行合作,从而实现自定义的显示效果;
- floating action buttons
Day 2:LRUCache
Android framework实现的LRU缓存算法类,对于Bitmap的使用场景非常合适;
Day 3:Google Play Services 7.5
- Smart Lock for Passwords
密码保存服务API; - Instance ID, Identity, and Authorization
提供应用识别、授权服务; - Google Cloud Messaging
消息推送、上报服务、基于话题订阅的推送、网络请求管理(优化); - App invite
集成的邀请新用户(分享APP)功能; - Google Cast
谷歌提供的多设备视频、音频播放功能; - Android Wear、Google Fit...
Day 4:Web app的推送通知
Day 5:用户活动识别:步行、跑步、骑车等
Day 6:Android wear使用MAP API
Day 7:语音互动,不仅是启动命令,还能交互
Day 8:谷歌地图的Lite模式,高性能显示多张静态地图
Day 9:使用Lint工具进行代码检查:性能、bug、内存泄漏等
Day 10:逐步优化网页响应的速度
Day 11:指纹验证API
Day 12:Google Play商店的icon、描述文字-安装量统计功能
Day 13:优化APP在google搜索中的结果
Day 14:Google play for work:为办公设备订制的APP
Day 15:Google map的AnimateCamera API
Day 16:Transparency & Alpha使用时的渲染性能优化
- 在动画开始时,
setLayerType(View.LAYER_TYPE_HARDWARE, null)
,动画结束后,setLayerType(View.LAYER_TYPE_NONE, null)
;在API >= 16时,可以只调用ViewPropertyAnimator.alpha(0.0f).withLayer()
接口即可; - 使用shadow时,重写View的
hasOverlappingRendering()
接口,返回false; - 只有当确定瓶颈是这部分view的渲染时,才有必要这样优化;
Day 17:Google Analytics SDK
下载量、安装量、用户离开APP的页面、地区分布等多种统计信息;
Day 18:AdMob:APP广告分发平台
多种展示方式、自动获取费用最高的广告、Google Analytics集成等特点;
Day 19:designing for drivers
6步法则;只展示驾驶员真正想要的内容;使用语音控制;