This action will force synchronization from 开源中国/android-app, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
注:本文假设你已经有Android开发环境
启动Eclipse,点击菜单并导入Android客户端项目,请确保你当前的Android SDK是最新版。
如果编译出错,请修改项目根目录下的 project.properties 文件。
推荐使用Android 4.0 以上版本的SDK,请使用JDK1.6编译:
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
2、libs目录
libs目录用于存放项目引用到的jar包文件。
下面是libs目录里的jar包文件:
libs
└ commons-httpclient-3.1.jar
3、res目录
res目录用于存放项目的图片、布局、样式等资源文件。
下面是res目录的子目录:
res
├ anim
├ color
├ drawable
├ drawable-hdpi
├ drawable-ldpi
├ drawable-mdpi
├ layout
├ menu
├ raw
├ values
└ xml
4、AndroidManifest.xml
AndroidManifest.xml用于设置应用程序的版本、主题、用户权限及注册Activity等。
AndroidManifest.xml注册的启动界面为"AppStart",具体文件为net.oschina.app\AppStart.java文件。启动显示欢迎界面之后,通过意图(Intent)跳转到首页(net.oschina.app.ui\Main.java)。
注:除启动界面之外,其他所有界面都放在src\net.oschina.app.ui包中。
以首页资讯列表显示访问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包。
Sign in for post a comment
Comment ( 0 )