快速学习Android开发的技巧

由于项目须要,8月中旬开始决定作安卓的程序,因此立刻就开始学习安卓方面的开发知识,把最近的学习实践经历和你们分享分享。不要一开始就下载一大堆资料,视频,而后就不知道作什么了,要给本身定个目标,我要作什么?我怎么达到目标?java

我不懂java,可是懂C#和C++,因此我没主张去单独学习java语言,若是你是个最最初的新手,没啥语言基础,那你必须先看看java语言,不要很详细看,由于学习Android中,须要不断的去学习,推荐多看看e良师益友网里的Android应用开发视频教程。此外,你也是在学习java。android

1. 明确目标程序员

没 有目标的学习,会感受到后面没什么成果,在1年前,我也打算学习android开发的,可是目的就是学习,到网上去下载不少学习的视频,而后把开发环境搭 建起来,能把Helloworld运行起来,能打些log,Activity之间也能互相切换了,可是后面也就不了了之了,由于不知道学了要干什么。依葫 芦画瓢的作了几个例子,由于里面的问题都是已经解决的,因此也没能深刻的系统学习。框架

此次由于产品的须要,要作Android版本,要作的东西一开始就已经设计好了,见安卓版本,刚开始也不知道里面有些什么技术难度,可是要作的目标已经明确了,并且也没有现成的,碰到问题就查资料,慢慢地解决,这样有的放矢,学习的效果很是好。既有现成的技术可使用,又有些技术,须要查比较多的资料,这样记忆就比较深入,所掌握的知识也比较系统。ide

接下来的一系列文章,我会把在开发中遇到的问题,给你们详细讲讲,程序虽然小,可是五脏俱全,作Demo和作产品的要求彻底不是一个级别,若是Android大牛感受知识讲的比较浅,那能够绕道,毕竟我是从一个彻底的新手开始的。函数

 

2. 了解安卓开发中比较困难的地方学习

学习一个新平台,就要知道此平台开发要面临的困难有哪些,不要作到最后,这些问题没有考虑,那就比较糟糕了。在网上搜索了下,安卓开发困难总结如何:ui

1)安卓系统版本比较多,各版本之间的兼容性是个问题,此为系统碎片。线程

2)安卓设备变幻无穷,设备难以统一,每一个产品都成为独立,分散的Android碎片。设计

3)分辨率五花八门。一个产品,可能须要多个界面排版,人工消耗比较大。

看到这张图,有没有头疼的感受?

总结成一句话:Android的碎片化真是要来开发者的命。

 

3. 搭建开发环境

"巧妇难为无米之炊",开发环境确定是第一件要作的事情,这类的文章已经不少了,我也很少说了,多说也就比较无聊了。感谢吴秦,也是博客园里的一员,他写的很详细了,见这里,e良师益友网。

 

4. 查看网友总结的一些经验。

不是什么都查看,开发中遇到什么问题,就去查看什么问题,这样你查到的知识,立刻就能深刻的实践,这样知识就巩固了。

1)首先固然要看Android的开发文档,里面其实大部分的知识都有了,还有就是SDK自带的Samples。

2)博客园里搜索“Android开发”,会出来一大把,不少网友都是很系统的讲解了。

3)eoe android社区,里面有不少网友上传了现成的demo代码,里面不少都是模仿如今流行的产品的界面开发,非常不错。

 

5. 掌握调试方法

我的一直认为,调试技巧是开发中最重要的技能,若是调试技能比较差,不知道如何查找问题,那不会是个好的程序员,其技能也不会高到哪里去。

Android作下来,感受调试这块作的很不错了,这要感谢Eclipse IDE作的比较不错,可是Android的界面排版部分,真的不敢恭维,Eclipse时间用长了,占用内存真是大。有哪位高手可否告诉我下,大家界面排版是用什么的?

Android里,若是程序出了问题,有些是一下跟踪不到的,这时就要用到Log类了,Log类使用很简单,就很少说了。

自 己一个颇有感触的经验,若是你真的打算作Android开发,那就买一个设备,这样能大大提升开发效率,模拟器有时用起来真是麻烦,并且开发的设备不要很 好的,只要设备分辨率是主流的,传感器的支持最好全点就够了,国产的手机里,华为的还不错,或者到淘宝上去买个二手的,投资不大。真的买了投资,可能也会 增长你学习Android的决心。

 

6. 程序框架

经 过10多年的经历,认识到程序的框架对开发产品真的是起到举足轻重的做用。一个好的产品,若是有个好的程序框架,那真是事半功倍,可能开始所作的工做会比 较多,很难看到使人激动的成果,可是相信我,绝对值得。一开始,我也是比较注重程序界面开发,很快就开发出界面来,并且着实比较激动,由于有东西出来了, 可是后面的事情,真是使人发狂,想从头再来,太迟了,离计划的时间比较近了,时间不容许,只有硬着头皮往上打补丁,硬着交付第一个版本,第二个版本或者后 面的版本,早晚是要重来的。因此在后面带领团队开发的时候,在开发前,都是要讨论程序框架,留出很大部分时间进行程序框架开发,及在开发中不断的改进。

刚接触Android,不知道用什么程序框架,因此查了不少资料,一开始看到一个程序框架,感受很不错,因此一开始就使用了下面这个程序框架。

 

开始这个框架用的蛮爽,简单介绍一下,主UI线程若是要作一个比较长时间的任务,建立一个任务,发送到任务队列中去,后台的Service不断的从任务队列 中去取任务,而后交给线程处理,线程处理完后,经过消息(Message)发送到Handler里处理,而后Handler的handleMessage 函数里回调到UI主线程中去。

此框架的缺点是比较麻烦。

1)首先这里有个Observer模式,每一个Activity都要实现一个接口,而后注册到后台服务中去,这样后台服务才能把处理的结果回调到主线程中。

2) 每一个事件都要组成一个任务,发送到任务队列。

3)后台线程先要取任务,而后处理,而后经过消息切换到主线程,而后又回到到相应的Activity中,中间有个3次判断当前是什么任务。

4)不能并不是,任务只能一个接一个,虽然这个通常不会形成瓶颈。

由于应用比较简单,因此后来感受只要使用线程和Handler,经过消息就能处理,而后就查资料,发现已经有比较多的文章描述了这种方法,只是没提出这是一个框架,可是,我感受已经足够了。下面就是主代码,分布在每一个Activity中:

private void TaskThread()

{

Thread taskThread = new Thread()

{

@Override public void run()

{

//作耗时的任务

Message msg = Message.obtain();

msg.what = 1;

uiCallback.sendMessage(msg);

}

};

taskThread .start();

}

 

private Handler uiCallback = new Handler()

{

@Override public void handleMessage(Message msg)

{

if(msg.what == 1)

{

//在主线程中处理结果

}

}

};

够用就好,至少我如今用着很爽。

 

7. 程序国际化

互联网让地球成为一个村,因此一开始也须要了解一下程序是如何作国际化版本的。不要一开始字符串满天飞,整个程序中都存在hard code,这样作,早晚是要吃亏的。

 

8.产品升级机制

一个方便的产品升级机制,对产品的成长很重要,android是一个开放平台,在这点上比iOS作的好的多,产品升级很方便。

 

此文章的目的就是对想学Android开发的人一个指引,由于我也就是这么走过来的,加上本身在软件开发上的一些经验,让新手少走弯路。有计划,有目标的学习,这是最好的方法。想要了解学习更多知识,请多关注e良师益友网

相关文章
相关标签/搜索