转自:http://www.cnblogs.com/hubcarl/p/4030884.html

正在做App,后续补充:

概述:以我开发的一款编程学习的App[编程在线]为例讲讲如何做一款自己的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

  • 需要解决兼容性问题,mx3滚动有问题,会自动拉出很大一块空白
  • 上拉和下拉文案共用,需要解决上拉和下拉文案的不同

6、tab控件 PagerSlidingTabStrip

  • 需要Tab解决样式定制问题
  • 需要解决tab缓存和惰性加载

7、SAXParser 解析 rss

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

8、集成QQ登陆和腾讯微博登陆

  • 登陆无法拿到QQ和账号,需要自己解决第三方账号与自由账号打通问题
  • QQ 图像无法用imageLoader加载

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

10、消息推送

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

11、UI设计

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

广告平台:

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

应用市场:

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

应用审核:

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

编程在线下载:

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

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

如何做一款自己的Android App的更多相关文章

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

    个人开发者做一款Android App需要知道的事情 在大学时, 自己是学计算机专业的,而且还和老师一起做过一年半的项目. 有时候是不是有这样的想法,做一个自己的网站.但一直未付诸行动.2012年时, ...

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

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

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

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

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

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

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

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

  6. fir.im Weekly - 如何进行 Android App 性能优化

    关于 Android App 的优化,@anly-jun 用 3 个月完成了这一系列文章,从 性能分析工具 到 ANR .Layout .消除卡顿 到 内存优化.内存分析工具大概十五六篇,并对此做一个 ...

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

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

  8. 2.[WP Developer体验Andriod开发]Andriod Studio结合Visual Studio Emulator for Android调试Android App

    0. 工欲善其事必先利其器 上一篇博客对比了一下Android和WinPhnoe的布局容器,后续篇章重点放在Android的开发上了. 说到开发就绕不开调试程序,调试Android App我们有2种选 ...

  9. 【Bugly安卓开发干货分享】Android APP 快速 Pad 化实现

    项目背景 采用最新版本手机 APP(之后称为 MyApp)代码,实现其 Pad 化,为平板和大屏手机用户提供更好的体验.为实现 MyApp 的 Pad 化工作,需要我们首先来了解一下 MyApp 项目 ...

随机推荐

  1. Ubuntu与ROS的Docker桌面系统与ROS在线练习课程(在线Linux虚拟机)

    ROS在线练习课程正在逐步完善中,目前以ROS官网中文资料制作,可参考: https://www.shiyanlou.com/courses/854  邀请码 U23ERF8H 安装Ubuntu+RO ...

  2. [置顶] 【机器学习PAI实践七】文本分析算法实现新闻自动分类

    一.背景 新闻分类是文本挖掘领域较为常见的场景.目前很多媒体或是内容生产商对于新闻这种文本的分类常常采用人肉打标的方式,消耗了大量的人力资源.本文尝试通过智能的文本挖掘算法对于新闻文本进行分类.无需任 ...

  3. BGP选路原则

    bgp选路原则 1 最高有weight优先,默认为0(思科特有,选大的) 2 本地优先级高的优先(只可以在IBGP邻居之间传递) 3 起源本路由器上的路由(network.aggregate-addr ...

  4. BZOJ3963: [WF2011]MachineWorks 【CDQ+斜率优化DP】*

    BZOJ3963: [WF2011]MachineWorks Description 你是任意性复杂机器公司(Arbitrarily Complex Machines, ACM)的经理,公司使用更加先 ...

  5. python(十三):网络编程之socket与socketserver

    socket是操作系统中I/O系统延伸部分,支持TCP和UDP等网络通信协议,它使计算机之间(或其本身)的进程通信称为可能.socket中的socket()函数.recv()函数和send()函数,相 ...

  6. Windows下Redis的使用

    Redis介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,和Memcached类似,它支持存储的value类型相对更多,包括st ...

  7. 隐藏控件HiddenField使用

    HiddenField控件顾名思义就是隐藏输入框的服务器控件,它能让你保存那些不需要显示在页面上的且对安全性要求不高的数据. 增加HiddenField,其实是为了让整个状态管理机制的应用程度更加全面 ...

  8. [UOJ310][UNR #2]黎明前的巧克力

    uoj description 给你\(n\)个数,求从中选出两个交集为空的非空集合异或和相等的方案数模\(998244353\). sol 其实也就是选出一个集合满足异或和为\(0\),然后把它分成 ...

  9. select rows by values in a column from Dataframe

    df.loc[df['column_name'] == some_value] details in: http://stackoverflow.com/questions/17071871/sele ...

  10. autoconf 简单demo试用

    1. 安装工具 yum install -y automake   2. 基本项目 a. 项目参考结构 ├── AUTHORS ├── COPYING ├── ChangeLog ├── Makefi ...