第一阶段:Java面向对象编程
1.Java基本数据类型与表达式,分支循环。
2.String和StringBuffer的使用、正则表达式。
3.面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收;构造函数、this关键字、方法和方法的参数传递过程、static关键字、内部类,Java的垃极回收机制,Javadoc介绍。
4.对象实例化过程、方法的覆盖、final关键字、抽象类、接口、继承的优点和缺点剖析;对象的多态性:子类和父类之间的转换、抽象类和接口在多态中的应用、多态带来的好处。
5.Java异常处理,异常的机制原理。
6.常用的设计模式:Singleton、Template、Strategy模式。
7.JavaAPI介绍:种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。
8.Java集合介绍:Collection、Set、List、ArrayList、Vector、LinkedList、Hashset、TreeSet、Map、HashMap、TreeMap、Iterator、Enumeration等常用集合类API。
9.Java I/O输入输出流:File和FileRandomAccess类,字节流InputStream和
OutputStream,字符流Reader和Writer,以及相应实现类,IO性能分析,字节和字符的转化流,包装流的概念,以及常用包装类,计算机编码。
10.Java高级特性:反射、代理和泛型。
11.多线程原理:如何在程序中创建多线程(Thread、Runnable),线程安全问题,线程的同步,线程之间的通讯、死锁。
12.Socket网络编程。
第二阶段:Java Web开发
1.Java解析XML文件DOM4J。
2.MySql数据库的应用、多表连接查询的应用。
3.Jsp和Servlet应用。
4.Http协议解析。
5.Tomcat服务器的应用配置。
6.WebService服务配置应用。
第三阶段:android UI编程
1、Android开发环境搭建:Android介绍,Android开发环境搭建,第一个Android应用程序,Android应用程序目录结构。
2、Android初级控件的使用:
TextView控件的使用
Button控件的使用方法 EditText控件的使用方法 ImageView的使用方法
RadioButton的使用方法 Checkbox的使用方法
Menu的使用方法
3、Android高级控件的使用:
Autocompletion的使用方法 ListView的使用方法
GridView的使用方法
Adapter的使用方法
Spinner的使用方法
Gallary的使用方法
ScrollView的使用方法
4、对话框与菜单的使用:
Dialog的基本概念
AlertDialog的使用方法
DatePickerDialog的使用方法 Menu的使用方法
自定义Menu的实现方法
5、控件的布局方法:
线性布局的使用方法
相对布局的使用方法
表格布局的使用方法
6、多Acitivity管理:
AndroidManifest.xml文件的作用 Intent的使用方法
使用Intent传递数据的方法
启动Activity的方法
IntentFilter的使用方法
Activity Group的使用方法
7、自定义控件实现方法:
自定义ListView的实现方法
可折叠ListView的使用方法
自定义Adapter的实现方法
自定义View的实现方法
动态控件布局的上实现方法
第四阶段:android网络编程与数据存储
1、基于Android平台的HTTP通讯:
Http协议回顾
Apache Commons 工具包介绍
使用Get方法向服务器提交数据的方法
解析服务器响应数据的方法
使用POST方法向服务器提交数据的实现方法
向服务器提交非文本数据的实现方法
使用Http协议实现多线程下载
使用Http协议实现断点续传
2、Android数据存储技术:
SQLite3数据库简介
SQL语句回顾
SQLite3编程接口介绍
SQLite3事务管理
SQLite3游标使用方法
SQLite3性能分析
访问SDCard的方法
访问SharedPreferences的方法
3、ContentProvider使用方法:ContentProvider实现共享数据、URI的解析与UriMatcher、ContentUris的使用、使用ContentResolver操作ContentProvider、ContentProvider的
监听Android当中的异步操作:Handler的使用方法;异步任务的基本概念;AsyncTask的使用方法。
第五阶段:android手机硬件管理
1、地图及定位技术:GPS简介;LocationManager的使用方法;在Google Map上添加标记的方法;查询某地附近建筑的方法;使用Google Map实现点对点导航。
2、传感器使用方法:方向、加速度(重力)、光线、磁场、距离、温度等传感器的使用。
3、近场通信技术:NFC技术简介;NFC技术是用场景介绍;NFC技术实现方法。
4、媒体管理技术:MediaPlayer的使用方法。
5、触摸屏技术:手势识别;多点触摸技术。
第六阶段:Android图形编程技术
1、图形处理基础:2D图形编程基础;
2、点、线、面等基本图形元素绘制方法;
3、Android动画框架简介;
4、位移动画的实现方法;
5、淡入淡出动画的实现方法;
6、旋转动画的实现方法;
7、Matrix的使用方法。
第七阶段:Android游戏开发
1、Android游戏开发:Android游戏开发概述;
2、SurfaceView的使用方法;
3、物理小球技术;
4、碰撞检测技术;
5、图片、文字和背景音乐等资源的使用方法;
6、游戏引擎基础概念;
7、Cocoa2d-Android引擎使用方法;
8、OpenGL ES使用方法。
第二篇:安卓学习之路
前言:
20##年11月份我开始学习android软件开发(本人有良好的java基础、web开发基础、c++基础),20##年12月份开始开发第一款手机软件(软件名字就不透露了),20##年1月份第一款android应用在优亿、机锋、木蚂蚁正式上线。
20##年2月份,本人陆续又开发了3款手机应用,并且各个应用也逐渐发布到了更多的市场,如应用汇、91、腾讯应用中心、163应用中心、搜应用、爱卓网、安卓星空等等近10个应用市场。软件用户量大幅度上涨。 广告收入也随之增长,从1月份的每天3-10块钱,涨到了2月份的每天50-100元。
到了3月份,累计在线用户超过了10万人,每天启动用户在6500人左右,广告收入也涨到了100-140一天。(鉴于本人还是个学生,学业繁忙,没有时间开发新产品,所以在3月份用户量和收入保存平稳状态,没有什么增长)
android开发学习:
android学习的前提是java基础。如果你没有好的java基础,那就赶紧补充,我在这里不做介绍。
android是基于linux的,如果你要做底层的东西,可以买一些关于linux c开发和linux内核的书来补充一下基础。这里只介绍应用开发,linux底层的就不讨论了。
android应用开发方面的书,我建议《android应用开发详解》、《android疯狂讲义》、《android技术内幕:系统卷》,开发工具通常使用Eclipse,装上ADT插件就可以开发android程序了。
android应用开发学习流程简介:
1. 搭建环境。
包括Java、Eclipse、模拟器、web开发环境(可选)。真机运行速度是模拟器的几十倍,建议一定要买台android的手机来用,也不一定要很贵,我前期学android开发时用过的1100左右的索爱x8也挺不错的,至少可以流程地运行我的程序。另外,这里提到了web开发环境,因为我们大部分的程序都是要联网的、要从服务器获取数据,为用户提供更丰富的体验。如果你要做单机版的软件,那就可以不用搭建web开发环境。这样提醒一下:我的软件都是可单机可联网使用的,联网时可以得到在线的数据。我的服务器是在好空间网络上租的,几百块钱一年,很便宜,但也经常故障死机。通常,服务器一旦死机,当天我的收入就会直接减少40%以上。而且,好空间网络的服务器出问题之后,基本上是拖很久都解决不了的。建议钱多的话,到其他地方买个更好的服务器。
前期使用eclipse就能完成程序打包、签名等任务,后期要学习一下android的工具tools和adb命令,让我们更深入了解android的程序结构。
2. android基础学习。
环境搭好之后,要学习 Android应用的界面开发、事件处理、Activity、Service、使用Intent和IntentFilter进行通信、 图形与图像处理、数据存储和IO(包括文件系统、SQlite数据库)、Broadcast Receiver、多媒体等基础知识。有了这些基础知识后,你就可以开发一些简单的android应用了。
然后要扩展一下基础,学习OpenGL与3D应用开发、Widget手机桌面的应用、网络应用(包括xml数据通信、json数据通信、http网络知识)、重力感应相关知识、GPS应用开发知识、google map等基础扩展知识。
建议:学好java 基础, 多看SDK下的DEMO、API文档,多写学习总结、项目总结,多去官方网站develop.android.com,guide下有很多内容,多去eoe论坛 。
3. 知识水平提高提高
要成为一个专业的android程序员(我自己还远没有达到),还应该具备linux底层的一些知识,java JNI方面的知识。熟悉一直web开发知识,让你能够自己搭建一个完整的android软件系统。
4. 动手干活
这阶段,你应该尝试分析应用市场,看看那些应用受欢迎,并且应用数量不多,还有让你的软件能生存的空间(当然也要考虑自己目前的水平问题,太难的程序在刚开始应该是写不出来的,除非你就是传说当中的那个万中无一的绝世高手)。
分析确定好开发什么应用之后,就要开始着手干活了。先话2,3个星期写一款软件出来,然后发到各大应用市场,看看市场反应。然后根据用户使用的反馈信息,进行程序完善和bugfix。通过反复的修改及调试程序,可以学会界面布局、资源管理、logcat、调试、对activity、service、intentFilter等有一定的了解。这个时期最好的帮手是SDK目录下的doc、百度及google、破解工具(apktool、dex2jar、jd-gui,可以提取目标apk的资源及反编译源代码,这里反编译不是为了干坏事,而是从别人那里学习技术,了解别人的程序界面设计,资源光流等等。你并不能完全的得到一个好程序的破解代码,但你可以通过代码片段来获取信息学习或者进行搜索从而学到各种技术),这个阶段你就要多看别人的代码多动手了,你要开始熟悉和使用android的类库。
5. 开始赚钱
经过上面的阶段,你应该开发出了第一款准备面向市场的手机应用了,这个时候,你就可以考虑怎样用你的程序来赚钱了。先来介绍下android下的常用的赚钱方法:
1. 收费应用
在国内,可以通过移动MM、机锋网的金币、支付宝等各种渠道进行付费,目前也有不少软件提供免费使用,然后在部分高级功能中需要付费开通功能,通常都是用支付宝提供进行支付,然后根据支付宝提供的接口知道用户是否付费成功了。
中国人就是有那种吃免费午餐的习惯,收费软件在中国是很难赚钱的。而且直接收费容易让用户恶评软件。
2. 免费应用 + 广告
这是目前国内个人开发者最普遍的赚钱方式,你可以利用嵌入国内外数十家移动广告平台的sdk、并在各渠道发布你的应用来获取展示广告,从而利用用户对广告的点击而获取收入。但需要注意的是,身为开发者你最好不要以不正当等方式来获得用户点击,别破坏市场环境(比如现在很多应用所有功能都要求用户下载广告应用获取积分而得到使用,特别是一些情、色的应用)。
3. 应用内容的商业合作
这种模式需要你的应用有影响力,能让商家为你买单。例如UC浏览器首页的导航栏中的那几十个链接(如新浪、腾讯、搜狐、各种手机软件网站等)都不是白放上去的,没有给UC大量的广告费,是不肯能在上面取得一席之地的。
android广告平台介绍:
广告模式:
广告条:最普遍的广告模式,嵌入在应用界面内,用户点击行为会带来收入。
积分墙:应用通过限制功能、去广告等引导用户进入积分墙页面下载广告应用得到积分来换取使用的模式,用户安装完推荐广告软件后开发者才有收入,该模式会被一些市场和发布渠道拒绝应用上架。
推送:通过类似短信通知的模式展示广告,此模式用户点击率奇高,所以也是最受市场排挤的模式,像应用汇、安智市场、安卓市场、N多网等等都拒绝发布带推送广告的软件。
我用过的一些广告平台介绍:
1. 万普平台
我个人觉得最给力的广告平台,广告单价最高,扣量也不多。其主要广告为广告条、积分墙、推送3种模式,主要以CPA广告为主。开发者注册地址:http://www.waps.cn/?f=zhaostudy3,这是我的推荐地址。数据每1个小时更新一次左右,收入周结算,可以添加多个成员,人均收入低于800每月的,不收任何税费。超过的提现税率为6%。万普的收入明显比其他广告平台高很多、很多...。但是像应用汇、安智市场、安卓市场等大市场都拒绝带万普广告的应用。
2.多盟
广告条模式,CPC单价0.21元左右,广告填充率很高很高。还算比较靠谱,实时数据、数据每2个小时更新一次左右,收入周结算,可以添加多个成员,人均收入低于800每月的,不收任何税费。超过的部分提现税率为20%。最近多盟系统升级,每次升级后,我的软件广告点击率都大幅下降,2月份点击率为1%,3月份降到了0.5%一下,太黑了,只有我自己统计的40%左右。不过其他广告平台都一样扣量。 注册地址:http://www.domob.cn/
3.腾讯广告
广告条模式,CPC单价0.1.3元左右,展示和扣量方面都也还可以,每天能查询昨天的数据每月16-20号结算收入,腾讯要收走30%的分成。虽然单价低,但是腾讯的广告都是热门的腾讯软件,点击率很好,我的软件的腾讯广告点击率大概为1.3%。是多盟的2.5倍-3倍的点击率。 注册地址:http://dev.app.qq.com/loginInit.action
4.百度联盟
广告条模式,CPC单价动态计费,所以具体单价未知了,收入还行。百度审核周期很长,而且审核很严格的,经常因各种问题二通不过审核。 地址:http://munion.baidu.com/
5. 哇棒(个人感觉:扣量很严重,广告很少,收入奇低)
我只用过这5个广告平台,其他的广告平台不好评论,不过上面4个都是网评最高的,所以我才选用了。
下面分享一下最近一个月,我的软件在万普的收入数据:
高手进阶:
引用知乎上的 “唐泽宇” 和 “周昌” 两位开发者的话:
1. android是基于linux,所以要熟悉linux系统,特别是嵌入式linux系统。
2. android平台的程序都是通过Java语言开发的,所以要熟悉java语言。
3. android系统级的程序或者底层调用NDK开发,需要用到C/C++。
4. 大多数android应用都是客户端应用,所以对UI的设计及界面开发也要有足够的了解。
5. 高手有很多种,比如做ROM、开发系统应用、一般的WEB手机端应用、Android游戏。。。
Android开发上有三个层次技术:
1. 第一个层次和传统的嵌入式Linux最接近,主要涉及的是CPU、GPU以及外设的驱动以及使能方面。多需要熟悉Linux内核,Android框架定义中驱动的接口规范等等,这部分开源社区的力量最大。这个层次技术主要需求方是是各种CPU和Android设备解决方案供应商。
2. 第二个层次主要是涉及Android框架中间件部分,如多媒体/3D框架,Java虚拟机等等,这部分Google控制的是最严格的,因为他要控制 Android各种feature以及捆绑自己的移动互联网应用,必须规范中间件。这部分所涉及的软件技术也最多,从各种C/C++库,Java虚拟机性 能,用户体验抽象到数据库设计等等很大的内涵。开发的一般也是选择一个方向发力。另外深度定制Android ROM重点也是这个层次。
3. 第三个层次就是App开发层次,这个层次主要就是利用Android SDK开发了。很多C/C++出身的觉得是用Java开发,其实Java就是啥都是指针的C++,外带try/catch以及垃圾收集,上手其实是很快的。Android程序最重要一点是理解生命周期概念,将一个Activity和Linux进程关系搞清楚,啥时候这个进程启动,啥时候睡眠,啥时候退出,后台的事件循环如何运行的,最后时刻要提醒自己虚拟机在运行,垃圾收集在运行。Google Code上有还多参考代码,在看中学,体会很快的。
另外,本人采用了一种特别的模式来进行Android程序开发:Java只负责界面,用NDK来做各种复杂的业务和数据处理,Java与NDK之间设计好API以及事件传递方式(Android SDK 中Localsocket就可以很好用做事件发送)。这种方式适合C/C++背景的开发人员上手Android,Java无需达到熟练即可。
我本人也正在朝这个方向发展,希望有朝一日我也能被称上高手。