安卓应用软件开发公司-EasyLinkIn众创空间:学习安卓软件开发的什么技术?
EasyLinkIn众创空间(elizckj)
每 天 懂 一 点 物 联 网 。
提问:
本人小白一个,想请教一下学习安卓软件开发除了Java之外还需要额外再学习一下其他的什么技术?有什么好的入门书籍可以推荐一下?或者是网站也可以,谢谢!
天方夜谭谭谭:
学习任何知识,都应该有一个从无到有,从少到多,从小到大的过程。我听到一个朋友说过:做工程的人的学习方式都是自顶向下式的结构,也就是先去研究问题,遇到不明白的问题再去学习相关知识,这样做进步很快,但是遇到真正的难题便束手无策了。而做科研的人崇尚的是自底向上的学习方式,这样做的话使得基础扎实能够稳步前进,但是耗时较多。
虽然我比较崇尚输出是最好的学习方式,但是每个人在最开始学习一门知识的最初阶段,都需要学习最基本的知识,也就是要有常识。比如你得知道java的基本语法知识,java的面向对象的思想还有各种细而繁琐的知识点。当理解了这些知识后,还并不能骄傲,还需要大量的练习来巩固这些知识。然后Android学习安卓也是这个套路。
虽然我学习Android的时间并不是很长,但是我可以说下自己学习的过程。
最开始必然是java基础,因为之前学过C、Python和C++,所以对编程语言和思想也并不陌生。学习java我看的是mars老师的视频---java4android,已经不是一两个人在说这个视频好了,在我看到的一些人的回答中,基本上都推崇这部视频,所以它必然是有它独到之处的,想学java的人可以把这套视频好好看个几遍,并辅以练习。相信学完之后对基本知识也很熟悉了(虽然还不够==)。
学完java基础后,再去学习Android吧,我推荐的是郭霖大神的《第一行代码》,这个我把全书都看完了,真心好,跟上面的java视频一样都很经典,我比较喜欢的是每一个知识点后的那些小故事,还记得每学完一个知识点,都挺期待下一个故事是什么情节。对于Android基本知识,这本书介绍得还挺好,确实适合新手学习。现在有时间我还会翻翻这本书,虽然它对我的作用不像之前那么明显了,但是作为启蒙书籍我还是挺感激它的!自此,自底向上的学习方式便进行得差不多了。
基本上学完以上的基础后,可以独立开发一些简单的应用了,通过写一些功能简单的app来全面复习和巩固自己之前的知识,我觉得输出是最好的学习方式,通过开发软件能很好地检测自己的技能点升到多少级了。遇到问题要Google一下(而不是百度一下),此刻便进入到自顶而下的学习方式中了,以后的学习方式恐怕都会是这样的了(当然如果重新学习新的知识就另说了)。
ps:之前看到有人说java的特点就是库多库多库多,在后面的学习中肯定要多去github上找找一些开源项目,多向前辈们学习。
匿名用户:
安卓开发学习书籍
书的话建议买 精通Android2 ,或者 Android2高级编程 这两本书,讲解的细致,但是一定要结合sdk来看。国内的不要买。。。。(切身体会,千万别买)看完之后就可以自己动手做做项目了。
对于java基础,我现在的感觉是 如果要深入学习android平台,java基础一定要好(里边包括各种java类库的用法,本地代码jni什么的)。但如果平时随便做做应用的话,会面向对象编程就完全可以了。
安卓开发学习学习网站
DevStore(DevStore_移动互联网企业运营解决方案整合平台)
csdn中文IT社区
开源中国
论坛:
apkbus:Android开发论坛
eoe:Android开发_Android论坛
51CTO:51CTO技术论坛
安卓航班
自学的话平时就多看一些官方文档,帮助文档也是一个很好的参考资料,多看看,平时多敲代码,多看住哟啊哈斯看规范,看完之后去敲代码主要是在实践过程中发现错误,多做项目自然多遇见问题,遇见问题解决问题,下次自然就知道怎么解决,在实践中发现真理。
当然可以的话有一个老师还是很好的,但是要记得要是的作用只是引导,师傅领进门修行在个人。
包建峰:
首先来说下我的背景以及这大半年来我的自学情况吧:
1.本科通信工程,非计算机科班,大一学过C语言基础,后来因为专业课程需要,学了一点汇编以及Matlab。这部分经历我认为对于我后来的编程学习只有基础语法理解方面的帮助。
2.去年11月中开始系统学习编程语言,由于想做Android开发,所以入门语言选择了Java。
3.11月中到12月中,边看传智播客的一套视频边敲里面的练习。
4.12月中到1月中,20天左右时间看了《编程之美》,并用Java实现书里百分之五十左右的算法题,剩下的题由于难度太大 或者比较复杂,当时没有深入研究下去。
5.1月中到2月中,选择了网易公开课里面的《斯坦福大学公开课—编程方法学》这套视频,同样是边看视频,边完成里面的Assignment。在这里感谢帅帅同学@王帅 推荐这套视频。里面的Assignment题都是经典题目,对于初学者来说非常适合。
6.2月底开始学习Android语言,花了1个月左右的时间,照着《第一行代码》里面的例子,敲代码进行实现。
--------------------------------------------
由于在学习编程之前就有两个小产品的构思,所以也没有想自己基础是否打扎实了,先试着去实现,看看能不能做出个可用的产品来。截止到目前为止,两个小产品都已经开发完毕了,其中一个“苹果序列号查询”已经在小米、豌豆荚、Google Play、魅族Flyme等应用市场上线并且有了一版更新(4月14日上线,到目前为止下载量已经超过1000),它是下面这个样子的:
关于开发“苹果序列号查询”具体实现逻辑介绍,请移步(最近好像需要翻墙):JeffinBao - Android开发,读书,见人,行事
另一个是我的个人简历应用,仿照地图搜索的样式做的,它是下面这个样子的:
关于开发“JeffinBaoCV”这个个人简历应用的介绍,也请移步:JeffinBao - Android开发,读书,见人,行事
-----------------------------------------
很多知友在其他答案中已经列了很多资料了,我自己也是通过他们介绍的资料的其中一部分来进行学习的,所以资料方面,就不多说了,想说两点看似无关但我认为又比较重要的点:
1.有自己很强烈想要实现出来的想法
我在学习编程之前,上面两个应用的初步构想就已经在我脑中了,所以这半年多特别是今年2月底开始学习Android以来,我都是按照怎么去实现我脑中的想法去学习Android的。没有对于想要实现的东西有着强烈的愿望,我想我是很难坚持下来的。最终把自己的想法实现后,这种开心和一直进步的感觉,也是很鼓舞人心的。
2.“软实力”的加强
Android应用呈现给用户最多的是界面,所以界面是否美观是用户会不会选择去用的一个重要因素。对于工程师来说,如何提高自己的审美,进而把自己对美的理解融入到应用当中是很重要的。这不是说工程师一定要具备专业设计师的能力,这不太现实。但是如何保持界面整洁,在字体、颜色、排版上如何规范与统一,都是工程师需要在平时去提高的。
---------------------------------------------
写了这么多,不知道有没有帮助到题主,下面我也想安利下自己的应用以及在求职中的自己:
1.小米、豌豆荚、魅族Flyme、Google Play、锤子应用商店上搜索“苹果序列号查询”,有任何问题,欢迎反馈给我丫。
2.第二个应用做的是个人简历—JeffinBaoCV,没有上线,感兴趣的朋友可以通过下面链接下载(由于身边手机不多,可能在小屏幕低版本系统的手机上会有适配问题,如果有,也欢迎反馈给我丫,多谢):百度云 请输入提取密码.(提取码:9x6d)
3.下面是跟我有关一些主页的链接:
个人主页:JeffinBao - Android开发,读书,见人,行事
主要用于写技术文章和一些自己认为写得比较好的文章,刚开始用jekyll引擎不久,所以内容比较少。
GitHub主页:JeffinBao (Jeffin.Bao) · GitHub
主要用于托管自己的代码,寻找一些好的开源项目来学习使用。
如果你对我感兴趣,请私信我或者通过下面邮箱联系我吧,谢谢!
邮箱:bjf15387295596@gmail.com
扬阳洋:
你百度下AndroidDevTools
登录这个网站 就知道该怎么做了
开发工具 学习指南什么的都有
蔡翔宇:
之前回答过这种问题,我觉得上面高票的人说的都挺好,但是问题是可能你看不进去,对于我现在有一定的开发经验依然没有办法坐下来什么都不敢安卓应用软件开发公司,光看API guides,所以建议你不要去看~~~~那怎么学呢?把我之前的答案粘过来,希望对你有帮助。
-------------------------------分割线--------------------------------------
原地址:Android 和 iOS 开发的全过程以及相关的 Java 知识是怎样的?
-------------------------------分割线--------------------------------------
首先如果你买一本安卓开发的书籍,上来先教你配环境,然后就是安卓四大组件,activity生命周期,service生命周期。这些东西在我第一项目上线的时候,我依然不是很清楚,只能有一些模糊的概念。所以以我的经验来看(高手勿喷),上来看这些东西对与初学者有时候意义并不大,就和本科学了各种算法的只是,当时完全云里雾里,只有工作时真的需要做排序了,才会去查阅,那时候才真正学会了。
所以如果你想学安卓开发的话,最好先有一个目标,我想做个什么东西。什么都可以,凭你自己的兴趣,比如说做个计算器、短信软件、拨号器之类的小东西。
我们就以短信为例,如果你想做一个短信软件首先需要会什么?
1. 当然是显示短信了!那么如何显示东西呢?这就要用到activity了,网上找一个hello world的demo,照着写,在屏幕上显示你想显示的文字总能弄出来了吧。
2. 然后研究一下布局,可以学到安卓的各种layout布局,想在任意位置放文字也可以搞定了吧。
3. 那么接下来,怎么读短信,网上查“android读取短信”这类的关键字,一定能找到结果吧。(自主学习能力很重要),然后你会发现短信放在系统的一个数据库里。
4. 那好研究如何读取数据库内容,相应的你又可以查到到android如何连接数据库的知识。
5. 查询数据库必然要用到sql语句,这也很容易查到。
6. 能够读取出手机里的短信了,先展示到你之前学会的activity里面吧,这时候你发现你已经能够展示短信了。可是当然还是有问题,如何一条一条展示呢?
7. 很容易想到用列表嘛,那么就继续学习android列表怎么实现,很容易可以发现是listview,下载一个demo,学会listview,这时候你完全可以吧所有短信都显示出来了。
8. 考虑日常短信软件都是怎么做的?以联系人分类,然后点击进入是短信。那么找出联系人,这期间又可以学习sql条件查找。把每个人最后一条短信,按时间顺序排列好,在列表里面展示。展示的时候还可以显示联系人头像号码之类的,这样又可以在网上查询自定义listview怎么实现。这下短信的第一界面就有点雏形了。
10. 接下来怎么点击看和该人的聊天记录。网上查询学习点击事件。
11. 点击响应了之后要跳转界面,学习activity之间跳转。
12. 跳转到的界面就是与一个特定人的聊天信息内容,那么这个人的信息就要传递到新的界面里面,又可以学习到activity之间传递数据。
13. 新界面拿到联系人信息,就可以到数据库里面条件查询安卓应用软件开发公司,把该人的聊天记录全部读取出来,这里包括接受和发送的,按照时间顺序排列好,然后放到listview里面。用前面学到的自定义listview把接受短信靠左,发送短信靠右,并添加气泡边框。这样查看短信的功能基本上完成了。
14. 在查看短信界面下加上输入框,网上查询如何实现,又学习了editText相关内容。
15. 本地的都搞的差不多了,然后研究如何发短信,学习相关的api,这样你就基本上可以发送短信了。
16. 发送短信之后需要在你的界面上吧刚才发送的显示出来,这样又可以学会如何动态更新listvew。
17. 然后再考虑接受短信。又可以学会短信的监听,再通过刚学会的动态更新listview功能,又可以实现来短信的实时显示。
18. 来短信的时候又需要考虑通知栏的显示,网上查询后又学习到notification的相关知识。如果想做的好看,还可以继续深入学习自定义布局notification。
至此一个安卓收发短信的软件基本上差不多了。其中我说的每个点对于新手来说可能都需要一两天来完成,但是如果你有心学,两个月绝对搞的定。完成了这个项目,相信你对安卓也有所了解了,重要的是学会了如何自主学习。下次想做个电话本、计算器、备忘录、偷拍神器都按照这个流程来,当然都不是问题了(好像有什么东西乱入了。。。)。这个时候你再去看安卓四大组件,activity的生命周期才看得懂,也才有意义能够理解。
以上基本上就是我个人学安卓的经验,现在做安卓三年多,当时毕业去公司,公司里面都没有做安卓的,就我自己边工作边学,至今连公司带个人也在市场上发布了四五款产品了。所以这东西并不难,只要你有自主学习的能力。
匿名用户:
我试过以下几个教程:
1. 官方教程。
开始几章还可以,但是后面有点没头绪。示范代码考虑情况太多,过于复杂,不利于初学者掌握sdk。
2. Lynda
Building a Note-Taking APP for Android
还不错,讲得比较清楚,看完了。有点像官方教程note-taking app的视频版。坏处是不全面,学完了还是很多东西不知道。
Android SDK Training
比上一个教程要全面,但是讲的还是比较少,不够深入。我顺带看了一下。
3. Coursera
Programming Mobile Applications for Android Handheld Systems
这个是安卓开发系列的地一个课程,虽然和其他Coursera的老师比,这个老师讲的不是特别好。但是示范代码超级丰富,而且基本都讲了一遍,代码的复杂度也控制得比较好。还配有随堂的练习题和编程作业。SDK常用的方面都涉及到了。这个是目前看到最好的课程了。
实战项目
我把上面这个课程学了一编,把编程作业写完了,然后把示范代码中感觉需要的重新学习调试一遍。接下来开始借助官方API文档,Stackoverflow,以及一些技术博客的专门教程来开发项目锻炼实战技能。其间有很多不太清楚的地方,可以在这门课的示范代码中找到解答。
另外,我推荐使用Android Studio,API兼容性的处理上会比Eclipse方便很多。开始用的Eclipse后来逐步转到AS了。
巨芋:
真的要学的话,强烈推荐官方:Develop | Android Developers把API Guides看完之后,再看Training。
我翻过一些android的书籍,说实在都不如官方来得好。官方文档的内容讲得相当严谨并且全面,不像有些书,话还没说明白直接就给你看代码了,这样学起来肯定效率不高。同时我觉得官方挺好的地方就是,有很多扩展内容,能让你只知其然并且知其所以然。
但是使用全英的教程作为入门,对于英语不好的朋友来说可能会相当苦逼。阅读API Guides的时候左边有导航,其实那些英文单词,例如Activity、service等等,很多都是安卓的组件,对于这些新概念,因此我建议你可以先百度下那些组件是个什么东西,对它先有个大概的认识,比如Activity你百度之后就知道它大概是个容器,还有生命周期等等,这个时候再返回去啃下整篇的官方Activity文档。在读的过程中,一定要做笔记,最好是开个博客,看完一段文字如果觉得有知识点就自己做个小小的总结写在博客里。因为你总有需要回头温习知识的时候,等到温习的时候再回去看这些英文文档,效率会较低,如果已经做过中文笔记,很快就能领略到要点。
其实阅读英文有一个很好的地方我最近才发现:因为是英文,所以你要理解的话必须一个单词一个单词的看,认真地理解。这样的结果就是,看过的东西印象特别深刻。如果是中文的,可能会看得很快但是细节没仔细学好。
阅读完API Guides后,看Training就完全没压力了,Training更像是一种对之前所有知识的总结以及实践。
其实总得要来说,我觉得是,用中文的资料进行大概的了解,然后学习还是要靠官方文档。
以官方为主的原因是,现在又很多书用的是较老的API,以至于你在eclipse敲代码的时候它会画个横线告诉你不建议再使用这个东西了。其实安卓真的还算年轻,很多东西都是在3.0之后才开始正式规范起来的。但是它发展又特别快,等到别人读完官方内容再写本书出来给你看,那本书可能又已经过时了。还有一点,是之前我同学去面试3G门户二面时被问到的问题:“在使用适配器的时候,getView()该注意些什么?”。因为之前对于适配器的学习都是在百度之中学习的,网上的教程只是很粗糙地实现了功能,因此我对于这个问题没有答案。直到我看完官方的指南之后,我才发现原来这里大有学问,涉及到线程、IO等问题,从这之后我就更加确信,官方文档才是唯一标准。
最后提一下,你从百度搜到的一些实现某功能的代码可能会有问题,因为这些代码虽然功能是实现了,但是却不够规范。其实当你看完Training,很多功能的实现你都能自己写出来了,或者从官方copy:)。
————————————分割线————————————
其实这里我还漏一点实践的事。我建议先看API Guides的同时可以自己一边进行小功能的实现,但是先不要做APP,看完API Guides再做一个完整的APP。我一开始也是只学了点毛皮然后就开始做APP的。其实做一个普通的APP不难,你要实现的内容大部分人都已经做过了, 因此很多什么都不懂的新手遇到问题时,不是上官网查找相关API内容而是选择直接百度复制代码,这种做法在我现在看来十分的不妥,而且这样子做出来的 APP不能说是自己做的,只能说是自己组成的。没有理论基础的实践,学习效率很低。