岁月如歌


  • 首页

  • 归档

  • 分类

  • 标签

  • Android

  • Python

  • Notes

  • Links

  • 关于

  • 搜索
close
Android 和 Java 资源汇总

API 等级

API等级1:Android 1.0
API等级2:Android 1.1 Petit Four
API等级3:Android 1.5 Cupcake
API等级4:Android 1.6 Donut
API等级5:Android 2.0 Éclair
API等级6:Android 2.0.1 Éclair
API等级7:Android 2.1 Éclair
API等级8:Android 2.2 - 2.2.3 Froyo
API等级9:Android 2.3 - 2.3.2 Gingerbread
API等级10:Android 2.3.3-2.3.7 Gingerbread
API等级11:Android 3.0 Honeycomb
API等级12:Android 3.1 Honeycomb
API等级13:Android 3.2 Honeycomb
API等级14:Android 4.0 - 4.0.2 Ice Cream Sandwich
API等级15:Android 4.0.3 - 4.0.4 Ice Cream Sandwich
API等级16:Android 4.1 Jelly Bean
API等级17:Android 4.2 Jelly Bean
API等级18:Android 4.3 Jelly Bean
API等级19:Android 4.4 KitKat
API等级20:Android 4.4W
API等级21:Android 5.0 Lollipop
API等级22:Android 5.1 Lollipop
API等级23:Android 6.0 Marshmallow

恶补编程基础

  • 编程入门指南

Docs

  • 官方API docs:英文
  • Android API:有些是中文,API Level最高只有19

工具网站

  • AndroidDevTools
  • Android 开发中文站

重点推荐

  • Android开发最佳实践
    摘要:前段时间,Google公布了Android开发最佳实践的一系列课程,涉及到一些平时开发过程中应该保持的良好习惯以及如何使用最新的Android Design Support Library来快速实现官方推荐的Material Design样式的应用。

  • 如何正确地写出单例模式
    摘要:单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那这篇文章可能会帮助到你。

  • 深入理解Android(二):Java虚拟机Dalvik

  • 近5年133个Java面试问题列表

技术博客

  • 中国部分 Android 开发者
  • 国外部分 Android 开发者
  • 张明云
  • 郭霖:《第一行代码》作者
  • Trinea:阿里巴巴 Java 开发工程师 Github
  • stormzhang
  • mariotaku
  • eclipse_xu:《Android群英会》作者徐宜生
  • xiaanming:大量深入的Android技术文章
  • 沧笙踏歌:某 android 新手
  • 大头鬼Bruce:中国 RxJava 教父级人物
  • yongjhih的Gitbook:RxJava 相关
  • DaKa:某Android
  • liuhe688
  • 嘟嘟独立博客 Java相关

性能优化

  • 值得推荐的Android应用性能检测工具列表
  • 行者无疆
  • Best Practices for Performance
  • Android Performance Patterns:YouTube视频
  • 胡凯:腾讯Android
  • Android-Performance.com:一个只关注安卓性能优化以及最佳实践的Blog

第三方库

MaterialEditText

  • MaterialEditText:顾名思义,增加Material Design 特性的EditText

RxJava

  • RxJava

资料除了上面的技术博客之外,还有:

  • Awesome-RxJava
    摘要:RxJava resources
  • 开发技术前线中的RxJava资料
  • 韩国 GDG 的 RxJava 实例
  • 一些 RxJava Examples
  • 中文 RxDocs
  • [The RxJava show with Dan Lew (Part 1)(http://fragmentedpodcast.com/episodes/3/) (Part 2):两篇Fragmented Podcast的RxJava专题,第一篇入门介绍,第二篇讨论了很多RxJava的坑和很多Operators的用法
  • Dan Lews RxJava Series
  • Learning RxJava With Android by Example
  • Intro to Rx you’ve been missing

开源项目

  • Android开源项目分类汇总
  • Demo大全
  • 开源项目集 每天更新最新,最热,最有意思的开源项目
  • Google项目合集 供初学者学习代码和规范
  • GoogleSamples
  • 开源中国客户端代码 值得学习
  • 小米开源项目
  • Search Android - Google Samples:谷歌官方会经常推出一些Android 新技术的Demo,比如每年的IO App 等等
  • Android Api demos:下载SDK 之后,会在<sdk-insall-folder>/samples/中查看系统自带的好多Demo。
  • 有没有适合 Android 开发初学者的 App 源码推荐?:知乎问题
  • Android小项目合集

学习资料

基础

  • Android官方培训课程中文版
  • Android学习之路:stormzhang的经验之谈
  • 慕课网
  • Developing Android Apps Google和Udacity合作提供
  • Developing Android Apps 中文 SRT 发布区
  • Developing Android Apps 第一课中文版发布
  • Google Guava官方教程(中文版)

提高

  • 腾讯Bugly
  • Info演讲部分与Android相关
  • 阿里技术沙龙
  • 泡在网上的日子

常用图片

Activity生命周期.png
fragment_lifecycle.png
activity_fragment_lifecycle.png


开发工具

  • AndroidStudio
    AndroidStudio社区
    提高效率的 Android Studio 技巧汇总

UI

配色

APP UI

素材

SketchAppSources Sketch资源
EasyIcon 图标搜索
ToIcon 图标搜索
Noun Project 图标搜索
新鲜热辣!一组实用的MATERIAL DESIGN风格素材!
该跟上潮流了!一大波优质的MATERIAL DESIGN资源免费下载

Material Design

MaterialDesign中文版 极客学院
Materialpalette Material配色工具
Materialup Material设计灵感
Material 优设MaterialDesign版
超赞!谷歌设计师的MATERIAL DESIGN实践心得
学霸的自学笔记!MATERIAL DESIGN设计规范学习心得
超全面总结!深聊MATERIAL DESIGN引领的设计趋势

Google Material资源

配色方案
界面模板:手机
界面模板:平板
界面模板:桌面
界面模板:线框图
英文字体Roboto
Roboto介绍
中文字体Noto
组件集psd
组件集ai
组件集sketch
系统图标


Material标准

完整版见MaterialDesign学习笔记

颜色

a-10.png

黑色:[87% 普通文字] [54% 减淡文字] [26% 禁用状态/提示文字] [12% 分隔线]
白色:[100% 普通文字] [70% 减淡文字] [30% 禁用状态/提示文字] [12% 分隔线]

图标

  • 桌面图标尺寸:48dp x 48dp

  • 小图标尺寸:24dp X 24dp,图形限制在中央20dp X 20dp区域内。
    栅格系统。线条、空隙尽量保持2dp宽,圆角半径2dp。特殊情况相应调整。


    小图标的颜色使用纯黑与纯白,通过透明度调整:
    黑色:[54% 正常状态] [26% 禁用状态]
    白色:[100% 正常状态] [30% 禁用状态]

图片

  • 图片上的文字,需要淡淡的遮罩确保其可读性。深色的遮罩透明度在20%-40%之间,浅色的遮罩透明度在40%-60%之间。

  • Android L可以从图片中提取主色,运用在其他UI元素上

  • 图片的加载过程非常讲究,透明度、曝光度、饱和度3个指标依次变化,效果相当细腻。

文字

  • 英文字体使用Roboto,中文字体使用Noto。
    Roboto有6种字重:Thin、Light、Regular、Medium、Bold 和 Black
    Noto有7种字重:Thin, Light、DemiLight、Regular、Medium、Bold 和 Black。

  • 常用字号

    12sp 小字提示
    14sp(桌面端13sp) 正文/按钮文字
    16sp(桌面端15sp) 小标题
    20sp Appbar文字
    24sp 大标题
    34sp/45sp/56sp/112sp 超大号文字

布局

  • 所有可操作元素最小点击区域尺寸:48dp X 48dp

  • 栅格系统的最小单位是8dp,一切距离、尺寸都应该是8dp的整数倍。

  • 常见尺寸与距离

    顶部状态栏高度:24dp
    Appbar最小高度:56dp
    底部导航栏高度:48dp
    悬浮按钮尺寸:56x56dp/40x40dp
    用户头像尺寸:64x64dp/40x40dp
    小图标点击区域:48x48dp
    侧边抽屉到屏幕右边的距离:56dp
    卡片间距:8dp
    分隔线上下留白:8dp
    大多元素的留白距离:16dp
    屏幕左右对齐基线:16dp
    文字左侧对齐基线:72dp

组件

  • Bottom Sheets,列表或网格式

  • Cards,统一2dp圆角

    这里写图片描述

  • Dialogs
    取消类操作项放在左边,引起变化的操作项放在右边。

  • Grids,网格中的单元格间距是2dp或8dp

  • Lists
    如果列表项内容文字超过3行,请改用卡片。如果列表项的主要区别在于图片,请改用网格。

  • Menus

  • SnackBars & Toasts

  • Tabs,选中项的下划线高度是2dp。

  • Text fields,激活状态和错误状态,横线的宽度变为2dp

    输入框提示文字,可以在输入内容后,缩小停留在输入框左上角

    这里写图片描述

  • ToolTips

  • Navigation Drawer


经验教训

  1. 小米4真机调试,除了开启开发者选项和USB调试外,必须用买手机时附带的数据线。就算小米2的数据线也不行,虽然一样能用来传输文件,但是调试时显示Unknown
  2. 还是小米,写了个收短信的APP,在模拟器上测试通过。但是在小米4上却无法收到。最后发现权限管理里该APP的默认短信权限是询问,把它改成允许才成功。不知道有没有更好的解决办法,在配置文件里申请了权限还不够。
  3. 电脑上的文件,在安卓上用自己写的APP打开是乱码。百度了原来安卓上使用的是utf-8编码,在IO流中指定即可。
  4. 这个实际上是Java写Java工具时遇到过的坑,现在写安卓用到Calendar又想了起来。一定要加上这一句calendar.setTimeZone(TimeZone.getTimeZone("GMT+8"));免得出现奇怪的时间问题。
  5. 如果XML中注册的组件没有写layout-width或layout-height属性,则APP启动时会报错退出。
  6. Android 重写了 toString()方法,如果需要用Java默认的toString()来识别是否同一对象,需要自己实现一次。
  7. 使用adb命令安装APK时,就算文件在当前目录下,也必须加一个/,如:adb install /xxx.apk

To Be Continued …


最佳实践

App中再按一次退出

法一:

1
2
3
4
5
6
7
8
9
10
private long exitTime = 0;
@Override
public void onBackPressed() {
if ((System.currentTimeMillis() - exitTime) > 2000) {
Toast.makeText(this,R.string.press_again_exit_app,Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
finish();
}
}

法二:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public Toast toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toast = Toast.makeText(this, "再按一次退出", Toast.LENGTH_LONG);
}

@Override
public void onBackPressed() {
if(null == toast.getView.getParent()){
toast.show();
}else{
System.exit(0);
}
}

  • 文章目录
  • 站点概览
loveNight

loveNight

自古求真皆寂寞,唯挑心灯伴夜霭

46 日志
24 分类
68 标签
RSS
Github Weibo Email SegmentFault Zhihu
友情链接
  • 我的CSDN博客
  • 我的新浪博客
  • 腾讯分析
  1. 1. API 等级
  2. 2. 恶补编程基础
  3. 3. Docs
  4. 4. 工具网站
  5. 5. 重点推荐
  6. 6. 技术博客
    1. 6.1. 性能优化
  7. 7. 第三方库
    1. 7.1. MaterialEditText
    2. 7.2. RxJava
  8. 8. 开源项目
  9. 9. 学习资料
    1. 9.1. 基础
    2. 9.2. 提高
    3. 9.3. 常用图片
  10. 10. 开发工具
  11. 11. UI
    1. 11.1. 配色
    2. 11.2. 素材
    3. 11.3. Material Design
    4. 11.4. Google Material资源
  12. 12. Material标准
    1. 12.1. 颜色
    2. 12.2. 图标
    3. 12.3. 图片
    4. 12.4. 文字
    5. 12.5. 布局
    6. 12.6. 组件
  13. 13. 经验教训
  14. 14. 最佳实践
    1. 14.1. App中再按一次退出
© 2015 - 2017 loveNight   |  Google网站地图   |  百度网站地图
powered by Hexo
主题 - NexT.Pisces
  |  本站总点击 次   |  您是第 位访客