在几个Android开发者群里面总是碰到新人提出这样的问题:"我想学Android开发,但是不知道怎么开始,不知道要学一些什么。"  其实,我在最开始学习Android开发的时候也遇到这样的问题,并且自己在碰到这样的问题的时候并未得到好的指导,导致走了很多的弯路,并浪费了许多时间。在参加工作一段时间后,慢慢的对Android开发有了新的认识。于是就决定把自己之前遇到的一些疑难都慢慢的写下来,帮助Android新手开发走入正轨。当然本文可能有些偏差,请大家代为指正。

  我是经过自己自学学的Android,刚开始的时候是在网上看视频,后面再开始慢慢的自己去找资料,但是没有真正的需求给自己去做,所以一开始看的东西很杂,没有
针对性。我们学习的最终原因就是将学到的东西经过实践应用到实际的开发中去,所以学习的目的就是找工作。闲话少说,下面开始进入我们的正题。

一、 开始学习Android需要一定的Java基础
  Android虽然底层是用C语言编写的,但是我们在工作的时候都是在应用层进行程序层的开发,而其程序层采用的语言是Java所以,要想学好Android,就必须得掌握Java语言。这其中包括Java的语义,语法,和逻辑。其次,你应当熟练掌握Java的通讯机制和几种开发模式。在对Java有了一定的了解后,我们再进入第二个阶段。

二、Android开发环境的搭建

  ① Java开发环境的搭建,相信大家在第一阶段的时候就对这个有了一定的了解了,但是为什么在这才进行说明呢?因为,去一个新的公司上班,在分配给你任务后然后分配给你自己的电脑,这就需要你在这台电脑上安装开发环境。很多人在第一阶段的时候因为对Java开发环境的搭建不是很熟悉,就请别人代劳了(我身边的很多朋友就是这样)。所以在进行Android开发的时候第一部就是Java环境的搭建。这个在网上会有很多的教程,照着一步步做就好了。
  ② 在搭建完Java环境后我们开始进行Android开发环境的搭建。现在在公司里面大部分Android开发使用的编译器是eclipse,当然有些新潮的会使用Android Studio,并且Android Studio大有蔓延之势。所以我们有必要对这两种编译器进行一定的了解。编译器的选择安装和一些插件的安装是必要的,工欲善其事必先利其器嘛。当然这个在网上也是有许多教程的,我只是在这给大家一个学习的方向,具体的操作就不细说了。
  ③选择一个模拟器。模拟器就是在自己的电脑上安装一个虚拟机,可以模拟手机的运行将你在编译器里面编写的程序安装到其上,进行测试。当然上面说的两个编译器
eclipse和Android Studio是有自带的模拟器,但是他们的运行速度是很让人抓狂的。所以我在开始学习的时候选择的模拟器是genymotion ,这是一款Android开发者选择比较多的模拟器,速度很快,而且有很多版本的机型可以进行屏幕适配。

三、Android开发必须掌握的一些技术
  我在开始的时候因为对Android开发没有足够的了解,所以学习的时候比较茫然,基本上是看到什么好学,觉得某个功能很炫就去学,结果在找工作的时候发现自己学的
那些东西大部分都是没有用的,在公司进行开发的时候根本用不着,在找工作的时候也不会对你有什么帮助。在找工作的时候面试了很多家,被问到了很多问题,慢慢的就知道工作需要掌握一些什么技术了。
  ① Android四大组件 这是必须掌握的东东,activity,service,contentprovider,broadcastReceiver.其中activity是重中之重,他就相当于你和你开发的应用的一个交互者,你通过这个组件去和你的应用进行交流。其次后面的几个组件虽然在开发的时候用到的比较少,但是他们也是很重要的。至少在面试的时候,面试官会在这几个组件上面问你问题,他可以通过你对这几个组件的认识来观察你对Android开发的理解程度。
  ② Android的布局 我们知道Android的布局有五种,其中在开发的时候用得最多的布局就是relativeLayout和LinearLayout,即相对布局和线性布局,其次还有framLayout帧布局。其次要提醒大家的是,在对一个界面进行布局的时候最好将自己脑中或者设计图在纸上画出来,然后先思考怎么进行布局,怎么将布局完美的符合用户使用习惯的展现出来,而不是有了一个雏形就开始急急忙忙的进行代码的编写。(ps:在布局的时候最好能够减少嵌套,因为一个多层嵌套的布局会让主线程在读取界面文件的时候耗费太多的时间导致用户交互性体验不佳,一般一个布局里面最多只能嵌套3层布局。)。
  ③ 提高 在对基本的知识点了解了之后我们就要进一步的深入开发了,要知道企业需要什么样的技术。
    3.1 地图:百度地图、高德地图等,现在许多应用一般都嵌入了地图功能,所以在学习的时候必须对地图功能有一定的了解。
    3.2 网络通讯:开发一个APP产品,主要靠流量来营利,所以我们开发出来的产品必须是有网络连接功能的。所以Android的网络编程也是我们必须掌握的。
    3.3 各种第三方平台的引入: 比如微信、QQ、新浪等平台的接入。这就要求我们能够熟练的使用API文档,即有一定的阅读源文件的能力。其次我们有时候不得      不在应用中引入大量的第三方库,使得自己的应用更加炫酷和更加适合用户的使用习惯,这也需要你能看懂源文件和类库的文档。

四、Android开发最重要的三个要求
  Android开发最重要的三个要求,写代码,写代码,还是写代码。实践出真知。功能都是代码码出来的,只有不断的进行编写,才能使自己的技术更加精炼。最后,祝大家在Android开发的道路上少走弯路。

初学Android开发怎么开始?的更多相关文章

  1. Android开发之网络

    很多初学Android开发的人员对网络这一点感觉很高大上,现在我就和大家分享一下我的学习心得. 就目前的Android手机来说,可能存在5种网络状态: ----无网络(这种状态可能是因为手机停机,网络 ...

  2. 初学Android 一 基本开发环境

    Android平台架构 1.应用程序层: 核心应用程序和普通应用程序,他们都是平级的,都可以平等的调用下层. 2.应用程序框架:供上一层调用的API. 3.函数库: 不能被直接调用的C/C++库的集合 ...

  3. Android开发环境(IDE)

    一:Eclipse 1.装JDK: 2.装Eclipse://应与JDK同为32/64位. 3.装ADT: 4.装android sdk: 推荐下载ADT bundle包(包含Eclipse,Andr ...

  4. 【Bugly 技术干货】Android开发必备知识:为什么说Kotlin值得一试

    1.Hello, Kotlin Bugly 技术干货系列内容主要涉及移动开发方向,是由 Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 1. ...

  5. 10个学习Android开发的网站推荐

    1. Android Developers 作为一个Android开发者,官网的资料当然不可错过,从设计,培训,指南,文档,都不应该错过,在以后的学习过程中慢慢理解体会. 2. Android Gui ...

  6. 10个很棒的学习Android 开发的网站(转)

    看到江湖旅人 写的<10个很棒的学习iOS开发的网站 - 简书>,所以就忍不住写Android 啦,也希望对大家有帮助.我推荐的网站,都是我在学习Android 开发过程中发现的好网站,给 ...

  7. Android开发环境搭建相关文章列表(转载)

    Android开发虽然有所了解,但是一直没有搭建开发环境去学习,Android的更新速度比较快了,Android1.0是2008年发布的,截止到目前为止Android已经更新Android5.0.1, ...

  8. [转]10个学习Android开发的网站推荐

    本文转自:http://blog.csdn.net/i_lovefish/article/details/43950893 1. Android Developers 作为一个Android开发者,官 ...

  9. Android开发系列之调用WebService

    我在学习Android开发过程中遇到的第一个疑问就是Android客户端是怎么跟服务器数据库进行交互的呢?这个问题是我当初初次接触Android时所困扰我的一个很大的问题,直到几年前的一天,我突然想到 ...

随机推荐

  1. PHP安全编程:网站安全设计的一些原则(转)

    深度防范 深度防范原则是安全专业人员人人皆知的原则,它说明了冗余安全措施的价值,这是被历史所证明的. 深度防范原则可以延伸到其它领域,不仅仅是局限于编程领域.使用过备份伞的跳伞队员可以证明有冗余安全措 ...

  2. 完美解决Android完全退出程序(转)

    背景:假说有两个Activity, Activity1和Activity2, 1跳转到2,如果要在2退出程序,一般网上比较常见的说法是用 System.exit(0) 或是 android.os.Pr ...

  3. 初识Ajax技术

    Ajax:(Asynchronous JavaScript And Xml)是一种整合了JavaScript.XML.CSS等现有技术 Ajax工作流程:   纯javaScript的Ajax请求   ...

  4. Binary XML file : Error inflating class com.esri.android.map.MapView

    在测试esri arcgis for android的第一个程序Helloworld的时候,报这样的错: Binary XML file : Error inflating class com.esr ...

  5. struts2与spring整合问题,访问struts2链接时,spring会负责创建Action

    每次访问一次链接,spring会创建一个对象,并将链接所带的参数注入到Action的变量中(如何做到的呐) 因为: struts2的action每次访问都重新创建一个对象,那spring的ioc是怎么 ...

  6. UIView之常用方法

    UIView之常用方法 将一个视图添加为子视图,并使之在最上面显示 -(void)addSubView:(UIView *)view; 将指定子视图移动到顶部 -(void)bringSubViewT ...

  7. 【USACO 1.1.1】你的飞碟在这儿

    [问题描述] 一个众所周知的事实,在每一慧星后面是一个不明飞行物UFO. 这些不明飞行物时常来收集来自在地球上忠诚的支持者. 不幸地,他们的空间在每次旅行只能带上一群支持者. 他们要做的是用一种聪明的 ...

  8. CountDownLatch 和 CyclicBarrier 的运用及实现原理

    I.CountDownLatch 和 CyclicBarrier 的运用 CountDownlatch: 定义: 其是一个线程同步的辅助工具,通过它可以做到使一条线程一直阻塞等待,直到其他线程完成其所 ...

  9. 页面添加 mask 遮罩层

    var mask = function(){ $('<div>').css({ position: 'fixed', left: 0, top: 0, width: '100%', hei ...

  10. Linux中tar命令-C用法

    最近写了一个项目,其中用到了tar这个命令,发现在Qt中的file取得路径之后,获得的都是绝对路径,这个时候用tar打包会将绝对路径全部放进去, 可以用tar temp.tar.gz file -C ...