android源碼browser
⑴ 請教Android內置應用Browser編譯成APK的問題
在Eclipse創建一個Android工程,把android.webkit目錄下的java代碼拷貝過來;
將/home/roger/a41/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/webkit下面的EventLogTags.java也拷貝到自己的工程;
因為android.webkit下的類會使用SDK中非公開的API,我們需要解決編譯錯誤:
/home/roger/a41/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar
/home/roger/a41/out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes.jar
/home/roger/a41/out/target/common/obj/JAVA_LIBRARIES/bouncycastle_intermediates/classes.jar
創建一個User Library,並且勾選System Library的選項;
加入以下Jar包:
在Java Build Path/Order and Export把創建的庫放在最前面;
因為在我們應用中的android.webkit包跟SDK中的重名,所以我們需要更改包名,可以改成android.webkit2;
我們需要重新編譯libchromium_net.so和libwebcore.so,並且使用另外的名字,並且把其代碼中使用的android/webkit/ JNI路徑改成android/webkit2/保證JNI的正確性:
在/home/roger/a41/external/chromium下面,把所有源文件的android/webkit/路徑改成android/webkit2/;
打開/home/roger/a41/external/chromium/Android.mk,修改庫名為libchromium_net2,並且加多一行「LOCAL_MODULE_TAGS := optional「,具體內容見後;
重新編譯chromium_net,得到libchromium_net2.so;
在/home/roger/a41/external/webkit/Source/WebKit/android下面,把所有源文件的android/webkit/路徑改成android/webkit2/;
打開/home/roger/a41/external/webkit/Android.mk,將庫名改成libwebcore2.so,並且加多一行「LOCAL_MODULE_TAGS := optional「(需要修改兩個地方,靜態庫編譯和動態庫編譯),另外還需要把導入庫libchromium_net改成libchromium_net2,具體內容見後;
重新編譯webcore,得到libwebcore2.so;
接下來我們可以把修改後的libwebcore2.so和libchromium_net2.so push到手機的rom裡面,假設路徑是/data/local(如果沒有寫許可權,用Root Explorer修改);
然後我們需要修改Java的代碼,讓它去載入我們自己的庫,修改的地方位於JniUtil.java和WebViewCore.java,具體內容見後(載入順序需要改變,先載入libchromium_net2.so再載入libwebcore2.so);
最後加上我們自己的Test Shell的代碼,運行就OK了,如果只修改了C++的代碼,重編譯後再Push到手機,然後重新運行Test Shell就可以馬上生效,Java的代碼可以在Eclipse裡面很方便的調試,C++的代碼理論上也可以通過GDB進行調試;
一. IE瀏覽器。
首先打開一個網頁,點擊網頁右上方的設置及更多。
網頁瀏覽器是個顯示網站伺服器或文件系統內的文件,並讓用戶與這些文件交互的一種應用軟體。它用來顯示在萬維網或區域網等內的文字、圖像及其他信息。這些文字或圖像,可以是連接其他網址的超鏈接,用戶可迅速及輕易地瀏覽各種信息。大部分網頁為HTML格式,有些網頁需特定瀏覽器才能正確顯示。
⑶ 如何修改Android中Browser的UserAgent
最近在研究Android自帶的Chrome Lite瀏覽器,想修改下它的UserAgent,跟蹤了下Android2.2的源代碼,發現主要要修改如下幾個地方:
1.platform/packages/apps/Browser/src/com/android/browser/BrowserSettings.java
2.platform/packages/apps/Browser/res/values/strings.xml
在strings.xml中找到這一段:
view plain to clipboardprint?
<!-- Do not tranlsate. Development option -->
<string-array name="pref_development_ua_choices" translatable="false">
<item>Android</item>
<item>Desktop</item>
<item>iPhone</item>
</string-array>
<!-- Do not tranlsate. Development option -->
<string-array name="pref_development_ua_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
這一段中pref_development_ua_choices對應的是Browser的debug模式下選擇UserAgent時選項的名字,pref_development_ua_values對應的是不同的UserAgent,一會我會講到這些數字分別對應的是什麼UserAgent。
在BrowserSettings.java中找到這兩段:
view plain to clipboardprint?
private static final String DESKTOP_USERAGENT = "Mozilla/5.0 (Macintosh; " +
"U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/530.17 (KHTML, " +
"like Gecko) Version/4.0 Safari/530.17";
private static final String IPHONE_USERAGENT = "Mozilla/5.0 (iPhone; U; " +
"CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 " +
"(KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16";
view plain to clipboardprint?
public void update(Observable o, Object arg) {
BrowserSettings b = (BrowserSettings)o;
WebSettings s = mSettings;
s.setLayoutAlgorithm(b.layoutAlgorithm);
if (b.userAgent == 0) {
// use the default ua string
s.setUserAgentString(null);
} else if (b.userAgent == 1) {
s.setUserAgentString(DESKTOP_USERAGENT);
} else if (b.userAgent == 2) {
s.setUserAgentString(IPHONE_USERAGENT);
}
由此我們可以看出第一段Java代碼是不同的UserAgent字元串,從第二段代碼中我們可以看出strings.xml中那個整數的數組和不同UserAgent的對應關系,0對應默認的UserAgent,即Android Chrome Lite自己的UserAgent,1對應的是Mac OS的UserAgent,2對應的是IPhone OS的UserAgent。
有了上述信息,添加一個自己的UserAgent就不是什麼難事了,首先在strings.xml中添加一個UserAgent選項的名字,然後添加一個序號,然後在BrowserSettings.java中添加一個自己的UserAgent字元串,然後在最後一個if後面寫一個
view plain to clipboardprint?
else if (b.userAgent == 3) {
s.setUserAgentString(YOUR_OWN_USERAGENT);
}
然後就大功告成了!
⑷ 瀏覽器統計中Android Webkit Browser是指的什麼
您好,很高興能幫助您,
WebKit 是一個開源的瀏覽器引擎,與之相應的引擎有Gecko(Mozilla Firefox 等使用的排版引擎)和Trident(也稱為MSHTML,IE 使用的排版引擎)。同時WebKit 也是蘋果Mac OS X 系統引擎框架版本的名稱,主要用於Safari,Dashboard,Mail 和其他一些Mac OS X 程序。WebKit 所包含的 WebCore 排版引擎和 JSCore 引擎來自於 KDE 的 KHTML 和 KJS,當年蘋果比較了 Gecko 和 KHTML 後,仍然選擇了後者,就因為它擁有清晰的源碼結構、極快的渲染速度。
你的採納是我前進的動力,還有不懂的地方,請你繼續「追問」!
如你還有別的問題,可另外向我求助;答題不易,互相理解,互相幫助!
⑸ 這個安卓瀏覽器的源碼用什麼軟體打開
瀏覽器源碼的話,在手機上一般是不能編輯的,需要在電腦上面才可以打開使用java。
⑹ 如何用eclipse打開android源碼
1.先打開eclipse主界面 選擇File-》Important 2.選擇Existing Android Code Into Workspace 3.點擊Next,然後選擇「browser」 定位到要導入應用所在的文件夾 4.然後就能看到已經建的程序,勾選它,然後點擊「Finish」 注意:如果勾選了 projects into workspace 他會把你要導入的源程序 復制一份到你平時的workspace 一般建議勾選
⑺ android瀏覽器源碼
已發送2.0 app源碼
文件說明:
platform/packages/apps/AccountsAndSyncSettings.git
platform/packages/apps/AlarmClock.git
platform/packages/apps/Bluetooth.git
platform/packages/apps/Browser.git
platform/packages/apps/Calculator.git
platform/packages/apps/Calendar.git
platform/packages/apps/Camera.git
platform/packages/apps/CertInstaller.git
platform/packages/apps/Contacts.git
platform/packages/apps/DeskClock.git
platform/packages/apps/Email.git
platform/packages/apps/Gallery.git
platform/packages/apps/Gallery3D.git
platform/packages/apps/GlobalSearch.git
platform/packages/apps/GoogleSearch.git
platform/packages/apps/HTMLViewer.git
platform/packages/apps/IM.git
platform/packages/apps/Launcher.git
platform/packages/apps/Launcher2.git
platform/packages/apps/Mms.git
platform/packages/apps/Music.git
platform/packages/apps/Nfc.git tree
platform/packages/apps/OMAPCamera.git
platform/packages/apps/PackageInstaller.git
platform/packages/apps/Phone.git
platform/packages/apps/Protips.git
platform/packages/apps/Provision.git
platform/packages/apps/QuickSearchBox.git
platform/packages/apps/Settings.git
platform/packages/apps/SoundRecorder.git
platform/packages/apps/SpeechRecorder.git
platform/packages/apps/Stk.git
platform/packages/apps/Sync.git
platform/packages/apps/Tag.git
platform/packages/apps/Updater.git
platform/packages/apps/VoiceDialer.git
⑻ 如何利用Chromium For Android開發Android瀏覽器
採用AndroidStudio作為開發環境,從ChromiumforAndroid抽取chrome模塊的源碼,加入Androidproject。native代碼在chromium環境中build,作為so加入Androidproject基礎模塊(base,content,net等)在chromium環境build為jar包,加入Androidprojectcontent,chrome,ui等模塊的資源文件加入Androidlibraryproject資源文件為什麼不能直接都添加到Androidproject呢?因為命名空間的原因,比如content模塊的資源的命名空間為org.chromium.content,chrome模塊的資源的命名空間為org.chromium.chrome,所以需要建立不同的Androidlibraryproject,指定不同的包名。最後整個項目的結構如下:browser|_app||_libs||_src||_main||_aidl||_assets||_java||_jniLibs||_res|_libraries|_androidmedia_res|_chrome_res|_content_res|_datausagechart_res|_ui_res
⑼ 有沒有可以在 iOS 和 Android 上查看網頁源碼的瀏覽器
Android 上的 Firefox 可以在地址欄里的原URL前加 view-source: 即可查看源代碼。
加裝這個插件會新開一個標簽來查看源代碼,更方便些。
View Source Mobile
View Source Mobile :: Add-ons for Firefox for Android
另外 @Bill Cheng : Android 上的 Firefox 暫時還沒有 FireBug 。
⑽ 安卓開發怎麼在APP內部調用手機系統瀏覽器打開指定html並獲取HTML的數據
Android開發_如何調用 瀏覽器訪問網頁和Html文件
一、啟動android默認瀏覽器
Intent intent= new Intent();
intent.setAction('android.intent.action.VIEW');
Uri content_url = Uri.parse('http://www.cnblogs.com');
intent.setData(content_url);
startActivity(intent);
這樣子,android就可以調用起手機默認的瀏覽器訪問。
二、指定相應的瀏覽器訪問
1、指定android自帶的瀏覽器訪問
( 「com.android.browser」:packagename ;「com.android.browser.BrowserActivity」:啟動主activity)
Intent intent= new Intent();
intent.setAction('android.intent.action.VIEW');
Uri content_url = Uri.parse('http://www.cnblogs.com');
intent.setData(content_url);
intent.setClassName('com.android.browser','com.android.browser.BrowserActivity');
startActivity(intent);
2、啟動其他瀏覽器(當然該瀏覽器必須安裝在機器上)
只要修改以下相應的packagename 和 主啟動activity即可調用其他瀏覽器
intent.setClassName('com.android.browser','com.android.browser.BrowserActivity');
uc瀏覽器':'com.uc.browser', 'com.uc.browser.ActivityUpdate「
opera :'com.opera.mini.android', 'com.opera.mini.android.Browser'
qq瀏覽器:'com.tencent.mtt', 'com.tencent.mtt.MainActivity'
三、打開本地html文件
打開本地的html文件的時候,一定要指定某個瀏覽器,而不能採用方式一來瀏覽,具體示例代碼如下
Intent intent= new Intent();
intent.setAction('android.intent.action.VIEW');
Uri content_url = Uri.parse('content://com.android.htmlfileprovider/sdcard/help.html');
intent.setData(content_url);
intent.setClassName('com.android.browser','com.android.browser.BrowserActivity');
startActivity(intent);
關鍵點是調用了」content「這個filter。
以前有在win32編程的朋友,可能會覺得用這種形式」file://sccard/help.html「是否可以,可以很肯定的跟你說,默認的瀏覽器設置是沒有對」file「這個進行解析的,如果要讓你的默認android瀏覽器有這個功能需要自己到android源碼修改manifest.xml文件,然後自己編譯瀏覽器代碼生成相應的apk包來重新在機器上安裝。
大體的步驟如下:
1、打開 packages/apps/Browser/AndroidManifest.xml文件把加到相應的後面就可以了
2、重新編譯打包,安裝,這樣子,新的瀏覽器就支持」file「這個形式了
有興趣的可以去試試。