Skip to content

Commit 04138c2

Browse files
committed
2012-8-24 android app 项目简介
1 parent ee71548 commit 04138c2

File tree

2 files changed

+121
-6
lines changed

2 files changed

+121
-6
lines changed

.gitignore

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1+
# built application files
2+
*.apk
3+
*.ap_
4+
5+
# files for the dex VM
6+
*.dex
7+
8+
# Java class files
19
*.class
210

3-
# Package Files #
4-
*.jar
5-
*.war
6-
*.ear
11+
# generated files
12+
bin/
13+
gen/

README.md

Lines changed: 110 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,112 @@
11
android-app
2-
===========
2+
===========
33

4-
OSCHINA 的 Android 客户端源码
4+
# **开源中国社区 Android 客户端项目简析** #
5+
6+
*注:本文假设你已经有Android开发环境*
7+
8+
启动Eclipse,点击菜单并导入Android客户端项目,请确保你当前的Android SDK是最新版。<br>
9+
如果编译出错,请修改项目根目录下的 project.properties 文件。<br>
10+
推荐使用Android 4.0 以上版本的SDK:
11+
12+
> target=android-15
13+
14+
**本项目采用 GPL 授权协议,欢迎大家在这个基础上进行改进,并与大家分享。**
15+
16+
下面将简单的解析下项目:
17+
18+
## **一、项目的目录结构** ##
19+
> 根目录<br>
20+
> ├ src<br>
21+
> ├ libs<br>
22+
> ├ res<br>
23+
> ├ AndroidManifest.xml<br>
24+
> ├ LICENSE.txt<br>
25+
> ├ proguard.cfg<br>
26+
> └ project.properties<br>
27+
28+
**1、src目录**<br>
29+
src目录用于存放项目的包及java源码文件。
30+
31+
下面是src目录的子目录:
32+
> src<br>
33+
> ├ com.weibo.net<br>
34+
> ├ greendroid.widget<br>
35+
> ├ net.oschina.app<br>
36+
> ├ net.oschina.app.adapter<br>
37+
> ├ net.oschina.app.api<br>
38+
> ├ net.oschina.app.bean<br>
39+
> ├ net.oschina.app.common<br>
40+
> ├ net.oschina.app.ui<br>
41+
> └ net.oschina.app.widget<br>
42+
43+
- com.weibo.net — 新浪微博SDK源码包
44+
- greendroid.widget — 快捷菜单栏组件(国外UI库[GreenDroid](http://www.oschina.net/p/greendroid))
45+
- net.oschina.app — APP启动及管理包
46+
- net.oschina.app.adapter — APP列表适配器包
47+
- net.oschina.app.api — API访问包
48+
- net.oschina.app.bean — APP实体包
49+
- net.oschina.app.common — APP工具包
50+
- net.oschina.app.ui — APP界面包
51+
- net.oschina.app.widget — APP控件包
52+
53+
54+
**2、libs目录**<br>
55+
libs目录用于存放项目引用到的jar包文件。
56+
57+
下面是libs目录里的jar包文件:
58+
> libs<br>
59+
> └ commons-httpclient-3.1.jar<br>
60+
61+
- commons-httpclient-3.1.jar — Apache的HttpClient包
62+
63+
**3、res目录**<br>
64+
res目录用于存放项目的图片、布局、样式等资源文件。
65+
66+
下面是res目录的子目录:
67+
> res<br>
68+
> ├ anim<br>
69+
> ├ color<br>
70+
> ├ drawable<br>
71+
> ├ drawable-hdpi<br>
72+
> ├ drawable-ldpi<br>
73+
> ├ drawable-mdpi<br>
74+
> ├ layout<br>
75+
> ├ menu<br>
76+
> ├ raw<br>
77+
> ├ values<br>
78+
> └ xml<br>
79+
80+
- anim — 动画效果
81+
- color — 颜色
82+
- drawable/drawable-hdpi/drawable-ldpi/drawable-mdpi — 图标、图片
83+
- layout — 界面布局
84+
- menu — 菜单
85+
- raw — 通知音
86+
- values — 语言包和样式
87+
- xml — 系统设置
88+
89+
**4、AndroidManifest.xml**<br>
90+
AndroidManifest.xml用于设置应用程序的版本、主题、用户权限及注册Activity等。
91+
92+
## **二、项目的功能流程** ##
93+
94+
#### 1、APP启动流程 ####
95+
AndroidManifest.xml注册的启动界面为"AppStart",具体文件为net.oschina.app\AppStart.java文件。启动显示欢迎界面之后,通过意图(Intent)跳转到首页(net.oschina.app.ui\Main.java)。<br>
96+
*注:除启动界面之外,其他所有界面都放在src\net.oschina.app.ui包中。*
97+
98+
#### 2、APP访问API流程 ####
99+
100+
以首页资讯列表显示访问API数据为例:
101+
102+
**1) 初始化控件**<br>
103+
首页Activity(Main.java)在onCreate()方法里面加载布局文件(Main.xml),对下拉刷新列表控件(PullToRefreshListView)进行了初始化,并设置了数据适配器(ListViewNewsAdapter)。<br>
104+
*注:Main.xml布局文件在res\layout目录下;PullToRefreshListView控件在net.oschina.app.widget包;ListViewNewsAdapter适配器在net.oschina.app.adapter包。*
105+
106+
**2) 异步线程访问**<br>
107+
列表控件初始化后,开启一个线程方法(loadLvNewsData()),该方法中调用全局应用程序类(AppContext)来访问API客户端类(ApiClient)。通过ApiClient以http方式请求服务器的API。返回响应的XML数据,再通过实体Bean(NewsList)解析XML,返回实体(NewsList)给UI控件(PullToRefreshListView)展示。<br>
108+
*注:AppContext全局应用程序类在net.oschina.app包;ApiClient API客户端类在net.oschina.app.api包。*
109+
110+
**3) 解析数据显示**<br>
111+
服务得到请求,将返回对应的资讯XML数据,再通过资讯实体类(NewsList)解析XML,返回实体(NewsList)给UI控件(PullToRefreshListView)展示。<br>
112+
*注:NewsList实体类在net.oschina.app.bean包。*

0 commit comments

Comments
 (0)