一个出色的Android开发工程师应该掌握哪些必要技能呢?我想应该掌握如下几个方面:
语言基础;
语言基础应该掌握C语言开发和Java语言开发,有人会问学习Android开发还要学习C语言吗?是这样的。Android底层是由C语言和C++来实现并运行Linux平台上,上层应用才是Java语言实现的,我们经常通过Java JNI的方式来调用C和C++,如果不会C语言就不知道如何使用JNI,如何调用底层C和C++实现
2. Android 基本组件及编程思想;
虽然Android应用由Java编写,但是,Android程序有自己的编程组件和编程思想,这在Java里面是找不到的。Android程序是基于配置的编程,包括组件之间的依赖关系,这就是你很少看到Android中有new这个关键字,这些编程风格和思想是贯穿整个Android开发全过程的,所以是必须掌握的。
3. Android UI;
任何一款App,不管功能有多强大,如果外观丑陋,用户就会立刻丢掉,去寻找其它的,所以,UI的选择、设计与实现及其UI的性能优化都是必须要掌握的。
4. Android 高级模块;
Android应用非常广泛,网站客户端,GPS定位,游戏,工具软件,应有尽有,实现某种应用就应该掌握某个模块知识,例如:开发客户端就应用掌握如何实现网络通信,如何使用多线程,如何解析数据。实现一款GPS定位就应该掌握GPS定位相关知识。实现一个音乐播放器,就应该掌握多媒体的知识,所以高级模块也是必须要掌握的。
5. Android 项目;
这是我们的最终目的,我使用Android开发,最终要学会做项目,做好项目,这就好比是盖房子,你盖第一座房子可能不太满意,当你盖第三、四座房子的时候就得心应手了,所以要通过多个项目练习来掌握开发完整项目的本领。
这里我整理了一些android学习的几个阶段任务,有意成为攻城狮群体的你可以参考一下:
这里我分为五个阶段;
第一阶段(Android开发基础)
本阶段是打基础的阶段,目标就是:了解Android项目结构、使用模拟器运行Android程序、了解Android程序的调试方法、了解行业背景、了解Android框架、搭建Android开发环境、在Android开发环境下开发第一个程序
Android编程基础
――Java语言基础
数据类型,变量、常量和数组;
运算符和表达式,分支,循环;
使用Android基础控件,实现输入输出
算法和常用数据结构
软件编程规范
要主动去掌握Java基本语法,深入理解变量、表达式、运算符、流程控制、算法初步、软件编程规范等相关内容。
――OOP编程
面向对象编程(OOP),类和对象;
继承和组合,this和super关键字,属性(Property);
方法重载和封装
访问修饰符、static和final关键字的使用
方法重写和多态
内部类和静态类
常用设计模式
掌握Java语言高级特性,理解面向对象编程思想,掌握封装,继承,多态三大特性。
――Java核心API
正则表达式
反射
集合框架
IO操作
MVC模式
多线程
Socket网络编程
深入了解Java中的相关API
Android UI基础
Android中的5大布局
Android中的常用控件
Android中的事件处理
系统菜单和上下文菜单的使用
对话框的使用
Activity的跳转
掌握Android中的常用布局和控件,对话框的使用,Activity的跳转和生命周期
第二阶段(服务端技术)
数据库、JDBC和XML
SQL语句基础和提高
SQL语句调优
数据库设计基础
JDBC核心API(Connection、Statement、ResultSet)
XML基本语法
XML解析
掌握MySql数据库技术,使用JDBC技术连接数据库,掌握XML的语法及解析
HTML/CSS
HTML基本文档结构
HTML中的各种元素
HTML中表单的使用
CSS规范
CSS选择器
CSS的常用属性
使用CSS实现页面布局
掌握HTM的L页面设计、编写,熟练使用Css样式话HTML
Servlet和JSP
Web服务器的工作原理,Tomcat的安装和启动
在Tomcat中配置虚拟目录与发布Web应用
Servlet的生命周期
Servlet核心API
Session和Cookie的使用
JSP的基本语法
JSP标签库
JSP编程技巧和经典设计模式
掌握Servlet和JSP技术,能够独立完成B/S结构的应用开发
第三阶段(Android核心技术)
数据存储
通过Context获取Android中的内部和外部数据存储目录
偏好设置文件的读写和偏好设置框架
创建和访问SQLite数据库
使用SQLiteDatabase对象实现数据库操作
使用Cursor遍历查询结果
使用SQLiteOpenHelper初始化数据库和升级数据库
定义ContentProvider共享数据
使用ContentResolver访问ContentProvider
Http协议详解
使用HttpUrlConnection访问Http服务端
使用HttpClient访问Http服务端
使用SAX方式解析XML
使用Pull方式解析XML
掌握Android中的存储技术:IO、偏好设置、数据库(SQLite)、ContentProvider和网络存储
线程通信
了解ANR
使用多线程技术解决ANR问题
了解线程通信技术原理
Handler和Message
使用多线程实现图片的异步加载
封装Android中的线程通信模型、AsyncTask
在工作线程中创建消息队列、HandlerThread
了解ANR产生原理和单线程模型,掌握Andorid中的线程通信技术和Andorid程序设计技巧
Android组件
Android中的进程优先级
Service组件的生命周期
使用IntentService执行异步任务
隐式意图的过滤(Intent和IntentFilter)
Intent的六大属性
广播、有序广播和驻留广播
使用BroadcastReceiver接受广播
使用ContentResolver访问媒体提供程序
掌握Activity和Service的生命周期,掌握Intent的六大属性,熟练使用显式意图和隐式意图。掌握广播接收器的使用。使用媒体提供程序管理Android中的图片和音视频资源
电话技术
使用联系人提供程序管理和查询通讯录
使用Calls相关API实现通话记录管理
使用Intent拨打电话
使用广播接收器监听电话呼出
使用TelephoneyManager监听电话呼入
使用AIDL接口Itelephony实现挂断电话
使用SmsManager发送短消息
使用广播接收器监听短信接受
使用内容提供程序实现短信记录管理
使用内容提供程序+内容观察者实现发送短信监听
使用电话技术实现接打电话,收发短信,掌握电话和短信的监听机制。使用内容提供程序管理电话联系人、通话记录和短信息记录
GPS及位置服务、GoogleMap服务、BaiduMap服务
使用LocationManager获取当前位置
基站三角定位和GPS定位
自动判断最佳定位服务来源
Google地图的组成元素
MapView的使用
控制地图、缩放地图
为地图添加图标
掌握GPS定位技术,掌握GoogleMap相关的API,结合使用地图与定位功能
Android4.x新特性
Fragment碎片
ViewPager
ActionBar
熟练掌握Android4.0新增技术和Android兼容包中常用类的用法
第四阶段(Android高级技术)
Android高级绘图
图片和文字特效
动态背景
自定义动画
音乐示波器
掌握Android自定义图形绘制,具备开发复杂控件效果的基础
Android高级控件
ListView、GridView的拖动
双向调节的滚动条
根据需要弹出的快速功能框
弧形排列的控件
掌握Android高级自定义控件的开发。能够根据需要,开发定制控件
商业应用项目结构分析及设计
商业项目中的界面功能组织以及导航
掌握正确使用各种资源
如何使用欢迎屏幕和新手导航
网络操作的基本封装
掌握商业软件在开发初期,如何搭建项目基本机构,如何在界面和后台功能之间进行通信。以及如何正确的组织各种资源
第五阶段(Android项目实践)
到了这一阶段就意味着真正开始android开发的生活了,这时就需要用一个真正的项目来练练手了(当然,前面每个阶段都不能脱离项目练习)。比如做手机卫士、影音软件之类的项目。这类项目网上有很多源代码可供下载,跟着源代码慢慢学习效果会事半功倍。
做好这五个阶段只能说明你已经步入了程序员的行列,但技术远不止这些。IT行业需要不断探索的精神。
好了,最后,共勉!