android学习对于只接触过java的同学来说可能容易,但入门却也是十分的难,看到代码似曾相识又不知道如何下手的感觉,很无奈,别担心,
一明确自我定位
现在你是初级工程师,但是你想当个高级工程师,所以,你就要给自己定个目标,即:我是要成为高级工程师的男人。有了这个定位,并且努力朝着这个目标去努力,然后内心深处就会有一个感觉,这个感觉就 也就是说,虽然我现在是小菜,但是我不是一般的小菜,从而内心有一种自豪感,而这种自豪感会给你提供正能量。这一条是虚的,但是是有用的。
二 学习路线
首先找本android入门的书来看,市面上大部分书都是入门的书,要把基本的东西搞懂,在学习的工程中要顺带写点demo。需要注意的是,demo要自己写,哪怕照着书上的抄,也不能直接把书中的demo运行一下。这个是有很大的区别的,代码感觉必须要通过敲代码来培养,抄一遍代码和运行一遍demo效果是截然不同的,这点一定要注意。入门的书看完后,基本就可以上手做一些开发了,比如公司的一些项目啥的。到此,我们已�
1.Android团队提供的示例项目
android应该如何学习【最新7篇】
2.Remote Droid
RemoteDroid是一个Android应用,能够让用户使用自己的无线网络使用无线键盘、触摸屏操作手机。这个�
3.TorProxy和Shadow
TorProxy应用实现了Android手机无线电电传通讯(TOR),和Shadow应用一起使用,可以使用手机匿名上网。从该项目源代码中,可以掌握socket连接、管理cookie等方法。
4、 Android SMSPopup
SMSPopup可以截获短信内容显示在一个泡泡形状的窗口中。从这个项目中可以掌握到如何使用内置的短信SMS接口。
5、 Standup Timer
Standup Timer应用用于控制站立会议时间,类似秒表倒计时,可以提醒每个人的讲话时间已到,从而保证每个与会者使用时间一样。从该项目的代码中,可以学会如何使用时间函数。另外,这个项目的代码是采用视图view、模型model严格分离的设计思路。
6、 Foursquare
是的一个客户端应用,该应用主要分为两个模块:API(com.joelapenna.foursquare)和界面前端(com.joelapenna.foursquared)两部分。从该项目代码中,可以学会如何同步、多线程、HTTP连接等技术。
7、 Pedometer
Pedometer应用用于记录你每天走路步数的。尽管记录不一定精准,但是从这个项目中,可以学习几个不同的技术:加速器交互、语音更新、后台运行服务等。
8、 OpenSudoku-android
OpenSudoku是一个简单的九宫格数独游戏。从代码中可以学习到如何在视图中显示表格数据,以及如何和一个网站交互等技术。
9、 ConnectBot
ConnectBot是Android平台的一个客户端安全壳应用。从该项目代码中,可以学习到很多Android安全方面的内容,这些是你在开发应用时经常需要考虑的安全问题。
10、 WordPress的Android应用
当然在最后不能不提Wordpress的Android应用了,这是Wordpress官方开发团队提供的一个项目。从代码中可以学习到XMLRPC调用(当然还有更多的优秀内容)。
1、设计不一致
让我们面对现实,即使谷歌公布了 Material Design(材料设计)作为设计语言,并希望开发者能够遵循,但是目前真正采用Material Design 风格界面的应用程序非常少,而大多数仍然使用老旧的Holo Design设计语言。
不清楚是否是因为Material Design不佳还是开发者认为没必要,Google Play上还是有很多不同风格应用程序,而且看起来统一设计的道路还非常长。就设计语言凝聚力和统一性而言,苹果的应用程序做得好很多,大多数应用程序都已经专门针对新的系统风格调整用户界面设计。
2、本身就不像精简的iOS
Android操作系统远不及iOS直观,随便一台Android设备总能找到不同的选项或功能,而苹果的iOS系统上做每一件事情都使用了同样的方式。当然,原生的Android操作系统可能最为直观,但设备制造商就是不喜欢原生Android,几乎每一个品牌的智能手机都有自家定制的用户界面。
这意味着,一个用户如果要换不同品牌的手机,必须要通过一定的学习才能适应,这个学习过程有可能是轻量级,也可能难以使用。更重要的是,同一品牌的智能手机,每一款的界面还不一样,这一点与iOS用户更换新 iPhone 直接上手相比体验大为不同。
3、系统更新升级
这一点也是事实。每当Android的新版本出来时,大多数 Android 用户必须等待很长一段时间,才能够获得来自官方的正式版系统升级,而这已经是幸运儿了,如不幸可能永久等待也无任何升级希望。
反观iOS设备,在规定新系统版本发布之日,总是会有大量用户直接升级,随后新系统的人数占据绝大多数。当然,如果用户手持Nexus设备的话,将最快获得升级,不过Nexus在全球Android手机之中市场份额相当之低。
4、内置大量臃肿的应用程序
内置应用程序的数量和臃肿程度,完全取决于用户购买的是哪一款Android智能手机。品牌制造商和运营商,两者都非常喜欢在智能手机里预装各种应用程序,而且大部分没办法直接禁用或者完全手动删除,不过其中也有一些设备不会太过于臃肿。
反观iOS设备,虽然也有不少预装应用程序,一些对个人可能没有多大用处,比如Apple Watch,但所预装的应用程序并没有让用户感受到十分臃肿。总之,虽然iOS系统正在变大,但不可否认很多Android设备的体验的确毁在大量预装应用上。
5、控制中心更直观易用
这一点不同的用户感受不同,反应有好有坏。iOS设备支持直接从任何界面向上滑动访问控制中心,并提供一些重要的开关,包括音乐控制和音量调节。
Android是最早提供快捷设置和通知栏智能手机,但是一些用户认为其排列混乱不够直观,比如Android Lollipop系统里,用户必须滑动那个两次顶部或者使用双指手势,才能找到需要的快捷开关,而iOS只要简单的从底部滑动,显得更简单也更人性化,只是缺陷在于快捷开关无法自定义。
6、内置的相机应用功能有限
就默认相机功能而言,iOS相比Android看起来更直观功能也更多,比如手动控制曝光,自动曝光/自动对焦等,很多功能在Android设备上的默认相机里缺失。不过,新版Android以及大多数设备制造商提供的相机应用,可
7、无iCloud备份功能
iOS自带的强大的数据备份功能莫过于iCloud,而且直观性和易用性良好,用户只要打开开关,选择需要备份的应用和数据即可,在Wi-Fi环境下还能自动备份,随时还原。
Android上也有相类似的解决方案,只是大多数难以完整的备份,真要完美则需要Root获取权限,然后再通过第三方Recovery备份和恢复,比如Nandroid和钛备份的方案。
8、应用程序更新
这一点也是事实,Google Play现在的确比苹果App Store拥有更多的游戏和应用,但后者总是更讨开发者欢迎,尤其当涉及到发布新款或新版应用程序,iOS总是开发者优先首选,Android才紧随其后,很多用户对开发者或开发商的“应用无更新”不满也源于此,不过苹果的确为开发者带来了更多的收入。
9、缺乏连续互通功能
如果家里有苹果家族全套产品,比如Mac、iPad和iPhone,只要移动设备升级到了新版iOS 8,很多工作和生活上的任务处理将变得更方便一些,比如Mac未完成的工作可以在iPad上继续,iPhone来电时Mac可以代替接电话,就算没有Wi-Fi也能共享热点等等,很多功能在苹果设备之间都能实现无缝衔接。
而这一点在Android上还无法真正实现,谷歌也正在完善Chrome OS,让其代替接受通知,甚至就直接运行Android应用。
10、苹果的健康应用目前比Google Fit完善
提到苹果的健康应用就难免不让人想起Google Fit。相比苹果而言,谷歌的方案目前在功能上还是令很多很多用户失望,尤其是生态系统不够完善。苹果的健康功能更为丰富一些,同时还拥有很多配套的第三方应用程序和配件产品,得益于完善的 HealthKit 和 ResearchKit,iOS设备就像是一个强大的医学平台。
猜你感兴趣:很多朋友都对学习路线问题感到迷茫,特别是还在上学的朋友们。在这里就详细的为大家介绍一下。
android应该如何学习【最新7篇】
a) Java基础语法: 具体的知识点列表可以在这里下载:《Java知识点列表》V1.0。这部分内容没有讨价还价的余地,必须烂熟于胸。至于具体的学习方法,可以看书或者是看视频,但是关键是要多加练习,无论是书上的练习还是视频里面的练习,都需要仔仔细细的完成;
b)设计模式:由于在Android系统的框架层当中,使用了大量的设计模式,如果没有这个方面的知识,对于Android的理解就会大打折扣。设计模式的种类非常之多,一个一个的全部掌握,是不现实的,必须首先掌握面向对象的基础设计原则,有了这些基础原则的支持,就可以举一反三。这部分内容可以在《Effective Java》和《Agile.Software.Development:Principles,Patterns.and.Practices》这两本书中找到。
2.Linux基础知识: 大家都知道,Android系统的基础是Linux操作系统。在开发过程当中,我们也需要使用到一些Linux命令。所以说一些Linux的基础知识是必须的(话说现在的程序员,不懂Linux都不好意思跟人家打招呼),推荐大家看看《鸟哥的私房菜》这本书,写的相当不错;
3.数据库基础知识 这个比较简单,就是一个增删改查的数据库操作,可以看一下这本书:《SQL编程练习与解答》
4.网络协议 至少需要学习两种基础的协议,HTTP协议与Socket协议;
5.Android基础知识 有了以上的铺垫,再来看Android,是不是觉得轻松了很多呢?至于基础知识的学习顺序,最好的方法就是按照Android SDK帮助文档当中的Dev Guide里面的顺序,我的《Android视频教程》也基本上是按照这个顺序录制的;
6.服务器端开发知识: 由于很多Android应用程序都需要服务器端的支持,所以掌握一些服务器端开发知识还是非常有必要的。至于选择哪一种服务器端知识进行学习,就比较麻烦了,因为技术的种类实在是太多了:
a)Java EE: 就是上面邮件当中所提到的SSH—Struts+Spring+Hibernate。这种技术的优点的功能完整、强大,已经使用了很多年,而且既然大家已经非常熟悉Java了,那么学习SSH看起来也顺理成章。但是使用这种技术开发服务器端程序,非常麻烦。即使是一些简单的功能,也可能需要大量的代码和配置文件来实现;
b)PHP: 简单易学,开发快速。但是我们需要多学一种语言,是否得不偿失,就要大家自己判断了;
c).NET: 这项技术的特点和Java EE差不多,但是要想掌握。NET,则需要掌握c#,也是个麻烦的事情;
d)ruby on rails:
中级工程师这个阶段很重要,一般来说需要1年左右的开发经验就能达到。
首先,要找家靠谱的公司去做android,什么是靠谱的公司,就是在里面能学到东西,可以先不考虑待遇什么的,毕竟技术有了,后面待遇也就自然有了。平时在公司要认真做项目,积极主动,一切以学知识为目标,不要图轻松少做项目。同时还要学习公司内部高级工程师、架构师们写的代码,加以理解变为自己的东西。这些都是工作中的经验,除了工作,还需要在业余时间勤奋 学习才可以。业余时间是指非工作时间的其他时间,而且这个时间利用的越多,你的成长之路历程就会越短,你就能越快地提高技术。大家不要小看业余时间,甚至好多情况下,只有工作时间是远远不够的,必须在业余时间也学习才行。那么业余时间如何学习呢?
给大家如下几个建议:
1.写一个app,比如高仿系列,或者自己做一个app发布也行
2.建立一个博客,csdn或者个人博客都行
这一条在我的眼里,是必须的,因为学习讲究总结、融会贯通,而博客刚好可以给我们一个写总结的地方。时不时把自己的知识汇总下写一篇博客出来,这对自己是一个提高,对别人也是一个帮助。这个怎么说呢,当你写博客,你就会发现一个知识你自己会了和写出来这是不一样的,能写出来才是真正地懂了。另外,当你的博客写好了,会有好多人看,这对你也是一个赞赏和激励,让你觉得你的辛勤劳动更有价值,这种利人利己的事,是一定要做的。刚开始写点基础的,慢慢就要写点难一点的,这样才能逐步提高。除了写博客,平时也要在内心多总结、思考才行,比如可以想想,android中所有的IPC方式有哪些等。写博客和做开源,对于提高个人知名度很有作用,而一旦有了知名度,很多好事就都来了。
3. 建立或者参加开源,比如github
开源的好处就不同提了,github上各色各样的开源都有,平时大家都是拿来用,但是自己写一个开源给全世界的人用,不是一个很美好的事情吗?建议大家参加开源,因为开源看起来档次比较高。
4.研究android中一些高级的概念、源码等
这个是很重要的,除了量变外,还需要质变。作为一个中级工程师,必须在核心技术上也有所提高,比如aidl、remoteviews、android内部的运行机制等
经过上面几个过程,大概一年时间,android中级工程师就ok了。
成为高级工程师就没有太具体了,就是把中级工程师的那几个建议,每个都做的很好,这个阶段往往需要1-2年或者更多。高级工程师的要求是:熟练掌握android api,理解android的内部运行机制,对view、activity等一些常用的android内部运行机制熟练掌握,对常见的android知识点都有涉猎,并且还能够解决一些比较偏门的问题(需要基于android的内部机制),对android的性能调优和适配有认识,代码风格较好并且具有一定的设计模式,在工作上除了技术还要有业务的理解,能够指导初中级工程师,在工作中能够独挡一面。同时在解决问题的能力上达到一个全新的档次,即能够用恰当的手段去解决无法google出来的问题的答案。这个解决问题的能力的档次,这个有点抽象,但是的确很重要,它决定了一个人的档次,具体的需要大家慢慢体会,当技术达到一个档次后,你就可以轻松解决一些疑难杂症。
关于整个周期,从初级到高级大概要2-3年,或者更久。这么说,业余时间利用的越充分,这个周期就会越短,你的个人价值就会越高。虽然说起来简单,但是努力的过程是很艰辛的,但是只要你坚持去努力,很快你的生活就会不一样,相信这一点,谁都知道要努力才能有所收获,但为什么还是好多人没收获呢,原因是努力是不容易的,是要花时间的,是比看电影玩游戏要痛苦很多的。不怕别人比我们聪明,就怕比我们聪明的人还比我们努力。好了,大家加油了,花的时间到了,高级工程师自然就有了。最后,再强调下努力的重要性,在一个公司里,周围人的水平都和我们差不多,要深知脱颖而出的困难程度,从那么多人中脱颖而出是很难的。因此,一定要努力,一定要逼着自己去学习,这样才有可能脱颖而出,请大家一定要有这个意识。
android开发(这里不提platform和底层驱动)你需要对Java有个良好的基础,一般我们用Eclipse作为开发工具。对于过多的具体知识详细介绍我这里不展开,我只说我个人的学习方法和本人以为的好的步骤。
1.搭建环境:包括对Java和Eclipse及模拟器(有真机再好不过)的熟悉,对于android的tools和adb命令可以放到后面熟悉了解。
2.从helloworld开始:了解一个基本的android应用代码包含哪些,各部分做什么用。(这里只要先了解个大概就好)
3.activity、intent:了解activity是什么及其生命周期,intent是什么东西及它是基于消息机制。
4.掌握基础:这阶段你可以反复的修改及单步调试一个简单的程序,并学会logcat、单步调试、最基本的View、最简单的布局、进而对service、intentFilter等的熟悉 (以上4步骤推荐看深入浅出Google_Android.pdf这个电子书就够了)
5.接下来就得动手了:开始做应用吧,不要问写什么应用,写你自己想的,你认为难度不至于太难的应用(别告诉我你现在就要做3D游戏,要做小鸟之类的), 这个时期你基本不要教学的视频和android的书籍,最好的帮手有3个SDK目录下的doc($ANDROID_HOME$docs eferenceindex.html)、百度及google、破解工具(apktool、dex2jar、jd-gui,可以提取目标apk的资 源及反编译源代码,这里反编译不是为了干坏事,而是从别人那里学习技术,你并不能完全的得到一个好的破解代码,但你可以通过代码片段来获取信息学习或者进 行搜索从而学到各种技术),这个阶段你就要多看别人的代码多动手了,你要开始熟悉和使用android的类库。循环这步,直到你不在做android吧。