阅读App的源码,一般都是从AndroidManifest.xml开始,OSC也不例外,我们也从这个xml文件开始,具体的内容如下:
<application android:name=".AppContext" android:icon="@drawable/icon" android:label="@string/app_name" >
<activity android:name=".AppStart" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ui.About" android:theme="@style/Theme.ZoomLight" android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation" android:launchMode="singleTask"/>
......
<activity android:name="com.tencent.weibo.webview.OAuthV1AuthorizeWebView" android:label="@string/app_name"/>
<activity android:name="net.oschina.app.common.QQWeiboHelper2"/> <receiver android:name=".ui.BroadCast"> <intent-filter>
<action android:name="net.oschina.app.action.APPWIDGET_UPDATE" />
</intent-filter>
</receiver>
</application>
<!--权限配置-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
OSC自定义了一个Application,名字是AppContext,主Activity是AppStart,这个Application主要用来做 数据共享、数据传递、数据缓存等作用。
主要还有如下的几个类:
AppConfig:该类为一个配置类,主要是用来保存用户的信息,用户的设置信息(Properties)
AppException:捕获异常和提示错误信息
AppManager:管理Activity和程序的退出(Stack)
AppStart:主界面
主界面首先是显示一个图片,然后通过渐变的效果,跳转到Main Activity,代码片段如下:
AlphaAnimation aa = new AlphaAnimation(0.3f,1.0f);
aa.setDuration(2000);
view.startAnimation(aa);
aa.setAnimationListener(new AnimationListener(){
@Override
public void onAnimationEnd(Animation arg0) {
redirectTo();
}
.......
});
private void redirectTo(){
Intent intent = new Intent(this, Main.class);
startActivity(intent);
finish();
}
Main Activity页面就是主要的信息页面,下面一节主要介绍Main页面的布局,实现。
待续........