Piasy · 更新于 2018-11-28 11:00:42

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_anchorlayout_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进行合作,从而实现自定义的显示效果;

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步法则;只展示驾驶员真正想要的内容;使用语音控制;

Day 20:Android M中的Android for work API

Day 25:Android M preview介绍

Day 26:Chrome支持把web应用“安装”到桌面:去掉地址栏,有主题,有icon,直接启动

上一篇: 安卓开发技能树 下一篇: WebRTC