android-app

开源中国社区 Android 客户端项目简析

注:本文假设你已经有Android开发环境

启动Eclipse,点击菜单并导入Android客户端项目,请确保你当前的Android SDK是最新版。

如果编译出错,请修改项目根目录下的 project.properties 文件。

推荐使用Android 4.0 以上版本的SDK:

target=android-15

本项目采用 GPL 授权协议,欢迎大家在这个基础上进行改进,并与大家分享。

下面将简单的解析下项目:

一、项目的目录结构

根目录

├ src

├ libs

├ res

├ AndroidManifest.xml

├ LICENSE.txt

├ proguard.cfg

└ project.properties

1、src目录

src目录用于存放项目的包及java源码文件。

下面是src目录的子目录:

src

├ com.weibo.net

├ greendroid.widget

├ net.oschina.app

├ net.oschina.app.adapter

├ net.oschina.app.api

├ net.oschina.app.bean

├ net.oschina.app.common

├ net.oschina.app.ui

└ net.oschina.app.widget

com.weibo.net — 新浪微博SDK源码包

greendroid.widget — 快捷菜单栏组件(国外UI库GreenDroid)

net.oschina.app — APP启动及管理包

net.oschina.app.adapter — APP列表适配器包

net.oschina.app.api — API访问包

net.oschina.app.bean — APP实体包

net.oschina.app.common — APP工具包

net.oschina.app.ui — APP界面包

net.oschina.app.widget — APP控件包

2、libs目录

libs目录用于存放项目引用到的jar包文件。

下面是libs目录里的jar包文件:

libs

└ commons-httpclient-3.1.jar

commons-httpclient-3.1.jar — Apache的HttpClient包

3、res目录

res目录用于存放项目的图片、布局、样式等资源文件。

下面是res目录的子目录:

res

├ anim

├ color

├ drawable

├ drawable-hdpi

├ drawable-ldpi

├ drawable-mdpi

├ layout

├ menu

├ raw

├ values

└ xml

anim — 动画效果

color — 颜色

drawable/drawable-hdpi/drawable-ldpi/drawable-mdpi — 图标、图片

layout — 界面布局

menu — 菜单

raw — 通知音

values — 语言包和样式

xml — 系统设置

4、AndroidManifest.xml

AndroidManifest.xml用于设置应用程序的版本、主题、用户权限及注册Activity等。

二、项目的功能流程

1、APP启动流程

AndroidManifest.xml注册的启动界面为"AppStart",具体文件为net.oschina.app\AppStart.java文件。启动显示欢迎界面之后,通过意图(Intent)跳转到首页(net.oschina.app.ui\Main.java)。

注:除启动界面之外,其他所有界面都放在src\net.oschina.app.ui包中。

2、APP访问API流程

以首页资讯列表显示访问API数据为例:

1) 初始化控件

首页Activity(Main.java)在onCreate()方法里面加载布局文件(Main.xml),对下拉刷新列表控件(PullToRefreshListView)进行了初始化,并设置了数据适配器(ListViewNewsAdapter)。

注:Main.xml布局文件在res\layout目录下;PullToRefreshListView控件在net.oschina.app.widget包;ListViewNewsAdapter适配器在net.oschina.app.adapter包。

2) 异步线程访问

列表控件初始化后,开启一个线程方法(loadLvNewsData()),该方法中调用全局应用程序类(AppContext)来访问API客户端类(ApiClient)。通过ApiClient以http方式请求服务器的API。返回响应的XML数据,再通过实体Bean(NewsList)解析XML,返回实体(NewsList)给UI控件(PullToRefreshListView)展示。

注:AppContext全局应用程序类在net.oschina.app包;ApiClient API客户端类在net.oschina.app.api包。

3) 解析数据显示

服务得到请求,将返回对应的资讯XML数据,再通过资讯实体类(NewsList)解析XML,返回实体(NewsList)给UI控件(PullToRefreshListView)展示。

注:NewsList实体类在net.oschina.app.bean包。

brook android 客户端,GitHub - reaverbrook/android-app: 本项目已经迁移到 git.oschina.net ,此处不再更新!...相关推荐

  1. android客户端中间人攻击,Android 中间人攻击

    0x00 Android中间人攻击的思路就是劫持局域网中被攻击机器和服务器间的对话.被攻击机器和服务器表面上工作正常,实际上已经被中间人劫持.可以从一张图来明白这个过程. 受攻击主机发送的数据,首先经 ...

  2. interlib android客户端开发,基于Android的移动图书馆设计与开发

    [摘 要]随着移动 技术的发展,图书馆数字化的资源已不局限于在电脑上进行展示,手机已成为用户浏览图书 馆数字化资源的重要工具?本文根据笔者所在图书馆的服务需求进行分析,在图书馆Aleph5 00 20 ...

  3. android客户端功能,搜狐微博Android客户端最新版 功能丰富 界面友好

    搜狐上线微博客户端Android 2.0.0 Beta版,此版本在诸多功能方面做了改进,功能更加丰富,操作更加高效,界面更加友好,更加方便用户随时随地与朋友分享身边的精彩.官方下载地址:http:// ...

  4. interlib android客户端开发,基于Android移动图书馆设计与开发.doc

    基于Android移动图书馆设计与开发 基于Android移动图书馆设计与开发 [摘 要]随着移动 技术的发展,图书馆数字化的资源已不局限于在电脑上进行展示,手机已成为用户浏览图书 馆数字化资源的重要 ...

  5. Android在github上下载的开源项目出现这个问题

     PHP网络 Error:(2, 0) Plugin with id 'com.github.dcendents.android-maven' not found. 2015-04-27 17:02 ...

  6. android+饭否+开源,GitHub - mcxiaoke/fanfouapp-opensource: 饭否Android客户端开源项目

    饭否Android客户端开源版 最新说明: 这个项目早就没有更新了,界面也比较陈旧,无论是学习还是修改自用都不是很合适,建议使用蘑菇饭项目的源码,地址是: Introduction 饭否Android ...

  7. java并发小说爬虫,多站点搜索下载,并实现Android客户端开发

    小说爬虫真的很简单,但要能优雅地使用却很麻烦.下面让我来诉说一下这几天的肝路历程.整个流程很完整,但不会很深入,主要是讲思路,给想要写类似功能的同学踩点坑,有什么细节问题直接评论就好. 文章目录 明确 ...

  8. 开源中国 Android 客户端 v2.8.4 代码开源

    接着前天正式发布开源中国 Android 客户端 v2.8.4 之后,今天我们给大家带来该版本全部源码,敬请各位笑纳! 获取开源中国客户端 Android 版源码,请访问码云:http://git.o ...

  9. android将拦截短信通过邮箱发送,网易邮箱Android客户端推出 加速布局移动互联网...

    继网易邮箱5.0版本发布后,网易邮件事业部又迅速推出重要的移动互联网战略产品--网易邮箱Android客户端.此前,网易在移动端上已陆续推出适配iPhone/iPad/Android系统的网页版智能邮 ...

最新文章

  1. 字节、腾讯、阿里的开发为啥都在用Python?网友:又酸又香!
  2. Git基本命令 -- 别名 + 忽略 + 推送
  3. 菜鸟做HTML5小游戏 - 刮刮乐
  4. Python交互模式方向键出现乱码
  5. 漫步最优化三十五——共轭
  6. 【jvm】java jstat 命令
  7. unity3d多个版本共存
  8. Slowquery图形化显示MySQL慢日志工具
  9. CSDN新手机号绑定不成功,提示已存在账号,CSDN换绑手机号的相关问题
  10. 配置ACL隔离交换机的VLAN
  11. java excel 超链接_Java 添加超链接至Excel文档
  12. IDEA mybatisplus 代码生成器的配置
  13. HTML,CSS,font-family:中文字体的英文名称 (比如:宋体 微软雅黑)的列表
  14. 表空间的空间管理算法
  15. Arduino开发(二)_基于Arduino UNO开发板的RGB灯光控制方法
  16. CET-4 week 6th -- 后缀
  17. 无线发射芯片A7105在RF短距离通信的应用
  18. 基于梯度下降算法自建一种短期有效的自回归模型
  19. Win10电脑清除运行窗口的历史记录
  20. 自然语言生成技术现状调查:核心任务、应用和评估(3)

热门文章

  1. Cable test 线材综合性能测试
  2. 网络分流器|网络分流器|网络分流器分类
  3. 海康visionmaster-ModBus通信发送非整型数据的方法
  4. 第二讲:C#与halcon联合环境配置,halcon代码导出与软件界面搭建
  5. 留言赠书|4位GNN一线大佬联手编撰新书,还未出版就爆火!
  6. stage,task和job的区别与划分方式
  7. 第七章:小朱笔记hadoop之源码分析-hdfs分析 第五节:Datanode 分析
  8. IIC通信——PCF8591的D/A转换
  9. 中蜂几月份自然分蜂_蜜蜂自然分蜂一年几次分别是几月和几月
  10. 喂养一个多月大的小狗需要知道的知识