2011年11月份我开始学习android软件开发(本人有良好的java基础、web开发基础、c++基础),2011年12月份开始开发第一款手机软件(软件名字就不透露了),2012年1月份第一款android应用在优亿、机锋、木蚂蚁正式上线。 2012年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广告平台介绍:
广告模式: 2.多盟 3.腾讯广告 4.百度联盟 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开发上有三个层次技术: 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无需达到熟练即可。 我本人也正在朝这个方向发展,希望有朝一日我也能被称上高手。 |