eoe的Android客户端源码是开源的,可以借此了解一个完整的项目如何实现。
项目地址:https://github.com/eoecn/android-app
感谢项目的贡献者。
项目中有很多可供学习的地方:
项目组织和分层
各种UI控件
网络、sqlite
使用第三方开源控件和工具
等等……
首先,用git工具(TortoiseGit是不错的GUI选择)clone一份代码,具体请google,不建议直接下载代码压缩包,因为那样不够高大上。
通过README.MD文件可以了解项目的概貌。
了解一个Android项目,首先应该看看AndoridMaindest.xml。
AndroidManifest.xml注册的启动Activity是"cn.eoe.app.ui.SplashActivity",然后进入到主界面,对应的Activity是“cn.eoe.app.ui.MainActivity”,
所以从闪屏开始学习吧。
public class SplashActivity extends BaseActivity {
private Handler mHandler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
View view = View.inflate(this, R.layout.start_activity, null);
setContentView(view);
//读入动画配置文件
Animation animation = AnimationUtils.loadAnimation(this, R.anim.alpha);
//开始运行动画
view.startAnimation(animation);
animation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
//动画结束的回调
@Override
public void onAnimationEnd(Animation arg0) {
//使用Handler在500毫秒后执行goHome()方法
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
goHome();
}
}, 500);
}
});
UmengUpdateAgent.setUpdateOnlyWifi(false);
UmengUpdateAgent.update(this);
}
protected void onResume() {
super.onResume();
}
private void goHome() {
//BaseActivity中封装的方法
//启动MainActivity
openActivity(MainActivity.class);
//finish自己
defaultFinish();
}
}