当前位置: 首页 > 编程日记 > 正文

Android 开发者必知的开发资源

英文原文:Bongzimo  翻译: ImportNew-黄小非

译文链接:http://www.importnew.com/3988.html


Android 开发者必知的开发资源

随着Android平台市场份额的持续猛增 ,越来越多的开发者开始投入Android应用程序的开发大潮。如果您是一位2013年刚刚入行的Android开发新兵,恭喜你,因为这个平台已经在过去几年里变得愈发成熟了,绝对值得住你全情投入。目前来看,Android现成的开发资源早已经汗牛充栋,我们这篇帖子,就是要在浩如烟海的资源中挑出最重要的那些,呈现给你。

本帖对Android开发菜鸟和中级老兵同样适用,因为本帖重点列出了那些最常用的Android开发资源。

推荐书籍

你或许觉得,都2013年了,再去看个什么书来学习Android开发,这方法应该早就过时了。没错,或许你的想法是对的。但是我们还是推荐按照过时的办法来。理由的话,请参看: Programmers Don’t Read Books – But You Should (作者为:Jeff Atwood)

我推荐下面两本书:

The Busy Coder’s Guide to Android DevelopmentThe Busy Coder’s Guide to Android Development
  • 《The Busy Coder’s Guide to Android Development》(Mark Murphy著)。这本书最大的特色就在于它的覆盖广度(此书有超过2000页的篇幅),而且更新频率很高(平均每2个月更新一次)。这本书对于快速进化的Andoird平台来说,应当是很具有榜样性质的。作者Mark Murphy本人还设立了常规答疑环节,这样本书的读者就能够向作者直接提问。本书的示例源代码全部都发布在 github上面。所以综上所述,强烈推荐。
  • 《Smashing UI 》(Juhani Lehtimaki著)。对于那些关注如何做出顶级UI设计的Android开发者来说,此书无可挑剔。
Smashing UISmashing UI

developer.android.com 官方开发者站点推荐资源

在动手编写第一个Android应用之前,用心读一读Android Design章节。尤其是下面的这些文章:

  • Devices and Displays  (设备和显示)
  • Touch Feedback   (触摸反馈)
  • Metrics and Grids (度量和网格)
  • Iconography (图像研究)

同时也请下载Downloads部分的代码,这些代码囊括了Android图标和控件的设计模板,源文件,样式以及无样式图标等等。

那么读完了这些以后就可以开始编程了么?不,最好连下面的东西也一起读:

  • Best Practices for User Experience & UI (a must read) (用户体验和用户接口最佳实践——必读)
  • Best Practices for Performance  (性能最佳实践)
  • Displaying Bitmaps Efficiently (高性能位图显示)
  • Adding Animations (also see NineOldAndroids library) (动画效果——同时也需要看NineOldAndroids库的介绍)
  • Tools help (开发工具介绍)
  • SDK Samples (SDK示例)

StackOverflow 推荐资源

很多Android核心框架的工程师,开发者布道师以及Android开发专家都会经常到stackoverflow.com上助人为乐。以下是关于Android最热门问题的清单。我已经订阅了很多高手的RSS feeds, 例如:CommonsWare (Mark Murphy), Dianne Hackborn, Romain Guy, Reto Meier, Trevor Johns, Roman Nurik, Adam Powell (感谢, @remdroid!).

Blogs 推荐资源

很多博客能够提供给你最好最新的Android开发资源

  • Android Dev Weekly (博主 Gyuri Grell)。这是一个极好的博客,可以为Android新手提供一手的开发新闻。
  • Official Android developers blog。这是一个绝对值得一看的博客档案,里面的很多东西都是干货,比如:Avoiding memory leaks (如何防止内存泄露), Memory Analysis for Android Applications (Android应用程序内存分析).
  • Romain Guy。来自Android核心框架组工程师的博客。一旦你开始熟悉Android开发了以后,一定要阅读他写的Android Performance Case Study这篇博文。当然,他的博客还包含一些非技术的内容,比如:great photographer (优秀的摄影师)
  • Codependent(博主:Chet Haase),Chet Hasse是Android动画框架的创始人(Youtube上的Android开发者频道上有Chet Hasse的专题节目DevOps——译者注)
  • The CommonsBlog (博主:Mark Murphy)
  • Cyril Mottier 的Android博客。这个博客里的博文都很有深度,而且资源非常丰富。最新更新的博文包括:ListView Tips & Tricks #5: Enlarged Touchable Areas, Tweeted Android Development Tips, The Google Maps Android API V2 Utopia, Android App Launching Made Gorgeous, “Pull-to-refresh”: An Anti UI Pattern on Android.
  • Styling Android (博主:Mark Allsion)
  • Daniel’s Lew的Coding Thoughts —— 此博客的作者是美国Expedia公司的著名Android应用 Hotels and Flights(正式名称叫Mobiata)的开发人员之一,他的博客经常能给出很多有价值的提示。

Google+ 推荐资源

在Google+尚未成为社交网络的时候,它就已经是Android开发资源的一块瑰宝了。以下是一些你应该关注的Google+账号: Tor Norbye (他是ADT的开发者之一), Dianne Hackborn, Romain Guy, Chris Banes, Roman Nurik, Nick Butcher, Adam Powell, Rich Hyndman, Cyril Mottier, Paul Burke, Jeff Gilfelt.

记住一定要关注 Jake Wharton 这个人,他是ActionBarSherlock,ViewPageIndicator,NineOldAndroid以及其他很多著名的开源Android库的作者。

同时也请考虑加入Google+上的一些社区,例如:

  • Official Android dev community (Google+上的官方Android开发者社区)
  • Android designer community

开源库推荐

以下是一些最有用的开源库项目:

  • ActionBarSherlock,作者是Jake Wharton。这个库在Android 4.0+版本上通过本地action bar实现了action bar设计模式,并通过单个API和主题在4.0之前的版本上做出了一个自定义action bar实例。
  • ViewPagerIndicator,作者同样是Jake Wharton。Paging indicator组件与ViewPager都来自于Android支持库和ActionBarSherlock。他们的最初原型是来自于 Åkerfeldt的ViewFlow。
  • NineOldAndroids,作者是Jake Wharton。这个Android库使用Honeycomb 版本的动画API,对直到1.0版本的Android系统全部适用。
  • Universal-Image-Loader,作者Sergey Tarasevich。这个库具有强大的功能和灵活性,可支持图像的异步加载,缓存和显示。
  • UrlImageViewHelper,作者Koushik Dutta。 UrlImageViewHelper可以根据一个URL来找到图形,并填充到ImageView里,还能实现对图像的自动下载,存储以及位图缓存。
  • Android-BitmapCache,作者Chris Banes。这是一个很有特色的缓存库,用于缓存Android位图对象。
  • DiskLruCache,作者Jake Wharton。这是一个基于磁盘系统的LRU缓存库,主要针对于Android平台,用Java实现。

在github 上搜索[android] 项目,你可以找到更多的开源库。而且,DevAppsDirect 应用提供了很好的功能,去归纳目前已有的开源视图,组件和工具库。

GOOGLE I/O TALKS 推荐资源

总的来说Google I/O的门票现在已经火爆到了一定程度了,你基本上是不可能买到票去现场的,不过所幸的是,所有Google I/O的主题演讲都会被放到网上,并且提供PPT下载链接。以下是Goolge I/O Android相关的所有主题演讲的链接:

2012年, 2011年,2010年, 2009年.

其中一些主题是我非常喜欢的,如:

  • Advanced Design for Engineers(工程师设计进阶),演讲人 Alex Faaborg and Christian Robertson (2012年)
  • For Butter or Worse: Smoothing Out Performance in Android UIs(Butter项目:让Android UI 性能更加流畅)演讲人: Chet Haase, Romain Guy (2012年)
  • Navigation in Android(Android导航)演讲人: Adam Powell, Richard Fulcher (2012)。如果你认为Android的back/up按键问题很好解决的话,看看这个视频你就不会这么想了。
  • So You’ve Read the Design Guide; Now What?(学完了设计指南,然后?)演讲人:Daniel Lehmann, Tor Norbye, Richard Ngo (2012)
  • What’s New in Android? (Android更新介绍)演讲人:Chet Haase, Romain Guy, Daniel Sandler (2012)
  • What’s New in Android Developers’ Tools(ADT更新介绍)演讲人:Xavier Ducrohet, Tor Norbye (2012)
  • Memory management for Android Apps(Android应用程序内存管理)演讲人:Patrick Dubroy (2011)
  • Writing zippy Android apps(编写敏捷的Android应用)演讲人:Brad Fitzpatrick (2010)
  • Developing Android REST client applications (开发基于REST的Android客户端应用)演讲人:Virgil Dobjanschi (2010)

停!太多了!

如果本贴的内容太过丰富,让你觉得应接不暇,没关系,有些内容是专门针对于初学者的,如果你不是初学者的话,你可以只关注本文中那些相对高级一些的主题。

关于如何有效地选择内容,以下是几点建议:

  • 首先,看书。本文一开始就提到了,你应当要看书。看书能为你打下Android开发的牢固知识基础。
  • 订阅本文中提到的博客内容,以及stackoverflow的问答内容(通过RSS)
  • 在你的Google+账户上创建android-dev开发圈子(当然,由于某些原因,墙内的朋友们可以在墙内的社交媒体或者论坛上建立自己的Android开发圈子——译者注)

Android巨星

在Andoird开发者生态系统的持续繁荣的过程中,逐渐涌现出了许多天赋异禀的巨星级开发人员,尤其下面这两位,他们的工作让其他Android开发者们受益匪浅。他们是:Mark Murphy 和 Jake Wharton。

Mark和Jake在Android开源项目上面贡献良多,可以说早已功成名就。如果你有幸见到他们,一定要请他们喝喝啤酒,表示感谢。(不过根据回帖的情况来看,Mark Murphy本人不喜欢喝酒,而有一位叫Chris Bane的网友愿意帮他喝,所以要请客的话可以直接请Chris Bane,并且,如果你一直坚持阅读到了现在,那你就明白感谢Mark Murphy最好的办法就是去订阅他的博客 CommonsWare——原文作者)。

显然,多数Google的Android开发者和设计师也为Android系统做了很多工作。他们中的部分人在本文中也有提到。

结语:

那就到这儿吧。现在你应该了解了不少开发信息和工具了,这一切都是为了让你写出优秀的Android应用程序!好吧,还有一点:你还需要一个优秀的Android UI设计师,不过由于本贴是技术贴,这就不在讨论范围之内了。那么现在,你应该做好充分的准备来开始做你的第一个Android应用了。

如果你觉得我遗漏了哪些优秀的资源,那么就在评论你留言补充吧,我会定时更新这篇文章的内容的。

祝,编码愉快!

英文原文:Bongzimo  翻译: ImportNew-黄小非

译文链接:http://www.importnew.com/3988.html

【如需转载,请在正文中标注并保留原文链接、译文链接和译者等信息,谢谢合作!】

转载于:https://www.cnblogs.com/leonxyzh/p/7289084.html

相关文章:

SQL Server各种日期计算方法

通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几…

TensorFlow入门

为什么80%的码农都做不了架构师?>>> TensorFlow核心教程 导入TensorFlow计算图tf.train API 完成程序tf.contrib.learn 基本用法自定义模型下一步原文链接 : https://www.tensorflow.org/get_started/get_started 译文链接 : http://www.apache.wiki/pa…

C#实现类似qq的屏幕截图程序

因为近来想写个类似于远程桌面监控的程序,该程序中要用到屏幕捕捉.为实现该程序的一部分功能,做了个小DEMO.程序很简单,用到的技术也不多,只能实现类似qq的截图功能(方法虽然很笨) 程序流程如下:1.截取整个屏幕并保存 2.新开一个全屏窗口,将保…

构建RESTful风格的WCF服务

RESTful Wcf是一种基于Http协议的服务架构风格。 相较 WCF、WebService 使用 SOAP、WSDL、WS-* 而言,几乎所有的语言和网络平台都支持 HTTP 请求。 RESTful的几点好处: 1、简单的数据通讯方式,基于HTTP协议。避免了使用复杂的数据通讯方式。 …

又一起“删库”:链家程序员怒删公司 9TB 数据,被判 7 年

整理 | 王晓曼来源 | CSDN(ID:CSDNnews)1月6日,北京市第一中级人民法院公布前链家员工破坏计算机信息系统罪一案的刑事裁定书,被告人因不满工作调整,删公司9TB数据。北京市海淀区人民法院判决认定&#xff…

hbase以mr导数据方式

./hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator"," -Dimporttsv.columnsHBASE_ROW_KEY,f1:name,f1:age,f1:addr t1 /zldata/demo1.csv转载于:https://www.cnblogs.com/sajia/p/6972420.html

Php中正则小结(一)

一.概念 语法模式类似perl.表达式必须用分隔符闭合,比如一个正斜杠(/). 分隔符可以是任意非字母非数字,除反斜杠(\)和空字节之外的非空白ascii字符 如果分隔符 在表达式中使用,需要使用反斜线进行转义。 二.组成 元字符 一个正则表达式基本组…

在C#.net中如何操作XML

在C#.net中如何操作XML需要添加的命名空间:using System.Xml; 定义几个公共对象:XmlDocument xmldoc ;XmlNode xmlnode ;XmlElement xmlelem ; 1,创建到服务器同名目录下的xml文件: 方法一:xmldoc new XmlDocument…

精彩碰撞!神经网络和传统滤波竟有这火花?

作者 | 凌霄出品 | AI大本营(ID:rgznai100)惯性传感器在航空航天系统中主要用于姿态控制和导航。微机电系统的进步促进了微型惯性传感器的发展,该装置进入了许多新的应用领域,从无人驾驶飞机到人体运动跟踪。在捷联式 …

软考新思维--2017年上半年信息系统项目管理师上午试题分析与答案(试题16-20题)...

2017年上半年信息系统项目管理师上午试题分析与答案(试题16-20题) 16.信息系统的安全威胁分成七类,其中不包括()A、自然事件风险和人为事件风险B、软件系统风险和软件过程风险C、项目管理风险和应用风险D、功能风险和效…

ASP.NET 2.0 读取配置文件[INI](示例代码下载)

(一). 功能 操作配置文件[*.ini]类 (二). 代码 1. 核心类文件 INIFILE.cs 代码 1 ///<summary>2 ///INIFILE 操作类3 ///</summary>4 publicclassINIFILE5 {6 [DllImport("kernel32")]7 privatestaticexternlongWritePrivateProfileString(stringsectio…

CSDN送会员?免费的!都来领!

距离春节还有不到一个月你准备好给家人的春节礼物了吗&#xff1f;疫情下&#xff0c;为了让程序猿同学开心加班小编提前准备了一份牛年大礼 周五福利日&#xff0c;人人都可免费领会员&#xff01;助你提前实现CSDN会员卡自由&#xff01;奖品多多&#xff0c;不仅有CSDN月卡会…

BGP相邻体之间磋商的过程

一.BGP的几个概念 空闲&#xff08;IDLE&#xff09; 等待由管理员发起的START事件 正确&#xff0c;到连接状态 错误&#xff0c;回到空闲状态 连接状态&#xff08;Connect&#xff09; 等待TCP的连接是否成功&#xff0c;以期望获得一个对等体 正确&#xff0c;到开放发送Op…

去除ios input部分默认样式

input[typesubmit],input[typebutton]{-webkit-appearance:none;outline:none } input{border-radius: 0;}转载于:https://www.cnblogs.com/bbqwwb/p/6993064.html

Asp.net 2.0 C#实现压缩/解压功能

Asp.net 2.0 C#实现压缩/解压功能 (示例代码下载) (一). 实现功能对文件及目录的压缩及解压功能(二). 运行图片示例(三).代码 1. 压缩类 1/**//// <summary> 2/// 压缩类 3/// </summary>4publicclassZipClass5{ 6 public static void ZipFile(string Fi…

图像处理工具包ImagXpress的多页TIFF编辑API的使用(1)

2019独角兽企业重金招聘Python工程师标准>>> 在ImagXpress中用用于处理TIFF文件的TIFF编辑API&#xff0c;但是怎么使用呢&#xff0c;下面来具体的看看 ImagXpress中的ImageX.DeletePage 方法一次可以删除一个页面&#xff0c;ImageX.DeletePages 方法允许开发人员…

用Matplotlib轻松复刻分析图,看看哪个城市买房最自由

作者 | 费弗里来源 | Python大数据分析简介前不久「贝壳研究院」基于其丰富的房地产相关数据资源&#xff0c;发布了「2020 新一线城市居住报告」&#xff1a;图1而在这个报告中有几张数据可视化作品还是比较可圈可点的&#xff0c;作为&#xff08;在模仿中精进数据可视化&…

Python 代码规范

前言 Python 学习之旅&#xff0c;先来看看 Python 的代码规范&#xff0c;让自己先有个意识&#xff0c;而且在往后的学习中慢慢养成习惯 目录 Python代码规范一、简明概述 1、编码 如无特殊情况, 文件一律使用 UTF-8 编码如无特殊情况, 文件头部必须加入#-*-coding:utf-8-*-标…

二级域名用asp.net 2.0的实现方案

本人所了解有两种方案&#xff0c;可能还有其的方式&#xff0c;希望大家多多讨论&#xff01; 基本思路&#xff1a;1. 域名支持泛解析&#xff0c;即是指&#xff1a;把A记录 *.域名.com 解析到服务器IP&#xff0c;服务器IIS中做绑定&#xff0c;绑定时主机头为空;2. 为了…

又一例“监视员工?”百度回应:和 996 无关,目前没有任何应用

整理 | 王晓曼图源 | 视觉中国出品 | 程序人生 &#xff08;ID&#xff1a;coder _life&#xff09;1月13日晚间&#xff0c;针对百度公开“员工工作状态预测”专利惹争议一事&#xff0c;百度在官方微博火速回应称&#xff0c;这是一个管理上的“人岗匹配”衡量方法&#xff0…

僵死进程和僵尸进程

一个进程在调用exit命令结束自己的生命的时候&#xff0c;其实它并没有真正的被销毁&#xff0c;而是留下一个称为僵尸进程&#xff08;Zombie&#xff09;的数据结构&#xff08;系统调用exit&#xff0c;它的作用是使进程退出&#xff0c;但也仅仅限于将一个正常的进程变成一…

AC日记——[HNOI2010]BOUNCE 弹飞绵羊 洛谷 P3203

[HNOI2010]BOUNCE 弹飞绵羊 思路&#xff1a; SBlct&#xff1b; 代码&#xff1a; #include <bits/stdc.h> using namespace std; #define maxn 200005 int n,m,f[maxn],ch[maxn][2],rev[maxn],ki[maxn],sta[maxn],top,lit,size[maxn]; inline void in(int &now) {c…

C#与RSS亲密接触

讲述动态生成RSS文件的方法。动态生成RSS文件也基本有两种方法&#xff0c;一种是用字符串累加的方法&#xff0c;另一种是使用xml文档生成的方法。字符串累加的方法也比较简单&#xff0c;我也就不多说了&#xff0c;这里着重说一下生成XmlDocument的方法&#xff0c;包括各种…

2020 ACM Fellows 名单出炉,13 名华人入选,7 名来自国内!

【编者按】一年一度的 ACM Fellow 名单现已新鲜出炉&#xff01;向来以严格审查闻名的ACM Fellows&#xff0c;今年居然共选择了 95 名科学家&#xff0c;其中还有 13 位华人&#xff0c;来看看都是哪些大佬吧&#xff01;整理 | 郑丽媛出品 | CSDN&#xff08;ID&#xff1a;C…

Mybatis调用Oracle的存储过程

如何使用Mybaits调用数据库中的存储过程&#xff0c;下面以Oracle数据库的为例&#xff1a;1&#xff0e;在数据库中创建以下的存储过程&#xff1a;2&#xff0e;编写SQL映射文件WxclDAO.xml&#xff1a;<select id"selectWxcl2" parameterType"java.util.M…

JavaScript - 数据类型和变量

计算机顾名思义就是可以做数学计算的机器&#xff0c;因此&#xff0c;计算机程序理所当然地可以处理各种数值。但是&#xff0c;计算机能处理的远不止数值&#xff0c;还可以处理文本、图形、音频、视频、网页等各种各样的数据&#xff0c;不同的数据&#xff0c;需要定义不同…

用Socket发邮件的代码(可以群发)

qunFa.aspx文件的代码&#xff1a; <%... Page language"c#" Codebehind"qunFa.aspx.cs" AutoEventWireup"false" Inherits"liuwei.hanmail.qunFa" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN&qu…

rcp(插件开发)插件B需要引用插件A中的jar包-如何处理依赖关系

如果插件B需要引用插件A中的jar 通常需要以下几步&#xff1a; 1.插件B要依赖插件A 2.在插件B的build path中添加插件A的jar包 3.插件A的runtime导出插件B中使用jar的package

微软Cortana全面升级神经网络语音,效果堪比真人发音

近日&#xff0c;微软在全球范围内对Cortana进行了神经网络语音全面升级&#xff0c;升级后的Cortana更加自然流畅&#xff0c;语音效果堪比真人发音。 以下是Cortana不同国家、不同语言升级前后语音效果对比&#xff1a; Cortana音频 此次升级利用了深度神经网络技术&#…