注意对隐式Intent的运行时检查保护
Intent intent = new Intent(Intent.ACTION_XXX);
ComponentName componentName = intent.resolveActivity(getPackageManager());
if(componentName != null) {
String className = componentName.getClassName();
}
使用NotificationCompat兼容包来处理消息通知
解决Android系统版本差异导致的Notification兼容性问题
Android 6.0 Marshmallow的运行时权限
使用MediaSessionCompat操作音乐的播放
使用Toolbar替代ActionBar
Toolbar是一个相比起ActionBar更加丰富,更加灵活的组件,另外它的布局本身还是View Hierarchy的一部分,这就意味着可以对Toolbar执行动画操作,增加点击滑动事件等等,甚至我们还可以在一个页面里面加入两个Toolbar
使用AppBarLayout并处理滑动手势
AppBarLayout是一个在android.support.design兼容包(这里有关于该兼容包的官方博客介绍)里面的新推出的组件,它是一个垂直方向的LinearLayout,包装了很多Material Design的设计元素,例如滑动手势的处理。
使用AppBarLayout需要注意下面几个要点:
首先,AppBarLayout必须作为CoordinatorLayout的直接子View;
其次,在AppBarLayout里面必须包含一个ToolBar;
最后,在CoordinatorLayout里面可以添加那些可以滑动的组件,例如RecyclerView。
使用SearchView来实现搜索功能
Navigation Drawer, DrawerLayout, NavigationView
Tabs and ViewPager
ViewPager是Android上面实现横向滑动的基础组件,能够帮助大家迅速搭建类似上面图示一样的左右滑动交互设计。ViewPager需要使用PagerAdapter来提供内容,除了PagerAdpater,Android还提供了FragmentPagerAdpater与FragmentStatePagerAdapter,前者会把所有的fragment都保存在内存中,以便提高切换速度,后者仅仅保留了fragment状态信息,fragment还是会进行正常的重建与销毁。
为了实现Tab与ViewPager的绑定,我们可以使用Android Design Support Library提供的TabLayout,仅仅需要按照下面的代码示例一样把TabLayout与ViewPager做一个绑定,就能够实现左右滑动与点击Tab快速切换的功能:
Making Apps Accessible
Gsonformat
Android Postfix Completion
Lifecycle Sorter
CodeGlance