怎样学习电脑编程编程开发

学编程 - 自学编程第一站
PHPCMS视频教程
PHPCMS视频教程
动态主机配置协议是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
CSS3语言开发是朝着模块化发展的。这些模块包括: 盒子模型、列表模块、超链接方式 、语言模块 、背景和边框 、文字特效 、多栏布局等。
Bootstrap视频教程
在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。
HTML是为网页创建和其它可在网页浏览器中看到的信息设计的一种置标语言。
Cocos2d-x手机游戏开发从基础到实战
响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验,而且随着目前大屏幕移动设备的普及,用“大势所趋”来形容也不为过。
SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
Samba是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
PHPCMS视频教程
课程内容版权均归所有&如何自学 Android 编程?
想自学android编程,从何入手。2000年本科入学,期间学过c c++ 数据结构,之后就再也没有用过。本人数学专业出身。求大牛们指点迷津。
按投票排序
日更新:14年的帖子没想到已经成为“自学Android”话题最火的帖子了,转眼间我都已经自学Android差不多4年多的时间了,评论里说文中很多博客链接打不开了,是因为我博客换了自己的域名,之前GitHub默认的域名访问不了了,目前已更正。还有人比较关心我现在的发展情况,目前依然在薄荷工作,担任Android开发主管一职,把Android团队带的如火如荼,而且由于工作出色,目前还耽误公司新业务的技术负责人角色,新的机会,同样也是新的挑战吧,我依然会继续加油的!另外评论里很多人问了不少问题,没时间一一回答,建议大家关注我的微信公众号:AndroidDeveloper,里面有你们想要的内容,15年由于工作转型很忙,更新的技术分享较少,16年打算补偿回来,16年也准备把一些知识系统的整理分享下,大家可自行选择关注。===============================泻药。我想我是有资格来回答你的问题的,我算是彻底的从编程白痴一步步学习过来的。之前写了一篇博客
被疯狂转发,带起了一阵学习Android的大风,我不晓得具体影响了多少人,但是这篇博客已经成为Android新手学习必备的资料。很多人问我是怎么一路过来的,姑且借这个机会说说我的故事吧。===============================内容有点长,大家姑且当做励志小说来看吧,对这些经历不感兴趣的可以直接看最后“如何自学Android”部分===============================大学大学上的是全国二流本科,专业主要就是数学专业。大学的总结就是:逃课、挂科、篮球、泡妞、Dota。目前为止可以说我的大学是我这辈子过的最爽的时期,大一开始就逃课,好点的理由是我对大学那些课程完全没兴趣,其实本质上是因为高考太压抑了,大学之后没人管了,开始无止境的放纵自己。毫不夸张的说大学四年上的课应该没有逃的课多。逃课最直接的影响就是挂科,从大一挂到大三,专业课数学分析特么每年都挂,后来听说补考考不过要重修,还得交钱,这特么让家里人知道还了得,于是发愤图强,最终补考每门都以优秀的成绩过了。相信英语四级应该是大学必考吧,英语四级这辈子我都忘不了,我考了三次才过,每次考试说是裸考都褒奖了,大学英语全是吃高中的底子,第一次没过,少了十几分,第二次他妈睡觉睡过了,就没有去考,现在想想当时的自己真是脑残,终于在第三次勉强过了。现在想想幸亏当时过了,之后毕业找工作时英语四级是最低要求。做编程这行,英语真的挺重要的,大学的时候一定得想办法把四级给过了。现在想想大学和编程唯一相关的课程就是C语言了,但是对于我们专业是属于全校公开课,最终这门课虽然考过了,但是连i++ 和++i我都弄不明白,可想而知你们应该能猜到我是怎么过的。由于高中就开始打篮球,大学时毫无疑问就入了学院篮球队,而且担任队长,所以大一、大二过来基本就是一大半是在篮球场度过的,也是因为篮球征服了我现在的老婆。大二下学期周围的人都在玩Dota,于是也开始了游戏之路,篮球也基本放弃了,那时候玩的疯狂,记得最长的一次和同学在网吧连续包夜两星期,不过白天是回来睡觉的,不然估计早猝死在网吧了。转眼间大四了,这一年终于在我老婆的监督下不再挂科了,而且在毕业前的最后一次评比竟然拿到了三等奖学金,真是受宠若惊啊,后来钱也被狐朋狗友们拿去腐败了。周围的同学都在准备考研,我却唯独对考研没兴趣,自始至终都没有为考研花过一分钱,买过一本书。后来证明我的决定是正确的,周围的小伙伴放弃的放弃,考不上的考不上,考上的后面也没见混的有多好,当然如果能考上好的学校还是很有帮助的。毕业又一转眼毕业了,去参加了学校几个招聘会也是醉了,全是没听过的小企业,一去参观都是各种厂房,根本不需要任何学历,是个人出点力都可以干的那种,要么就是各种电话销售。。。那时候真的有点急了,大学四年,毕业一份像样的工作都找不到,回去怎么面对乡亲父老。三月份的时候一家IT测试培训机构来做宣讲会(具体什么名字我就不说了,免得认为是广告),听完之后就说培训之后包就业,培训地点在大上海的最中心,当然是自费,但是可以工作之后分期付款。那时候哪知道测试是干嘛的,更不懂IT是干嘛的,回来就查了下这个机构确实存在,网站也有的,知道不是骗子遍决定来上海试一试。当时下定决定要来上海培训之后,几个狐朋狗友毫不犹豫的跟着我一起来了,总共应该是7个人,决定之后没几天便毅然而然的背着大包小包来到上海,我们之中一部分是一次性付费,另一部分是分期。后来证明我们当时来上海的决定是正确的。培训之路这里并不是宣传大家去培训,只不过被工作所逼,学校不好,大学也没学啥真本事,稍微有点出路都不会去培训!培训的日子还是蛮轻松的,一周就上四天课,朝九晚五,毕竟大家家庭都不富裕,家里辛苦攻读了四年大学,毕业还要再交钱去培训,打心里大家都很愧疚。一开始卯足了劲要好好学习,但是坚持了没多久就有点放松了,但是好歹也是都有学习的。培训的时候算是接触了点编程吧,课程有C语言、Oracle、Linux,然后其他都是软件测试的理论,其实都是非常基础的东西,算是带你入行吧,Orace就学习一些基本SQL语句,Linux就学了几个命令,但是起码知道原来电脑可以干这么多事,之前还一直以为电脑就是用来看电影、聊天、打游戏的呢。现在回头看给我一周的时间我可以看完整个培训课程,但是当时的培训周期要四个月。第一份工作--SunNet7月份拿到毕业证书就直接来了上海,四个月的时间对于我来说实在太漫长了,我等不及了,于是在课程还有最后一个月的时候我提前出来单独找工作,当时培训老师说工作后的工资大多是3500左右,我觉得我学的比别人好,所以必须要比别人高,做好了长期准备面试的过程。没想到面试第一家就直接录取了(后来才知道原来是公司的测试怀孕在家,急需测试),公司名叫SunNet,中文名山诺,工资4000。收到offer的时候欣喜若狂!真正接触编程之后便在SunNet正式入职,工作就是测试,但是就在SunNet我才真正的接触了什么是编程。SunNet是一家小型外企,总部在休斯顿,上海这边主要是研发部。研发人员总共不到10人,主要业务是以web为主,使用语言是.NET。当然我的职责就是web测试了,工作倒是没什么难点,主要测试就我一个,一进来就有好几个项目等着我测试,还好自己是数学专业,逻辑思维能力还不错,加加班总算能按时完成任务。三个月的时间顺利转正,之后的某一天偶然得知公司一开发人员工资比我高2000,其实也就比我早毕业一年而已,才知道原来开发和测试工资差距这么大,于是当时就下定决心要转行做开发,所以说起我从测试转行开发的原因是因为钱,一开始说因为兴趣坚持下来的都是扯淡。。。编程之路由于在公司我的主要任务仍然是测试,任务也挺多,基本每天要9点能到家。下定决心之后只能利用业余时间来学习,由于公司主要业务是.NET,很自然我一开始学习的方向便是.NET,后来才了解到.NET是基于C#的,学习.NET之前必须要先学习C#,于是像公司借了一本C#学习资料,就这样学习了大概两周吧,还仔仔细细做了一大堆笔记。之后觉得语法学的差不多了,便又借了本.NET的书开始学习web开发。但是web开发远没有学习一门语言这么简单,后来才知道web开发涉及到html, css, javascript, ajax, database等,范围太广了,于是为了效率,我只能每一项掌握住基础,于是网上搜索找到
这个好东西,里面的东西都是基础的,我把教程整理到手机里,每天上下班的地铁上,吃饭的时候,回家的时候等等利用一切时间来学习,也是差不多大概2周的时间掌握了html, css, js的一点基础,接下来准备正式学习.NET的时候,被我们老大知道我正在学习开发,我们老大叫Aaron,是一位典型的程序员,比较胖,人品超好,知道后不建议我学习.NET,说.NET出来都十来年了,已经很成熟了,很多人在学校都有.NET教程,现在学习已经比别人晚了。现在移动开发刚崭露头角,也没多少人会,建议我直接学习移动开发。真是一句点醒了我啊!!移动开发听了老大的建议,于是放弃了.NET,开始准备学习移动开发。那时候是12年初,整个移动互联网也是刚起步阶段,iPhone4还是非常火的时候,毫无疑问我把目标锁定在了iPhone开发上。这次有经验了,知道了iPhone开发首先肯定得有一门编程语言的,了解到是Objective-C,于是又从公司借了一本OC的书(公司书很多,老大每月都会买来好多书,虽然看的人很少),又花了将近一周的时间来了解了基本语法,因为之前学了C#,这次没完全看完的情况下想直接上手实践。正打算学习的时候,才知道iOS开发必须得在mac上才可以,也就是说我得自己有台mac电脑,虽然当时公司是有的,但是回家的时候不能继续学习练习,肯定影响效率的,一台mac对于当时的我简直是奢侈品,虽然现在也依然是奢侈品,但当时根本不可能买得起。于是只有放弃iPhone开发转向Android(后来才知道有虚拟机这东西。。。)Android学习之路几经波折,终于才确定自己的方向,这期间已经耽误了不少时间,走了不少弯路了,但是仍然阻挡不住我转行开发的脚步。公司关于Android的书竟然没有,于是我自己亲自买了一本Android书籍,叫《疯狂Android讲义》,作者是李刚!!不说这本书有多好吧,这本书比较厚,非常厚,所以讲的一些基础比较细,新手按照上面的完全可以看懂,现在不知道这本书内容更新了没,之前内容对于现在来说有点老。这个时候应该是12年的3月份,说起来也巧,这个月公司刚好接了个移动端项目,iOS有人来做,但是公司上下没有会Android开发的,其他人都有自己的项目在忙,老大看出我的兴趣,就问我想不想试一下,我当然欣然同意了,只此就开始正式的边做边学习Android。那个时候的测试任务仍然很重,于是我只能挤出时间来做这个项目,基本是每晚以及周末都会自动加班来完成这个项目,现在看来那个项目真是太简单不过了,快的话一周都不要就可以搞定了,但在当时我摸爬滚打了一个多月总算搞定了。做完这个项目自己有了点信心,但当时自己的主要任务还是测试,自己开发的时间是少之又少,于是下定决心离职找一个专门做Android的工作。说明原因之后老大很理解,也是建议我想做开发的话就放手去找一个专门做开发的职位,这样进步会比较快。第一份工作能遇到我的老大Aaron,真是我的福分!薄荷12年4月底离职之后,我便开始在家里准备面试,投简历,由于自己的基础很薄弱,之前的Android经验也非常少,那时候说是招聘Android职位,但是很多公司面试基本全是Java内容,而且我能感受到工作内容和Android相关的也比较少。来薄荷面试的时候感觉很好,包括CTO、CEO的面试都感觉不错,果然没几天就收到offer,来之不易的机会,非常珍惜。12年5月中入职薄荷,你们以为我到了薄荷之后Android之路就一帆风顺?错了,路更艰难。我是薄荷入职的第一位Android工程师,薄荷在那时候只做iOS平台的App,事实证明这种做法不可取,包括BOSS后面也亲自说投资人来投资的时候一看数据这么少,后面做了Android平台之后用户数据才慢慢上来,毕竟还是Android用户基数大。来薄荷的第一个任务是做联想TV的一个视频App,很蛋疼,折腾联想的SDK,遥控器等,好歹App功能比较简单,试用期间完成的还不错,就这样顺利转正了。转正之后做了第一个Android App,叫减肥食物库,功能与页面全部Copy iOS版的App。这个时候一大堆没做过的东西全部涌来了,网络库、http、api对接、组件定制等等,那个时候没有像现在各种资料、开源库一大堆,公司也没人能给指导,只有硬着头皮慢慢来,为了能把进度赶上去,上线前夕曾经连续在公司通宵三天三夜,累了就在公司趴一会,这辈子就经历过这一次,虽然项目最终也拖延,但总算在接受范围之内上线,这在当时是第一个试水Android平台的App,可惜的是上线之后表现不好,没有达到预期的效果。Ruby、Rails这个App试水表现不好之后,公司决定暂停Android业务,主攻iOS平台。我的位置就变得很尴尬,CTO找我谈话希望我能转做Ruby,Android业务会暂停,我们后端的api全部是基于Ruby语言的,虽然当时心里有点不情愿,但是没办法,为了不丢掉工作我只得硬着头皮做下去,于是就开启了我的Ruby之旅。学习Ruby以及Rails是我目前为止遇到的最大的困难。Ruby是一种动态语言,Ruby On Rails是一种流行快速开发web的框架。学习ruby不同地方在于要学习Linux,代码基本全是在终端进行,没有IDE,没有编译检查,习惯各种命令行。这对于一个刚开始进行开发的人来说真的是太困难了。那个时候从内心也有抵触,学习领悟能力也超差,我能感觉到公司领导层对我已经不是很满意了,现在想想那时候公司没能开除我真是得感谢我们的CTO,一个很有耐心、敢于给新人机会的人。中间遇到非常大的困难,还好得到薄荷ruby工程师小伙伴们的帮助,一直鼓励我,遇到问题总是不厌其烦,在基础、经验、能力不行的情况下,我总得克服这种困难,让别人看出我的态度。于是学习Ruby、Rails的那段时间我每天都是做最后一班公交车回去,我记得好像是11:40. 这个状态持续一个月,包括周末,从未间断。这一个月我在公司的主要任务就是学习,没有给安排任何事情,偶尔帮同事修修电脑,调下电话线,为此我非常感谢薄荷,感谢我的CTO Vincent,恐怕这在任何一家公司都不能这样给一个人单独的学习时间吧。一个月之后,学习的终于有点起色,开始实际做Rails项目,做后台,写api,虽然效率很低,代码很烂,但是在做Ruby的过程跟着我们CTO学了不少设计上的东西,面向对象的思想,设计模式等都在这个阶段接触的,自此我已经习惯各种终端操作,熟悉一些Linux基本命令,喜爱Ubuntu,参加了Ruby Conf 2012大会,喜欢Sublime,接触Git,GitHub,搭建了自己的Blog。我感谢做Ruby的这段时间,他让我接触了不一样的世界,心态完全变了,变得更开放,更乐于分享。回归Android做ruby的这段时间很是快乐,付出了这辈子最艰辛的努力,换来了点小小成果,我喜欢ruby语言,到现在为止都认为ruby是最优雅的语言。但是Android在我心里一直都有一个位置,从未放弃过。直到13年5月的时候,这个时候Android份额近乎疯狂的增长,公司不得不开始注意Android市场,于是公司打算推出Android版app,于是作为公司唯一的Android程序员,CTO再次征求我的意见,问我想继续做ruby还是做Android,虽然我更喜欢ruby语言,但是从心底我更喜欢客户端开发,和语言无关,客户端是用户最能感知的一部分,做出的东西更有成就感一点,我就在等待着这个机会,这一刻我毫不犹豫的选择继续做Android。回归Android开发的我一个人开发新的App,单枪匹马,经过之前的一系列挫折,突然感觉再没有更困难的了,一个人摸索架构、克服难题,App一推出便一直快速疯狂的增长,目前薄荷App总用户数已经破千万,公司也顺利融资,业务发展越来越好。后话由于一个人一步步过来,我深知这其中的不易,之后自己一直坚持写博客,除了自己的积累外,还希望帮助更多的人,所以现在你们可以看到不管是我的GitHub,博客,微博还是微信公众账号都很乐于分享,希望自己走过的这些弯路你们能少经历,虽然最终我也到达了终点,但是如果能有直路可直达最好不过了。总结上面啰啰嗦嗦的叙述我的这些陈年经历,看似和题主的问题无关,其实有很大关系:1. 如果你是非科班毕业想要转行编程,看了我的经历你一定很有信心与动力,我能,你一样能,何况我中间走了这么多弯路;2. 如果你接触过一些数据结构、编程语言之类的,想要学习编程,想题主这种,你更应该有信心,你比那些非科班的人已经多了一些基础,你要做的只是坚定信念,坚持走下去;3. 不要感慨上天的不公平,一路走来很悲催,走了太多的弯路,遇到了太多的困难,都是我这辈子难以忘记的坎坷,但同时我是幸运的,我的前任老大Aaron以及现任CTO都深深的影响着我后来的职业发现,我在薄荷的一些小伙伴们对我的帮助,我女朋友无数个日夜的理解与支持,上帝在给你制造坎坷的时候总会对你有些眷顾;4. 如果你准备或已经在做开发的人员,没有信心或动力,又或是对未来迷茫的时候,姑且当做一篇励志小说来看,你要做的就是做好你当下在做的事,相信你的付出一定能有所收获;建议评论里有人说是在校生,想要给点建议,那就以一个反例的身份给出事后的一些建议吧:1. 每天花1小时看书,难的不是1小时,难的在坚持;2. 最好不要挂科,因为挂了你还是得花时间补回来;3. 英语对编程来说很重要,试着习惯英语阅读;4. 数据结构和算法要学好,这算是对编程来说最重要的课了,以后不见得能用得上,但用的时候起码你有印象;5. 大三或者大四一定要去实习,对于编程来说经验还是比较重要的,实习经历比你那些理论要有效的多;6. 找个女朋友吧,不是说工作了你就找不到了,而是工作之后从事编程很少有时间和精力去接触别的女孩,所以可以的话在毕业前找个可以同甘苦的女朋友吧;7. 第一份工作很重要,因为你会受一些周围同事、公司氛围的影响,我为自己遇到Aaron、Vincent而感到幸运,他们俩是我目前为止最尊重的两个人;如何自学android编程最后才应该是题主最需要的:1.
前面说过我的这篇博客是Android新手必备资料;2. 书不在多,适合你就好,这里推荐一本Android和两本Java书籍吧;《第一行代码》:郭霖大神的著作,我是看过郭神博客过来的;《Thinking In Java》:Java经典书籍,不必说;《Effective Java》:Java进阶必备书籍;3. 有些人一开始看书也有困难,没关系,那就去网上看视频,结合视频和书一起看,边看边敲,推荐下Mars老师视频,包括java基础以及Android篇都有:极客学院的视频:口味不同的人可去各大网站自行搜索适合自己的教学视频。4. 多去混GitHub,目前最流行的开源社区,多参与开源项目,慢慢试着读牛人们的代码,时机到的时候自己也可以为开源社区贡献力量,可以这样说在GitHub上认真混一年,比你在大学四年学的东西要多的多;5. 关注一些Android界不错的博客:我(stormzhang)的博客:Trinea的博客:代码家的博客: 6. 善于利用搜索引擎,从用Google做起,学会英文关键字搜索,有问题第一时间想到去搜索而不是去请教别人;大家都有了以上相同的教程,但是人和人之间的区别在于:别人有颗更强大的内心,可怕的是比你聪明的人比你还要更努力!!当你下定决心,准备前行的时候,剩下的只有坚持了。。。===============================我是华丽的分割线===============================我是很少在知乎上正经回答问题的,没想到这个回答引起这么多人关注,引起了很多人的共鸣,收获了这么多点赞,这里针对很多人的私心以及评论做点补充吧:1. 回答中提到了培训之路,很多人要推荐培训机构,其实一方面当时没有经验,也比较迷茫,迫不得已才去培训试一试的,后来过来后其实培训学不了什么东西,我后来转行Android完全是自学,和培训一点关系都没,所以不推荐去培训,最终得靠自己;2. 有人问我单独开发的app是什么,我现在公司名是薄荷科技,app也叫薄荷,你可以去各大市场搜索“薄荷”,排名第一的应该就是,从架构到实现一直都是一个人在做,总用户现在差不多过千万了,当然现在已经不是一个人在开发了,现在带领一个小团队在做,你可以下载体验下,不过现在依然有很多不足之处,我们一直在努力改进;3. 文中提到我学习了很多语言,很多人比较疑问,是都需要学这些语言么?当然不是,我是因为走了不少弯路,有些语言为了工作不得不去学的,不过后来证明学的这些东西对自己是有很大帮助的,但是如果你确定了方向建议你直奔主题,现在社会需要一门精而不是门门通的人才,现在有很多“全栈工程师”的概念,其实都是在建立在一门精的基础上才去别的领域发展的,所以不要妄想一开始就成为“全栈”,还有如果你对当前做的事很抵触,觉得一直纠结在功能上,但是又没法去改变的时候,不妨竭尽全力把当前做的事做好,后面你会发现有事情做自己不知不觉总是会进步的;4. 很多人找到我博客,搜索到我被Facebook邀请,具体见这篇博客
, 虽然这算是对自己技术能力的一个认可吧,但是在技术上远没有大家想象的那么牛逼,我一直在努力提升自己的技术,但是仍然有很多需要学习的,自己也一直在坚持学习,现在也一直想靠自己的技术来改变自己的生活,起码不拼爹(主要是拼不了),但是后来才感觉到技术并不是一切,千万别陷进无止境的技术坑里,有很多事情比技术更重要,这个就等待大家自己慢慢发掘领悟吧。。。
以下为本人收集整理的资料,仅供参考,不喜勿喷,欢迎交流。一、 基础篇
需要掌握的技能如下:
1、熟练掌握基本控件以及容器控件的使用 ;
常用的基本控件有:Button 、TextView、EditText、ListView等
常用的容器控件有:FrameLayout、LinearLayout、RelativeLayout等
2、熟练掌握相关监听器的注册和使用:
常用监听器有: OnClickListener、OnLongClickListener、OnItemClickListener等
3、掌握Log的使用以及分析方法 ;
4、掌握Activity、Service的生命周期和使用方法 ;
5、掌握BroadcastReceiver(广播)的接受和使用
6、掌握Intent以及IntentFilter的使用
7、基本掌握数据库方面知识,包括SQLiteDatabase以及ContentProvider的使用方法
除此之外,我们必须得掌握adb shell 的使用方法,常用功能有:adb pull 、
adb push 、 adb remount 指令等
由于shell类同于Linux shell ,我们还得掌握基本的Linux指令等,例如cat、cd 等 。
知识获取渠道主要为:
Android SDK以及网上大牛的博客。
附: 关于基础知识的介绍,国内的一些书籍质量真是相当差劲,味同嚼蜡。强烈不建议在此阶段买书籍,如果一定要购买的话建议郭霖老师的《第一行代码》。网上搜索Mars老师的视频以及黑马学院的就业班视频也可以在淘宝网上购买。
实践出真知。这个阶段,你可以自己编写一些小Demo了,帮助自己在更深层次发展了。
二、 提高篇
需要掌握的技能如下:
1、掌握Canvas类的使用-- 如何绘图
2、掌握消息通信机制---Handler相关类的使用以及原理
3、掌握Context类以及实现原理
4、掌握View树的绘制流程
。 View绘制流程很重要,掌握它就基本上掌握了Android核心之一了。
4.1、掌握触摸事件的分发流程--- onInterceptTouchEvent以及onTouchEvent方法流程
4.2、掌握相关监听器的调用机制。例如OnClickListener监听时怎么调用的?
4.3、能够编写自定义View以及ViewGroup
5、理解Binder机制----Binder机制很重要,Android的进程间通信都是靠它完成的。掌握它,才能够好的完成接下来的学习。
6、基本掌握ActivityManagerService类的使用,主要掌握的知识点包括如下:
6.1、startActivity()流程,即启动一个Activity的流程
6.2、startService()流程,即启动一个Service的流程 ;
7、基本掌握PackageManagerService类的使用,主要掌握的知识点包括如下:
7.1、开机时如何解析所有已安装应用程序的Apk包的信息
7.2、Intent以及IntentFilter的匹配规则以及解析过程
8、基本掌握View添加至窗口的过程---即WindowManagerIml 、WindowManagerService类的用法
知识渠道:
必备书籍: &Android内核剖析&
Android源代码一份
三、 进阶篇
1、基本理解SystemServer类加载流程以及WatchDog的功能
2、more......
前面说的博客,在此推荐两个我常去的吧:
应用方面,主要是魏祝林的csdn博客 : 。 但他的博客主要是以代码为主,需要自己结合源代码揣摩 。
框架方面,主要是老罗的csdn博客 :
但他的博客主要是以流程分析为主,
而对 流程 需要的前期准备知识介绍不足,初步看起来比较难以理解,因此,买本《Android内核剖析》是必须的,可以参考源代码仔细领悟, 强烈推荐该书籍。
由于网络上Android源码不太好找,特此共享下Android部分源码,主要包括框架层、中间层、以及一些App等,对上层开发和中间层开发还是很有用的。以下是一些源码下载链接(部分链接可能已经失效):├─地图相关Android bikeroute自行车导航源码.rar: Android Gps Test源码.rar: Android GpsTracker源码.rar: Android 百度地图API-定位周边搜索POI源码.rar: Android 百度地图API源码.rar:
北京公交线路查询(离线).rar:
获取Gps信息的程序源码.rar: ├─安全保密Android 人脸识别功能使用源码.rar: Android 图形解锁源码.rar: Android 图案解锁之九宫解锁源码.rar: Android 安全卫士源码.rar: Android 安全卫士源码.rar: Android 屏幕锁源码.rar: Android 手机防火墙源码(DroidWall).rar:
Android 网络监视器源码.rar: Android 远程视频监控程序源码.rar: │
├─摄影图像Android 3D相册图片滑动+倾斜+放大+倒影处理源码.rar: Android Google官网的图片缓存源码.rar: Android PhotoStore图片浏览器源码.rar: Android 二维码识别源码.rar: Android 仿美图秀秀和IOS系统的相机胶卷.rar:
Android 区域截图源码.rar: Android 图片浏览功能源码.rar: Android 图片浏览源码.rar: Android 多种统计图表源码.rar: Android 常用图片特效处理源码.rar: Android 水果相册浏览器源码.rar: Android 炫酷相册源码.rar: Android 画图工具源码.rar: Android 画图程序源码.rar: ImageView控件缩放和旋转图片源码.rar: PC机摄像头摄像数据在Android手机上同步显示的源.rar: 调用系统相册和系统照相机功能雨实例源码.rar:
├─生活相关Andriod 日程管理软件源码.rar: Android MyContacts通讯录源码.rar: Android UI界面漂亮的天气预报源码.rar: Android 万年历源码.rar: Android 个人记账软件.rar: Android 事务提醒工具源码.rar: Android 仿Siri的中文语音助理源码.rar:
Android 体重计算源码.rar: Android 健康饮食搭配源码.rar: android 公交查询.rar: Android 北京地铁导航源码.rar: Android 医药助手源码.rar: Android 名片识别源码.rar: Android 城市天气预报源码.rar: Android 备忘录源码.rar: Android 天气预报加widget源码.rar:
Android 天气预报源码.rar: Android 完整的通讯录项目源码.rar: Android 宿舍值日随机生成器.rar: Android 小米系统之便签源码.rar: Android 小钢琴源码.rar: Android 带手势划动功能的日历源码.rar: Android 影院选坐源码.rar: Android 快捷查询源码.rar: Android 手机小闹钟源码.rar: Android 时光日志个人日程管理源码.rar: Android 沈阳公交源码.rar: Android 生活手册源码.rar: Android 秒表倒计时源码.rar: Android 简单的机票预订系统源码.rar: Android 简单计步器源码.rar: Android 精美愤怒的小闹钟源码.rar: Android 节日短信回复助手源码.rar: Android 蓝虫火车票余票查询源码.rar: Android 记账本源码.rar: Android 超简单的电子购物程序.rar: Android 酒店预订系统源码.rar: Android 闪光灯手电筒软件源码.rar: Android 随手记记账应用源码.rar: android城市列表特效-触摸查找源码.rar:
android日记系统源码(数据库的基本操作).rar: android查询软件源代码(身份证号,号码归属等).rar: ndroid 查询工具源代码.rar: ShareSDK超级强大的社会化分享(强大分享界面UI).rar: 天气提醒程序源码.rar:
手机归属地查询程序.rar:
├─聊天通讯Android SipDroid客户端源码.rar: Android SMSPopup速读短信源码.rar: Android TorProxy和Shadow开源项目.rar:
Android ViewPager+Fragment实现QQ界面.rar:
Android 仿QQ客户端及服务端源码.rar:
Android 仿飞鸽传书源码.rar: Android 公司通讯录(含来电号码姓名查询和搜索功能).rar: Android 完美高仿的微信源码.rar: Android 驴友社交系统源码.rar: Android简单通讯源码:手机控制PC的关机、重启、.rar: android蓝牙聊天的应用源码.rar: Imsdroid语音视频通话源码.rar: 安卓程序源码之完美高仿微信源码.rar:
└─辅助类库Android 3D倒影效果源码.rar: Android Activity设置相同的action进行判断源码.rar: Android afinal开源框架实例源码.rar: Android Fireworks烟花效果源码.rar: Android fleep滑动切换tab(切换带动画).rar:
Android GridView拖拽实例源码.rar: Android ImageView图片循环跑马灯效果源码.rar: Android ListView下拉刷新 Demo.rar: Android ListView反弹效果源码.rar: Android OpenGL的一个简单的例子.rar: Android opengl绘制飘动的国旗效果源码.rar: Android PathEffect效果实例源码.rar: Android ScrollableTabHost tab控件.rar: Android Spinner图文混排源码.rar: Android SwipeView类似桌面的滑动界面.rar: Android TabHost内嵌ActivityGroup界面管理源码.rar: Android Tools4U源码.rar: Android ui开发类库示例源码.rar: Android WeatherForecast应用源码.rar: Android WebViewJS应用源码.rar: Android 三种圆形缓冲的进度条源码.rar: Android 下拉通知效果源码.rar: Android 不同形状的进度条源码.rar: Android 与php服务器交互实例源码.rar:
Android 仿360恶意广告拦截扫描UI效果源码.rar: Android 仿微信二维码名片源码.rar: Android 仿快播搜索框上方悬浮的文字搜索源码.rar: Android 仿新版人人的效果源码.rar: Android 仿谷歌侧边栏导航源码.rar: Android 使用Gallery_tabhost实现标签效果图源码.rar: Android 使用opengl写动态壁纸的类库.rar:
Android 倒计时实现源码.rar: Android 吹一吹效果源码.rar: Android 图像冰冻特效源码.rar: Android 图像柔化美白特效源码.rar: Android 图像连环画特效源码.rar: Android 图表生成类库.rar: Android 多种android控件的Demo.rar:
Android 实现QQ好友列表源码.rar:
Android 屏幕颜色的变换源码.rar: Android 应用软件自动更新源码.rar: Android 拍照与录像切换UI源码.rar:
Android 控件抖动效果源码.rar: Android 搜索关键字飞入飞出效果源码.rar: Android 支付宝控件接口示例源码.rar: Android 显示GIF动画源码.rar:
Android 模仿iphone时间滚轮控件源码.rar:
Android 水波效果源码.rar: Android 测试周围环境分贝的功能源码.rar: Android 滑动翻页源码.rar: Android 点击屏幕更换图片源码.rar: Android 点按钮添加TableRow源码.rar:
Android 烟花效果源码.rar: Android 焦点图片滚动源码.rar: Android 用户界面之重写onKeyDown方法源码.rar:
Android 登录界面记住密码功能源码.rar: Android 百度地图之自定义公交路线源码.rar: Android 简单2D动画源码.rar:
Android 网易新闻横向导航源码.rar: Android 自定义泡泡效果源码.rar: Android 视频浮动窗口源码.rar: Android 触摸屏幕产生小气泡的效果应用源码.rar: Android 超炫的Path Button效果源码.rar:
Android 逐帧动画源码.rar: Android 随手势进行3D旋转的源码.rar:
Android 非常漂亮的滚动选择日期控件.rar: Android 音乐播放器歌词列表式同步显示功能源码.rar: Android 页面特效集合源码.rar: Android 颜色选取控件.rar: Android 风车效果源码.rar: Android 高仿WIN8系统磁贴点击下沉倾斜效果源码.rar: Android火焰效果程序源码.rar: EditText插入QQ表情源码.rar:
加载时闪烁点样式的启动画面.rar:
安卓游戏打地鼠源码.rar:
带文字的ProgressBar Demo源码.rar: 进度条对话框Demo.rar:
365MobileSecretary v1.0.6(365手机助手AIDL).rar: AdXmpp(Openfire+asmack+spark).rar:
AidlDemo(简单aidl的例子).rar:
aidl跨进程调用.rar: andbatdog电池监控.rar: andbatdog监视电池.rar: andricoFacebook客户端.rar: Android Gamex木马分析报告.rar: Android 股票源码.rar: android-stocker.rar:
Android下的加密信息客户端 WhisperSystems-TextSecure.rar: Android与js交互.rar:
Android中监听电话状态.rar: Android之Wifi学习教程.rar:
android各种传感器实例源码.rar: android在wifi下手机与电脑的socket通信.rar: Android手机的VoIP客户端 Sipdroid.rar:
Android源代码定时情景模式切换.rar: Android短信拦截源码.rar: Android股票K线图.rar:
Android股票StaticChartDemo.rar: Android自动发送短信.rar: Android远程登录含有loading登录效.rar:
Android通讯录(含服务端).rar:
BOOK看遍所有UI控件.rar:
BrewClock闹钟.rar: BTAndroidWebViewSelection(webview选择文字).rar:
hotel宾馆系统.rar: ImageView 图片循环跑马灯的效果.rar: ipcamera-for-android 手机变成IP Camera.rar: 三国杀版连连看(使用html5的canvas特性,纯javascript开发).rar: 个人消费记录软件.rar:
五种不同的Toast效果.rar: 从网络上获取图片.rar:
仓库管理系统(单机版).rar: 仿ireader书架.rar: 仿优酷Android客户端图片左右滑动(自动滑动).rar: 仿百度新闻(手机端和服务器端源代码).rar:
休闲生活网络版 服务器直接访问即可.rar: 使用Vitamio打造自己的Android万能播放器(1)——在线播放.rar:
侧边栏滑动.rar:
免流量蓝牙聊天软件源码.rar:
击溃360手机卫士的三大防护.rar: 动画效果 translate、scale、alpha、rotate 切换Activity动画
控件位置调整.rar: 原来PATH的菜单效果如此简单。布局+TranslateAnimation搞定.rar:
商情商灵商测试系统源代码.rar:
图片阴影效果和影子效果.rar:
圆环菜单,只有你想不到的,没有做不到的.rar:
在Android远程上传以及下载图片---XFire框架.rar:
基于socket通讯的文件续传!.rar: 基于股票的一个Android应用(内含源码).rar:
多点缩放字体DEMO.rar:
多级PopupWindow的小demo.rar: 大学生信息管理查询系统2.rar:
大学生信息管理系统.rar:
大学生课堂考勤系统(PHP+MYSQL+android).rar: 大学生课程表.rar:
安卓WIFI密码破解工具编写初探.rar: 嵌套TabHost示例.rar: 平台水波效果.rar:
开发 API人脸检测实例教程.rar: 开发之 SD卡的使用.rar: 开发源码分享之在线音乐播放器完整项目.rar:
引用第三方库的方法.rar:
手机RSS阅读器(html5).rar: 抖动窗口.rar:
拉响手机QQ安全警报:聊天记录查看器的编写.rar: 指南针定位源码.rar:
改进10-yannihui(音乐播放器).rar: 易订餐源码_快速订餐[android+PHP+mysql.rar: 模仿engadget菜单.rar: 模仿UC等软件启动画面加载时闪烁点的样式.rar: 模仿微信导航页效果源码.rar:
毕业设计管理系统.rar:
渐入渐出动画 无闪烁 无黑底 Demo.rar: 用户注册,登录的简单实现.rar:
监控别人的行踪.rar:
高仿丁丁优惠券源码.rar:
高仿基于android2.2(Froyo)的Contacts.rar:
就看天气V2.0更新并且开源1. [Rxjava]()2. [RxAndroid]()3. [Retrofit]()4. [GLide]()5. [ASimpleCache]()项目地址:Github: 截图:---------------------------------分隔线------------------------------------------&&&&准备想借自己这款“就看天气”说说自己接近半年来的Android开发之路,也算是自己这段时间的学习总结和知识沉淀。自己是重庆某高校大三学生,软件工程学院。在学校大一的时候学习的是C++(当然这个特别难懂的语言着实打击了我一阵子,所以没有学好),大二在学校学了Java。在Java学习过程中,比大一时候要轻松很多,就我个人而言,认为学习Java比C++要轻松,然而还是不明白学校为什么还是要把C++的学习放在大一。决定学习Android是自己很早的想法了,但是真正落实去做是放在了大二暑假。这之前自己做了如下准备:▼ 一台配置不错的台式(SSD+8G内存)▼ Java基础知识▼ 极客学院Vip账号(非广告,当然你还有其他选择,比如慕课网的视频也不错)▼《第一行代码》一个好的电脑确实是必需品,现在写Android应该都开始用Android Studio了吧,这个IDE配上SDD+8G内存你才能优雅的写代码~Android学习之前真的要把Java基础学好,这样你学Android的时候才不会特别痛苦。掌握基础之后再学Android,还可以边学习Android边复习Java,一举两得。现在很多网上的视频教程,我个人最开始是跟着极客学院视频走的,而且还加上翻《第一行代码》这本书。虽然这本书是用的Eclipse,但是你用AS重写是完全没有问题的。&&&&实战只有在实际操作中你才能知道自己哪些方面的知识欠缺,才会知道开发过程中会遇到哪些恶心的BUG,才会主动的去思考,搜索方案去解决这个问题。而且在自己实践中,也获得了很多开发应用的乐趣。而自己特别喜欢这种创造带给自己的快乐,也是这样才让我喜欢去敲代码吧。每个天气类应用逻辑就是特别简单,但是这个小应用也能让你明白很多Android的知识。整理了下自己开发这款的思路:▼ 获取省会列表自己获取省会城市列表是应用本地数据库,该数据库里包含了省——市——乡三级,Android里用SQLite进行数据库处理操作,最后用ListView显示出来。这里会学到的知识就是:SQLite,Cursor,简单的ListView+Adapter。▼ 获取天气信息这里获取天气信息是从获取到用户要查什么城市名称后跟地址组合发送给“和风天气”API,它会返回给我一个JSON数据。这里会学到的知识是:Android的网络通信。这里我自己用的是android-async-http库。▼ 处理天气信息获取到返回的JSON数据后,需要对这个JSON进行解析,这里我用的是Gson这个库,并且用SharedPreferences进行保存。这里会学到的知识是:Json数据的处理,SharedPreference常用库的应用。▼ 更新UI从SharedPreference获取指定数据,并实现UI更新。这里会学到的知识是:对Android线程的理解。&&&&应用就看天气---个人向天气类应用#断断续续写了2个月#实战+资料+看书+整理 这样的自我学习模式很有效果#已经在豌豆荚,魅族应用,等平台上线,#希望你们喜欢而且能够做出自己喜欢的应用
无人邀请自答。先自我介绍,大学本科半科班,通信工程,今年大三,一年半的安卓开发经验,准搜狐安卓实习生。我开始学安卓也是从《安卓疯狂讲义》开始,但是回过头我还是觉得那本书不是很好,我推荐的是,如果有编程经验,先学好java,了解基本的知识,然后开始看《第一行代码》(只推荐前半部分),然后去Android developer看谷歌的training,有了基本的认识后,再去看Android的API,了解下基本的控件和属性,然后实践。再然后就可以看看慕课,视频难度都不大,对着学,然后理解很关键哦。最后的话,就是去做几个demo,认识一些大牛,然后去找个公司实习,不牛逼都难。进阶的话可以看下《开发艺术探索》,《设计模式》等等书籍,然后了解自定义view和事件分发,内存管理等等。..............................手动分割有人看,所以我补充一下,学技术有即时反馈还是挺重要的,不然容易自我松懈,所以可以去帮别人做些demo啊,自己做些小工具什么的,也很有成就感。然后最后可以去实习,然后经验够了之后,就可以去做小公司的全职了,上段时间去做半全职,一天200也是挺爽的,毕竟吃住在学校,嘿嘿。还可以有个大的项目经验 ,所以边学边用,很重要。--------------手动分割部分知友想知道实习部分,我觉得自己学永远不知道自己多菜(当然我当年不玩知乎),所以有公司做安卓的要你就行,我第一份实习是暑期实习,也就1800不包吃住,不过学到了很多东西,涨了很多见识,也奠定了自己做IT的决心,所以实习很重要哦。希望大家都找到合适的实习。附上进阶方法
Android 开发有什么进阶的书么? — 郭大大 的回答 - 知乎附上好用的工具 Android开发时你遇到过什么相见恨晚的工具或网站? — 郭大大 的回答 - 知乎求赞。。。。
先交待本人背景。985,211小硕一头,本硕专业与计算机没有关系,计算机知识主要是本科和硕士阶段自学的,具体有熟悉c,掌握java,了解计算机组成原理,计算机网络,操作系统等。今年初开始自学android,目的是跳出所在的体制内单位,追求自己的梦想。感悟一:迅速上手。快速地对Android开发技术有一个整体的把握,写出几个小Demo,是很好的正向激励,能增加自学的动力。个人的做法是“囫囵吞枣”。集中20天时间将《Android编程权威指南》从头到尾撸了一遍,并做了详细的笔记,方便复习看,因为一遍下来很多知识点都是似懂非懂,通过阅读笔记可以在反复体会中掌握消化。如果没有做笔记,很难做到快速对全书进行复习。随着复习次数增加,我基本可以做到半天时间复习一遍。感悟二:保持专注。定下决心后,不要再左顾右盼。本人刚开始学两个月的时候,碰到了Android市场的萎缩,有业内朋友建议我学前端开发或者大数据,云计算,当时确实很心动,但后来通过思考,感到Android开发只是从泡沫期进到了稳定期,很多趁着风口入行,水平差的人将被淘汰,真正技术好的开发者还很缺。另外,Android开发只是一个平台,里面的许多技术都是通用的,或者技术是专门的,所解决的问题是其他领域也有的。这样,从更一般的角度看Android开发,心情就平静下来了。感悟三:起点要高。由于是大龄自学者,就业上处于劣势,我的策略是,从开始就坚持高标准,走技术路线,跳出初级开发的层次。为此,学了很多源码解析的文章,如okhttp,dagger,eventbus,rxjava,volley等,一开始也是看不懂,做好笔记反复看,渐有所获。Google的官方文档中training部分基本看完,正在看guide部分。对于自定义view,handler,aidl等技术难点采取死磕战术,通过科学上网,在Google上搜索一切能够搜索到的相关文章,逐一阅览,精诚所至金石为开,逐渐的也有点自己的想法了。感悟四:整理好信息源。最近感觉国内技术博客成井喷状态,99%的都很水,妄想以其昏昏,使人昭昭。经过一段时间的摸索,自己整理出如下信息源,一看官方文档,二看看github上的codepath,三看stackoverflow,四看medium,五看google搜索。经过这五步,目前还没有发现解决不了的问题。
这是我一边学习 Android 开发一边收集整理的一份旨在帮助 Android 初学者快速入门以及找到适合自己学习的资料 。说起我之所以收集这份资料,是因为我在 GitHub 上面看到一份有关于初学者学习 iOS 资料
当我看到这份资料的时候,内心开始不停的感叹,如果我学习 iOS 开发那这份资料对我来说是多么好的学习资料,可是由于学习 iOS 开发的成本极高,加上当时家庭经济条件不允许,所以我选择了 Android 开发,于是我就对自己说我要在自己学习 Android 开发过程中,将对自己学习 Android 开发有帮助的资料都收集起来,到时候也要分享给更多 Android 初学者来学习。我刚开始学习 Android 的时候,我在网上搜了好多资料,其中有些资料对初学者来说已经是非常好,例如:stormzhang 分享的 Tikitoo 分享的 胡凯发起官方教程翻译的 可以这么说上面几份资料就是带我入门的资料,非常值得大家一看,这些资料上面回答的人都有推荐过了,我在这里就不做更多介绍。好了,别的不多说,要说的上面的人基本都说了,直接上资料截图总结希望我收集到的这份资料能够帮助到一些 Android 开发初学者,如果我这份资料有什么不足的地方,也请大家指出来,这份资料我还会继续不停完善,希望我能与大家一起学习最后资料链接地址
谷歌官方的教程,也有中文版可以看看Storm的,都是零基础入门,有一定的参考价值有问题善用Google搜索,不要用百度,百度搜出的技术资料千篇一律,搜不到自己想要的,上谷歌最简单的办法是修改host文件,最新免费Host可以从获得,最好使用Goagent的升级版,配置好之后一劳永逸,使用chrome浏览器插件SwitchyOmega自动切换代理。有空可以看看Android开源项目汇总,可以看看,挑一两个不错的框架研究下其源代码,相信会提升一个台阶开源项目源码解析,对比较流行的一些Android开源框架进行源码分析,适合初学者学习codota
这里可以搜索你想要的代码android最佳实践:关注最新Android动向整理了各种代码,库Github上热门的开源项目如果还有精力可以去stackoverflow看看android标签的排名靠前的问题上面的基本够了,太多了反而精力分散
说直接点好了,其实要想学好一样编程技术,并不是看你有一个多牛逼的老师,有多少牛逼的教程,有多牛逼的书,而在于你有多少决心,你愿意花多少心思,你有没有动手去敲代码。你也看到了,@stormzhang,@Tikitoo已经分享了非常多的资料,我相信这些资料绝对够你看的了。一个月之前我还并未接触过安卓编程(很抱歉,虽然安卓非常非常非常的火,但是我一直对它不感冒,尽情说我没眼光好了),就上个月10号,虽然我明确跟公司说了我不做安卓,可是我依然被分来做安卓了,公司还说了一年之内你就在这别想换了;虽然我明确跟我师傅说了我不想做安卓,师傅还是甩给了我一个文件管理器的项目让我自己做,我只能默默接受。其实我师傅还是挺牛逼的啊,可是牛逼的人都是很忙的啊,所以我就一切只能靠自己的了啊!到目前,我已经基本做出了这个文件浏览器,实现的功能也不算简单(当然对Android高手来说is nothing),还在继续完善当中(现在就在加班改代码)。这么快上手有秘诀么?其实考虑到我以前做过很久的Java开发这应该算是慢的了。实际上,我至今对安卓编程还什么兴趣(继续骂我没眼光好了),所以还没看过安卓方面的书,只是浏览过官方网站的教程(写的挺好的),然后直接进入项目开发了。学习编程的方式非常多,此处是一些我以往的学习经验,期望能对你有所帮助:Java之所以Java列在第一个,是因为这是我最拿得出手学的最好的。Java的学习是通过网上看视频学习的,这点我是非常应该感谢尚学堂、传播智客这些培训机构的,特别是马士兵马老师的视频教程确实帮到了我不少。看视频学习的一大好处在于,可以一步一步的跟着视频去做,入门很容易,导致后来我学习很多东西的时候都第一反应是去找视频教程,现在我的电脑里躺着几十G的视频教程,不过只有一小部分看过,因为当你入门以后,再想深入学习一门技术的时候,这些视频要么已经帮不到你了,要么你会感觉看视频学习太慢了。不过,随着Java学习的深入,读了一些书,比如《Algorithm》和《深入理解Java虚拟机》,我在Java的学习上已经非常系统了。总结:Java的学习我是一步一个台阶,慢慢地系统学习过来的,所以Java学的非常系统,基础非常扎实。PythonPython是在网上看了《Dive Into Python 3》入门的,入门以后因为当时想做一个网站,所以又看了《The Django Book》学习了python的web框架,这两本书都来自于网络。后来又用到Python做一些爬虫、数据分析之类的杂活,也都是参考了一些网络上的博客教程。总结:Python的学习就是有需要了,就去谷歌找网络教程参考学习。网络上的博客教程,非常的多,也非常的杂,要想找到好的教程需要一些筛选。此外,只靠网络教程,想要系统的学习较难,至今我对于协程、装饰器都理解的很肤浅,相较而言,Python就没有Java那么精通了。Ruby对于Ruby的学习就比较奇葩了,因为我从未学习过Ruby。之所以了解Ruby,仅仅是因为当时我看到了松本行弘的《松本行弘的程序世界》就想拿来看看大师眼里的编程世界的。不过,Ruby的语法糖与Python非常相似,所以即使我从未学过Ruby,看Ruby相关的书毫无压力,在读《松本行弘的程序世界》的过程中还看了《Ruby元编程》这本书。虽然我从未学过Ruby,我倒是觉得对Ruby的了解程度超过了Python。总结:Ruby的学习是通过看书,看好书,看大师写的好书学习的,因为这些书写的更为接近语言的核心,所以对Ruby的了解不比对Java差,但是Ruby的实战经验就没有Python多,写点什么的时候反而倾向于Python了。Javascript这个就有点类似于Ruby的学习了,断断续续看了《Javascript权威指南》大半,不过没经过什么实际修炼,不过尔尔。C# Android这两样属于工作驱动学习,工作压来之前我都是一窍不通的。来公司以后,公司先给我分的任务是做一个单片机项目的上位机,因为要用串口通信,Windows下串口通信还是C#最简单,现学现卖,也是一个月搞定了,C#确实太像Java。现在又被强派来做安卓,虽然不会但有Java基础以后参考官网教程和Github上的源码,问题也不大。总结:工作驱动模式下的学习,总是可以很快的进步,因为目的明确,不需要完整学习编程语言。所以,如果学习的时候,试着做一个项目,更有助于进步,也有助于提升学习的兴趣和信心。C C++好吧,虽然大学第一次接触编程就是C语言,但是我至今不敢说精通这门语言,C++就更不敢提自己懂了。这两门语言一度给我的编程之路蒙上阴影,虽然至今我依然没完全看透语言,但已经不重要了。若是楼主的C和C++学的好,入手Java问题不大,再入手Android问题更不大。总结:虽然有老师教,有教科书看,可是至今很多程序员和我一样,对这两门很重要的编程语言依然是没学透。Closure好吧,我承认,这个我才刚开始学。所以,学习方式有很多,随着你的学习目的不同,可以选择不同的方式,但是这几种方式有些东西是一样的:决心。编程这个行业,很可能掉进这个坑就是一辈子的事,所以请慎重。对于那些做了很久以后才觉得编程这个行业无聊、累人、没有前途的人,我表示惋惜,不是惋惜他们不识货,是惋惜他们当初怎么就还没看明白就跳进坑里了。时间。学习编程肯定会花去很多时间的,也许要比做其他所有事情花去的时间都会多一些,因为编程确实是一件困难的事。如果编程成为一个工作,公司还会经常要求你加班(比如我,周末还加班)。动手。编程没有捷径,唯一的进步方式就是动手去敲代码。当有一天你的手上敲的满是老茧(一定要是敲代码敲出来的!),离高手就不远了。所以吧,所以我要总结的都在开头了。
之前回答的这个问题:《》,已经明确回答了,因为我之前是有Java 基础的,对于题主来说,有C,C++,数据结构基础,这是学编程的基本功,况且C++ 和Java 都属于面向对象程序语言,学过C++,再学Java,也是很容易的,他们有很多地方相通的,学了Java 再学Android,就事半功倍了,当然,您也可以基于NDK(使用C,C++开发Android)的,但由于我不是太了解,就不详细说了;之前我写的一篇文章《》,讲了怎么入门学Android;最近知乎上有网友问我怎么自学Android,其实说实在的,我学的也一塌糊涂,当然在学习过程也积累了一些知识,对于以前没接触过Android的朋友,或者刚入门Android 的朋友,这篇文章作为入门,那是再合适不过了,希望对刚入门Android的朋友有帮助,接下来,就不罗嗦啦。本文主要有以下几个步骤:1. Java 基础;2. 搭建Android 开发环境;3. 了解Android 运行原理以及一个工程项目结构;4. 如何系统学习Android;5. 推荐一些实用的资源6. 总结首先呢?当然要有Java 基础;我大学的专业就是Java,但由于没学好,刚开始学Android 的时候,挺吃力的,后来又去补Java 基础去了;因为Android SDK 是基于Java 开发的,使用的语言是Java,如果有了Java 基础,学Android 就会事半功倍;比如在Android 中要使用到的接口,抽象类,类型转换,继承,覆盖,匿名内部类,多线程,这些都是Java 语言的,如果以前没有基础过,学Android 会很郁闷的;当然如果你有C++ 基础,当然也可以基于NDK 开发,可以不使用Java;对于没有Java 基础的朋友,我推荐一些资料:Mars 的Java4Android:极客学院推出的Android 专题:搭建环境Android 开发IDE选择,有Eclipse,IntelliJ IDEA,Android Studio(基于IntelliJ IDEA 社区版开发的),Eclipse 和 Android Studio 是免费的;对于初学者我推荐使用Eclipse,因为Eclipse 成熟,遇到问题,搜索也容易找到答案;以后可以尝试不同的IDE;搭建环境的步骤:Eclipse安装;Android SDK安装(Android 开发工具包);ADT安装(Eclipse 的插件,使Eclipse 能够开发Android);创建AVD(在电脑创建一个虚拟手机);详细步骤:在这里会有很多工具,可能刚入门的会比较模糊,可以参考:如果最终虚拟的手机屏幕能够显示主界面,则表示成功;了解Android 运行原理,一个工程的项目结构项目结构推荐慕课网的视频教程:系统学习Android有了上面的学习,对Android 也有了初步的认识,接下来可以系统地学习Android 啦,网上资料也很多啦,书籍也很多,视频也很多,我觉得首先要《》;然后手上准备一本书,可以当做字典,不会可以看看;如果看官方文档,有难度,看书进度太慢,可以看视频,跟着视频学,做一下东西,有什么不会的问题,可以Google 搜索;如果说到细的知识点,比如四大组件,UI,多媒体处理,信号连接,数据存储,我在这里就不多介绍了;主要介绍了一些学习资料;官方文档官方指南:Android API:官方中文文档: 书推荐《》;《》;视频教程博客推荐网站推荐总结当然Github 上有很多开源的项目,多看看源码,自己才能快速提升;《》,这里几乎汇总了github 上所有的开源项目,可以自己找些慢慢学;然而学习是乏味的事,坚持到最后是不易的;要善于利用搜索引擎,遇到不会的问题,要使用Google 搜索;对了,作为一个开发者,要学会自备梯子;还有学Android,要时刻关注Android 的最新动态,比如最新发布的Android 5.0 棒棒糖版,去了解他的新特性;加一些QQ 群,有不会可以问问,相互交流;最近在维护一个公众号:安卓同学(AndroidMate),分享一些自己Android 开发的心得。
Android应用开发使用Java语言,所以要先学好Java基础,Java的面向对象,集合,多线程,IO流知识是必须的,还有xml。1. 不是很建议看视频,逛论坛,效率比较低;2. 多敲代码,有基础后可以使用一些第三方库,不必自己造轮子,以后开发多了慢慢深入了;3. Github是个好地方,有很多Demo,资料4. Android更新很快,建议学习新的API下面分享些参考资料:(Android开发涉及到的工具、教程合集)
(eoeAndroid wiki)关于学习软件开发方面我的一个答案:张龙的圣思园Java教学视频感觉很不错,有一课是讲学习方法的,可以看看有个博客,写了写张龙视频的学习笔记,后面也有Android的-------
已有帐号?
无法登录?
社交帐号登录

我要回帖

更多关于 初学者怎样学习编程 的文章

 

随机推荐