阅读App的源码,通常都是从AndroidManifest.xml开始,OSC也不例外,咱们也从这个xml文件开始,具体的内容以下: java
<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主要用来作 数据共享、数据传递、数据缓存等做用。 android
主要还有以下的几个类: web
AppConfig:该类为一个配置类,主要是用来保存用户的信息,用户的设置信息(Properties) 缓存
AppException:捕获异常和提示错误信息 app
AppManager:管理Activity和程序的退出(Stack) ide
AppStart:主界面 布局
主界面首先是显示一个图片,而后经过渐变的效果,跳转到Main Activity,代码片断以下: ui
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页面的布局,实现。 this
待续........ spa