【跨行业自学android】边工作边自学找到开发工作
今天距离入职也就是我的第一份安卓开发工作整整一个月.有点空闲,就来分享下我的自学历程 算是一个回顾吧。
我不是计算机专业 刚毕业的第一份工作也跟软件丝毫沾不上边 2012年刚毕业很迷茫,也不知道做什么,只记得当时嵌入式啊 安卓什么的培训很火, 网上到处是广告。 我动了心思 可是没钱,身在魔都第一份工作时做硬件 工资才3.5K房租都上千了 要存上一万多得多久。。。工作也是混混沌沌 到了2013年5月份还是没存够钱 这个时候有点急了 便决定自学安卓(说了这么多。。。终于入主题了)
大家可能疑惑, 边工作怎么自学 主要是第一份工作在国企,很闲,一个月我记得有事情做也就那么一两周 其他时间时间偷偷自学。
我是电子专业,在学校只学过C语言了 我还记得当时补考了 惨。。。可以说基本软件这块零基础, 这也导致自学中走了很多弯路,当时急于制出一套计划 我是参看了黑马程序员官网那个教学图 慢慢学,不过后来发现那个图也不怎么好 还是要根据自己的进度去调整,比如Web这块可以放到后面。
我接下来先说说详细的自学流程 包括自学这段时间走的弯路(重要!),或者说初学者要注意的地方(仅个人意见,勿喷):
1.自学书籍的选择。 我相信大多数自学者都会在自学前 各种度娘哪种android入门书籍好啊? 这问题问烂了,回答也不过什么 李刚疯狂讲义 等等等。。。
但是你们忽略了很重要的一点,就是这些书都是N年前的 导致里面的好多例子程序的方法都过时了,或者不建议再用了 这对初学者来说是件很不好的事情,比如我当时选了2011年《android应用开发揭秘》里面的方法很多过时了看着满屏幕的横线 是个打击。
为了避免这种麻烦,我强烈建议选书选新的 现在的话推荐android4.0开发 具体的书籍暂且推荐EOE出版的 Android 开发入门与实战(第二版),当然你也可以选其他的 记住选4.0的。
2. 书选好了,接下来你要干什么? 拿着书一顿猛看?敲代码? NO,这绝对不是一个好办法,我认为书的作用,是供我们浏览了解android大概(因为电子书翻页查找不方便) 也就是我们翻翻就行了 当做一个工具 学习android的重头戏是视频
3. 在这里我补充一点,学习android之前必须学java 不需要学的很深,看不懂的(比如接口,多态 IO 这些)一点关系都没有!丝毫不影响我们学习android 我们要做的就是把java过一遍。
视频只推荐:马士兵的java视频,我倒现在还在看 他讲的很清晰很有入门感,但是深度一点没丢!我当时在公司是九点上班,我直接在公司旁边租房了,步行10分钟上班 哈哈(很近,但是房租太贵了10平米 就是1250/月) 这也让我每天早上和晚上有很多时间看视频,去公司可以翻翻书。。
接下来分享下我是怎么学android的。再次说下我是从零基础的角度写这篇文章的,可能有的内容在你看起来很幼稚。
1. 怎么学android 学到什么程度 要做哪些小项目 (android = 界面 + 数据库 + 网络)
视频的选择?我看了3部视频,MARS的,老罗的,黑马官网的。MARS的第一部是2011年的,太老了不推荐,第二部还在更新不过进度很慢,MARS的特点是很细,质量不错。 老罗的讲的不适合新手 我不推荐。 之前这两部我话了很多时间,最后找到了黑马官网张泽华4.0的,真是经典之作,推荐这一部很适合入门,边看边练大有收获。
android分为本地 和 网络编程两部分,看过老罗视频的人应该记得他说过:企业级开发都是要访问网络的,应该把网络和控件一起学。但我建议还是先把本地化的android学好,下面我给出自己的流程:
第一步: 别一开始就看什么四大组件(网上都这么推荐,我认为不妥),因为并不是所有的APP都需要用四大组件的,前几天我们学学Activity就好了,重点是生命周期(要真正明白这个周期的作用,不仅仅是记下来) --->>>> Activity的跳转(intent把数值带过去) --->>>> 每个activity的界面怎么来的(用布局生成的,布局又有线性。
相对,OK就这两个其他先别管) ----->>> 每个布局是由什么组成的(当然是控件啦,十多种基本控件要熟练掌握,每个控件有很多属性主需要记住基本的别深钻) 至少我们要做到不看书能手敲代码直接在界面上展示各种控件。 说到控件不得不说ListView,这个控件非常重要一定要熟练,listview是用来展示一些重复性的数据用 比如电话薄等等,哪个开发不要??
第二步: 了解了控件,我们该学习数据存储了,它的作用是把数据保存在我们的手机中。分为3类:sharePreference是保存一些简单的键值对,比如你写了一个登陆界面,第一次输入了用户名和密码,想在下次进入自动填充用户名,用sharePreference保存。
数据库SQLite是保存一些表格型的数据,其实就是我们用的Excel 我们自己写代码增加数据 修改 查找 删除一条,这个很重要我们要重点掌握,要学会把增删查改这些方法做好封装,而不是每次处理数据库去写一遍逻辑代码,这个。。。懂的自然懂。好了简单数据和复杂数据我们都会保存了,那图片呢?音乐视频呢?这是我们就要学习File操作了,这里纯粹是java IO包里面File的知识,没有捷径多练习,比如删除SD上某个文件?复制粘贴,都要会
第三步: 学到这里做几个项目练练手:先做个联系人,自己建立数据库来装数据,能够顺利显示出来 并且可以删除修改。再做个文件浏览器,能够查看手机SD卡上的所有文件 删除复制重命名。
做完了之后我们要充实一下自己的APP了,只有一个activity太简陋,我们要学一下其他3个基本组件:service 和contentProvider和广播。在这里我做下简单介绍你们去看视频很容易学会,service是在后台的不需要打开APP一直运行的,比如播放Mp3,你要自己能写一个service运行在手机里。
contentProvider说白了就是android把系统预装的APK的数据库暴露给你(比如手机自带的联系人),我们开发联系人就没必要自己去建立了 直接用,注意 前面说的小项目是为了练习数据库。而我们很少自己去写contentProvider暴露给别人用,懂了吗? 广播就是我们在自己的程序中注册广播接收系统通知(比如来了来短信为什么手机有反应上面弹出提示框,因为系统自带的短信应用注册了广播接受者,监听系统发来的短信广播)
OK,那我们也可以自己写,监听手机电话,电量低等等,这些都是系统发来的广播我们来接收,那我们可以自己自定义广播吗?当然,我们可以自己发一条广播出去,让其他的应用来接受
第四步: 多媒体开发,传感器 WIFI 蓝牙这些我们先别管,他们是特色开发有需要再去专门学,我们只需要会基本操作(怎么播放停止MP3),好了到这里我们来练练手: service :写个小demo在后台播放MP3,可以停止 暂停。
contentProvider:我们写一个ListView把手机里的存好的联系人读出来,可以删除修改,这里是系统的数据库所以我们要用contentProvider(注意跟第二步那个小项目区分) 广播:我们做一个电话短信拦截,我们添加几个号码,接到直接挂断或者不提示短信。(注册广播监听来电和短信,并取得来者号码进行拦截 )
第五步: 到这里你已经迈进了一只脚,可以做一些小APP了(文件浏览器,记事本,联系人带拦截功能) 但到这里 我们一直处于断网状态,而在企业开发中 都需要访问网络的(一般是公司自己的服务器)。
Socket先别管,Http是重点,从3.0开始所有网络操作都要在子线程完成,我们要学下线程(别深究,会用就行)了,网络操作完成后(比如下载完了一张图片)我们该更新界面了 需要用到Handler . 这里我不做过多讲解,推荐一本书 很好入门:android网络编程详解王家林, 别被书名吓到 里面讲的很浅显。
可以写写Demo练练手,从网络上下载一张图片显示出来,下载一首歌保存到SD卡某个文件夹,弄一个进度条 边下边显示下载进度。在这里我说一下get和post(因为自己当时在这里理解混乱):注意:不要把get理解成从网络获取数据,post上传。
其实他们都是上传,get是上传一个URL地址加上简单数据,post一般是上传文件,重要的服务器返回给我们什么,一张图 ? 一首音乐?那是服务器的事情,我们需要拿到返回来的东西 处理它就行了。好吧,服务器返回音乐视频这些很好处理,但有些东西必须是一种数据格式返回,比如天气预报,就涉及到了XML 和JSON,我们拿到数据后就要去解析,把解析后的一个个信息点显示到我们的界面,灵活编写我们的界面就有了风格迥异的APP。我们可以再网上找一些XML和JSON数据,用不同的方法去解析他们 都尝试一下,并且熟练掌握
5步下来,我们心里有点底 了,能写一些简单的APP(天气预报等等),但总是感觉欠缺点什么,恩,就是一些进阶知识了,让我们再一次飞跃。 只会一些基本控件 我们的界面有点简陋,我们可以学fragment(必须学),简单的自定义控件(这个不要学太多,学几个就好了,因为网上资源太多),线程(做一个多线程下载小Demo),在GitHub上面找一些开源包 比如Http异步请求 listview下拉刷新练习。
掌握一些Eclipse常见快捷键,比如Ctrl+F Ctrl+O等,更好的去阅读别人的代码。 当然你可以直接来问我,我会推荐一些小Demo给你做,有任务就有动力和进步。
本文优质内容出自:eoe Android开发者社区 作者:那沉默的羔羊
【本文源码下载,请点击下面“阅读原文”下载!】
了解最新移动开发资讯,请关注eoe移动开发者社区!
查看评论 回复