个人开发者做一款Android App需要知道的事情

在大学时, 自己是学计算机专业的,而且还和老师一起做过一年半的项目。 有时候是不是有这样的想法,做一个自己的网站、但一直未付诸行动。
2012年时, 终于付诸行动了,花了三个月,现学现卖, 熬夜通宵用PHP做了一个小网站,但后续就再没有坚持下去。
直到从电信行业转行互联网行业后,做一款属于自己的应用的的想法越来越迫切,于是今年开始便投入到Android App开发的阵营中来。
今年断断续续做了4款Android App应用, 一款公司应用,三款自有应用。从前期的学习, 到后续的实践,很多东西需要自己去摸索.

目前,应用资讯类型App功能核心都包括内容列表展示、内容详情展示、个人中心、 评论分享、搜索四大功能。

下面就我以我开发的一款编程学习的App[编程在线]为例, UI + Andorid客户端 + 服务器 + 内容 + 上线 都是我一个人在做, 最终做出这样一款App来花费了大量的时间和经历。先简单介绍一下[编程在线]App

编程在线介绍:

编程在线是一款包括编程语言、移动开发、WEB开发、RSS订阅功能的综合性编程学习客户端。界面简洁、操作简单。文章内容包括java、NET、
C/C++、PHP、Android开发、Windows开发、iPhone开发、JavaScript开发、AngularJS、Node.js、
JQuery等精彩技术文章。

编程在线功能:

1、提供编程语言、移动开发、WEB开发相关技术文章。
2、提供专题文章,支持文章分类阅读。
3、支持按编辑推荐、最新文章、最热文章阅读文章。
4、支持页面下拉刷新页面内容。
5、支持离线阅读, 已阅读的文章会在本地缓存。
6、支持博客园和CSDN RSS订阅功能。
7、支持最新文章消息推送功能。
8、支持文章分享、收藏、笔记、评论功能。
9、支持收藏、笔记数据同步到服务器。

总计设计:

1、Android客户端采用 Tab + 侧边栏的整体布局

2、服务器采用新浪SAE部署, 采用PHP + MySQL 开发 ,数据交互采用 java通过http调用php restful接口

一款android App需要考虑的问题:

1、UI设计: UI是大众的弱点,如果想开发一款不错的应用,简单的ps要会
2、有无网络数据处是读缓存、还是从网络读取
3、数据缓存:服务器缓存和本地数据缓存
4、数据同步: 服务器和本地数据同步、UI界面数据同步
5、加载loading、加载失败、失败重试
6、消息通知: 客户端主动拉取或者实现服务器推送
7、登陆与分享:自由账号与第三方账号打通、分享定制
8、首次加载速度: 发布app前,把一部分数据打包在app中
9、统计数据:用于统计用户习惯、后续功能完善和数据调整的依据
10、集成第三方登陆:QQ登陆和新浪微博登陆标配
11、安全性:获取请求的安全性、用户输入安全性、评论防刷问题等
12、兼容性问题
13、架构的可用性,便于后续项目开发

常用系统组件和开源组件:

1、Fragment
需要解决Fragment隐藏与显示重叠问题
需要解决由后台切回前台Fragment被销毁,导致显示非常慢

2、侧边栏
slidingmenu 或者 NavigationDraw

3、图片加载: imageLoader
兼容性问题,部分远程图片无法加载显示

4、HTTP异步加载android-async-http

5、上拉下拉刷新: pullrefresh
1、需要解决兼容性问题,mx3滚动有问题,会自动拉出很大一块空白
2、上拉和下拉文案共用,需要解决上拉和下拉文案的不同

6、tab控件 PagerSlidingTabStrip
1、需要Tab解决样式定制问题
2、需要解决tab缓存和惰性加载

7、SAXParser 解析 rss
1、遇到引入第三方解析jar包时, 运行时找不类, 但类其实是有的
2、遇到了解析CSDN博客文章时无法解析标题到标题的bug

8、集成QQ登陆和腾讯微博登陆
1、 登陆无法拿到QQ和账号,需要自己解决第三方账号与自由账号打通问题
2、 QQ 图像无法用imageLoader加载

9、分享组件可以调用系统的,也可以使用第三方组件ShareSDK

10、消息推送
1、自己实现推送:主动拉取 或者 socket通信
2、可以集成第三方消息推送、比如百度云推送、云之讯等

11、UI设计

1、iconpng.com iconfinder.com easyicon.com
2、使用photoshop ps自己需要的图片
3、付费让UI设计人员帮你设计

广告平台:

豌豆荚、广点通、 有米广告、 点乐积分墙、 多盟广告等等

应用市场:

应用宝、豌豆荚、百度、91、安智、安卓、360、华为(暂不允许个人提交的应用)、小米、魅族等

应用审核:
审核都要3--10天左右,需要提供身份证明或者签订协议,部分市场某些应用不允许上架。特别广告和积分墙的应用。

编程在线下载:

编程在线网站:http://codestudy.sinaapp.com (最新版2.1)

编程在线移动版:http://codestudy.sinaapp.com/mobile/

编程在线Android客户端, 已上架到豌豆荚、应用宝、91、安卓、机锋应用市场, 欢迎大家下载,  共同学习, 2.0 版本。

应用宝:http://sj.qq.com/myapp/detail.htm?apkName=com.blue.sky.code.study

豌豆荚:http://www.wandoujia.com/apps/com.blue.sky.code.study

91:http://apk.91.com/Soft/Android/com.blue.sky.code.study-2-2.0.html

机锋:http://apk.gfan.com/Product/App974063.html

我的其他软件:http://appshow.sinaapp.com/

个人开发者做一款Android App需要知道的事情的更多相关文章

  1. [转]设计一款Android App总结

    开发工具的选择 开发工具我将选用Android Studio,它是Google官方指定的Android开发工具,目前是1.2.2稳定版,1.3的预览版也已经发布了.Android Studio的优点就 ...

  2. 【Android开发】如何设计开发一款Android App

    本文从开发工具选择,UI界面.图片模块.网络模块.数据库产品选择.性能.安全性等几个方面讲述了如果开发一个Android应用.现在整理出来分享给广大的Android程序员. 开发工具的选择 开发工具我 ...

  3. 假设让我又一次设计一款Android App

    转载请注明出处: 本文来自aspook的博客:http://blog.csdn.net/ahence/article/details/47154419 开发工具的选择 开发工具我将选用Android  ...

  4. 转:从零开始开发一款Android App (from 简书)

    转: http://www.jianshu.com/p/a58d15ef5c8b

  5. 如何做一款自己的Android App

    转自:http://www.cnblogs.com/hubcarl/p/4030884.html 正在做App,后续补充: 概述:以我开发的一款编程学习的App[编程在线]为例讲讲如何做一款自己的An ...

  6. fir.im Weekly - 如果让你重新做一款APP

    设想下:如果让你重新做一款 APP ,你会用到哪些开发.设计等资源和工具? 本期的 Weekly 为大家分享了最近不错的 APP 开发资源,大部分是关于 iOS 开发. Android 开发.UI设计 ...

  7. html+css+js+Hbuilder开发一款安卓APP,根本不用学Android开发!

    我们知道,要做一款安卓APP,咱们得先学安卓开发语言,例如java,前端后端.那么没有这些开发语言基础,咱们怎么做呢?其实现在有比较好的开发方案就是做webAPP,咱们可以用web前端知识构建安卓客户 ...

  8. [转]Android App整体架构设计的思考

    1. 架构设计的目的 对程序进行架构设计的原因,归根到底是为了提高生产力.通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合.这样做的好处是使得程序在开发的过程中,开发人员只需要专注于一点, ...

  9. 【Android】做一款类似我要当学霸里的学习监督的APP

    我要当学霸这款App有个学习监督的功能,当你启动它的时候,你将无法使用其他App,以此达到帮助人提高自觉性,起到监督学习的效果.最近和同学做了个小App,正好有这个功能,所以就来说说它是怎么实现的. ...

随机推荐

  1. TextBox

    一.聚焦: private void FrmOnlineChargeMoney_Paint(object sender, PaintEventArgs e) { edtAuthCode.SelectA ...

  2. 谈谈JDK线程的伪唤醒

    在JDK的官方的wait()方法的注释中明确表示线程可能被"虚假唤醒",JDK也明确推荐使用while来判断状态信息.那么这种情况的发生的可能性有多大呢? 使用生产者消费者模型来说 ...

  3. jQuery validation学习(2)验证身份证

    验证邮编 jQuery.validator.addMethod("isZipCode", function(value, element) { -]{}$/; return thi ...

  4. <转>linux crontab 定时任务

    基本格式 : * * * * * command 分 时  日  月  周    命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 ...

  5. js的一些复习

    JavaScript Js是一种直译式的脚本语言,是一种弱类型,基于对象的语言.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言 ...

  6. 编写一个JSP程序实现用户登录

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  7. 一个通用的DataGridView导出Excel扩展方法(支持列数据格式化)

    假如数据库表中某个字段存放的值“1”和“0”分别代表“是”和“否”,要在DataGridView中显示“是”和“否”,一般用两种方法,一种是在sql中直接判断获取,另一种是在DataGridView的 ...

  8. JMeter进行简单的数据库(mysql)压力测试

    1.点击测试计划,再点击“浏览”,把JDBC驱动添加进来: 注:JDBC驱动一般的位置在java的安装地址下,路径类似于:    \java\jre\lib\ext 文件为:mysql-connect ...

  9. 《BI那点儿事》数据流转换——字词查找转换

    字词查找转换将从转换输入列的文本中提取的字词与引用表中的字词进行匹配,然后计算出查找表中的字词在输入数据集中出现的次数,并将计数与引用表中的此字词一并写入转换输出的列中.此转换对于创建基于输入文本并带 ...

  10. 封装对MongoDB数据库的增删改查访问方法(基于MongoDB官方发布的C#驱动)

    本文利用MongoDB官方发布的C#驱动,封装了对MongoDB数据库的增删改查访问方法.先用官方提供的mongo-csharp-driver ,当前版本为1.7.0.4714 编写数据库访问帮助类 ...