2014年2月8日星期六

Android 浏览器的研究(四)--- Apk的启动和主页的加载过程

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
Android 浏览器的研究(四)--- Apk的启动和主页的加载过程  阅读原文»

用户名:孙洪波 文章数:10 评论数:0
访问量:428:136:118:1 注册日期:2012-02-07

Android 浏览器的研究(四)--- Apk的启动和主页的加载过程

当我们在Launcher中点击浏览器的图标时,浏览器的窗口会打开并显示主页(HomePage)。这里我们对这一场景进行分析,研究浏览器如何启动,取得缺省主页并将它布局和显示的。

根据前边对WebView 类的学习,大概可以预期我们在主ActivityonCreate方法里从设置里面取得缺省主页的配置,创建一个WebView类,并使用setContentView将它添加到主窗口中。下面我们从浏览器的代码看看它是如何实现的。

首先,研究AndroidManifest文件,从<application>标签的内容看到该Apk实现了自己的Applicaton Browser:

<application android:name="Browser"
android:label="@string/application_name"
android:icon="@mipmap/ic_launcher_browser"
android:backupAgent=".BrowserBackupAgent"
android:hardwareAccelerated="true"
android:taskAffinity="android.task.browser" >
另外,该Apk的主Activity为BrowserActivity:
<activity android:name="BrowserActivity"
android:label="@string/application_name"
android:launchMode="singleTask"
android:alwaysRetainTaskState="true"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
android:theme="@style/BrowserTheme"
android:windowSoftInputMode="adjustResize" >

。。。

<!-- We are also the main entry point of the browser. -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.APP_BROWSER" />
</intent-filter>

Apk的启动,首先是ApplicationBrowser类的onCreate方法,主要工作:

// create CookieSyncManager with current Context

CookieSyncManager.createInstance(this);

BrowserSettings.initialize(getApplicationContext());

Preloader.initialize(getApplicationContext());

这里涉及到三个工作:Cookie同步管理,浏览器设置和预加载。

然后是ActivityonCreate方法,与我们的研究相关的代码:

public void onCreate(Bundle icicle) {
if (LOGV_ENABLED) {
Log.v(LOGTAG, this + " onStart, has state: "
+ (icicle == null ? "false" : "true"));
super.onCreate(icicle);
mController = createController();
Intent intent = (icicle == null) ? getIntent() : null;
mController.start(intent);
createController方法:
private Controller createController() {
Controller controller = new Controller(this);
rsync的配置使用  阅读原文»

用户名:zuoyuezong 文章数:11 评论数:8
访问量:642:262:168:2 注册日期:2013-01-17

rsync的配置使用

Rsync 默认端口873

Wirer:zuoyuezong@gmail.com

描述:rsync服务是基于C/S模式的 作用:简单的说就是同步文件用的

环境: 两台linux服务器 192.168.152.153(hostnameamoeba) 作为服务器 ;

192.168.152.150作为客户端(hostname localhost)

目的:同步my.cnf配置文件到192.168.152.150服务器

操作步骤:

阅读更多内容

没有评论:

发表评论

可以直接安装yum -y install rsync
[root@amoeba ~]# wget http://rsync.samba.org/ftp/rsync/src/rsync-3.1.0.tar.gz
[root@amoeba ~]# tar -xf rsync-3.1.0.tar.gz
[root@amoeba ~]# cd rsync-3.1.0
[root@amoeba rsync-3.1.0]# ./configure
[root@amoeba rsync-3.1.0]# make && make install
[root@amoeba rsync-3.1.0]# vim /etc/rsyncd.conf
pid file=/var/run/rsyncd.pid
log file=/var/log/rsyncd.log
lock file = /var/run/rsyncd.lock
max connections = 100 #最大允许连接数量
transfer logging = ture
log format = %h %o %f %l %b
slp refresh = 300
path = /etc/zzy
auth user = www #连接的用户
secrets file = /etc/rsyncd.secrets #密码文件
hosts allow =192.168.152.0/24 #允许的网段或者IP
hosts deny = 0.0.0.0/32
[root@amoeba rsync-3.1.0]# vim /etc/rsyncd.secrets
[root@amoeba zzy]# chmod 600 /etc/rsyncd.secrets 一定要是600权限负责后面会出错
[root@amoeba rsync-3.1.0]# scp /etc/rsyncd.secrets 192.168.152.150:/etc (将密码文件传给150)
[root@amoeba rsync-3.1.0]# /usr/bin/rsync --daemon --config=/etc/rsyncd.conf (启动rsync)
[root@amoeba rsync-3.1.0]# netstat -ntlp |grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 10525/rsync
tcp 0 0 :::873 :::* LISTEN 10525/rsync (可以看出rsync已经启动)
[root@amoeba rsync-3.1.0]# telnet 192.168.152.153 873
Trying 192.168.152.153...
Connected to 192.168.152.153.
Escape character is '^]'.
3.客户端可以开始 同步文件了
[root@localhost zzy]# /usr/bin/rsync -vrtpogL --delete --progress --password-file=/etc/rsyncd.secrets www@192.168.152.153::a /var/zyz
153上同步文件到本地的/var/zyz目录 注意--delete 有了这个参数代表完全同步 就是说如果你/var/zyz下的所有文件都和 /etc/zzy(上面服务端定义的)一致。不一致的会删除
[root@localhost zzy]# /usr/bin/rsync -vrtpogL --progress --password-file=/etc/rsyncd.secrets www@192.168.152.153::a /var/zyz
如果没有加--delete这个参数则代表只下载153那边的/etc/zzy目录下的所有文件
以上的是做的向服务端取文件方式的 还可以推送文件这个需要双端都配置成服务器配置步骤跳过
/usr/bin/rsync -vrtpogL --progress --password-file=/etc/rsyncd.secrets /usr/local/src www@192.168.152.150::a
将/usr/local/src下的文件推送到 150的配置文件里面定义的位置

声明

转载有价值的IT博客,版权属原作者所有

标签

博客归档