OSC APP 源码解析一

阅读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页面的布局,实现。

待续........

你可能感兴趣的:(OSC APP 源码解析一)