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文档,多写学习总结、项目总结,多去官方网站http://www.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. 酷果平台
我个人觉得最给力的广告平台,2012年获得了最佳广告平台奖,广告单价最高,酷果广告平台采取隔天结算的方式。开发者可在当天0点之后,准时登陆后台,查看酷果账户的余额,以及核对当天各个APP应用带来盈利明细。开发者注册地址:http://www.kuguopush.com/,这是我的推荐地址。开发者结算:主要为CPM结算方式,即按手机用户看到广告次数进行结算。酷果广告平台CPM,千次展示为15元。结算公式:广告收益 = 有效用户量(人)/ 1000次 * 2(次/人)* 15元,对单账户月收入超过一万元(包含一万元)人民币的开发者,给予 2000 元人民币的奖励。
2. 万普平台
其主要广告为广告条、积分墙、推送3种模式,主要以CPA广告为主。开发者注册地址:http://www.waps.cn/?f=zhaostudy3。数据每1个小时更新一次左右,收入周结算,可以添加多个成员,人均收入低于800每月的,不收任何税费。超过的提现税率为6%。万普的收入明显比其他广告平台高很多、很多...。但是像应用汇、安智市场、安卓市场等大市场都拒绝带万普广告的应用。
3.多盟
广告条模式,CPC单价0.21元左右,广告填充率很高很高。还算比较靠谱,实时数据、数据每2个小时更新一次左右,收入周结算,可以添加多个成员,人均收入低于800每月的,不收任何税费。超过的部分提现税率为20%。最近多盟系统升级,每次升级后,我的软件广告点击率都大幅下降,2月份点击率为1%,3月份降到了0.5%一下,太黑了,只有我自己统计的40%左右。不过其他广告平台都一样扣量。 注册地址:http://www.domob.cn/
4.腾讯广告
广告条模式,CPC单价0.1.3元左右,展示和扣量方面都也还可以,每天能查询昨天的数据每月16-20号结算收入,腾讯要收走30%的分成。虽然单价低,但是腾讯的广告都是热门的腾讯软件,点击率很好,我的软件的腾讯广告点击率大概为1.3%。是多盟的2.5倍-3倍的点击率。 注册地址:http://dev.app.qq.com/loginInit.action
5.百度联盟
广告条模式,CPC单价动态计费,所以具体单价未知了,收入还行。百度审核周期很长,而且审核很严格的,经常因各种问题二通不过审核。 地址:http://munion.baidu.com/
6. 哇棒(个人感觉:扣量很严重,广告很少,收入奇低)
我只用过这6个广告平台,其他的广告平台不好评论,不过上面4个都是网评最高的,所以我才选用了。
下面分享一下最近一个月,我的软件在万普的收入数据:
累计用户 | 新增用户 | 启动次数 | 推荐列表 | 推送广告 | 互动广告 | 自定义广告 | 总收入 | ||
总计 | 148747 | 93784 | 254465 | ¥2194.90 | ¥1150.45 | ¥54.70 | ¥0.00 | ¥3400.05 |
高手进阶:
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无需达到熟练即可。