chromiumAndroid
① 如何在chromium os中運行Android應用
問題要從引擎部分和java界面部分來看。引擎部分,不準確的說,就是非Java部分的代碼,是可以用於一個穩定的產品的。但是Java界面部分的代碼,ChromiumforAndroid只是提供了一個很簡單的演示程序。距離具體的產品,還是有很多工作要做的。
② 為什麼谷歌把鉻的元素符號當成是chromium,一個瀏覽器的名稱,有什麼特殊含義嗎
開源計劃就是指源代碼是開放的,任何人都可以拿到源代碼,
像是linux,apache等就是非常著名的開源項目
現在著名的開源項目,莫過於 android了!
開源才是王道!
③ 怎麼讓chromium android 體積變小
只能說一般,APK大小倒是可接受(3.3M),為了提升體驗,也用crosswalk替換了cordova原生提供的打包工作,流暢度真的很棒,這玩意內置了瀏覽器運行環境,也就是APK太大的原因(23M),所以我也開始糾結要不要用crosswalk打包了。
另外,如果題主用ionic的話,可以通過
ionic browser add corsswalk
快速的完成crosswalk的設置部署,省去不少繁瑣的步驟
然後
ionic build android
④ 把Ubuntu+win7+win xp+Chromium os+mac+Android 裝到一塊硬碟上
一塊硬碟可以有三個主分區。先分三個主分區,再分一個擴展分區。擴展分區里再分幾個邏輯分區。 第一分區裝xp。第二分區裝win7。第三分區裝mac。擴展分區里第一個邏輯分區裝ubuntu。第二個裝Chromium。第三個裝Android。最後還要幾個swap分區。分別分配給mac、ubuntu、Chromium。引導啟動統一使用grub2,裝到hda()的主引導上。然後用grub2引導xp、win7、ubuntu、Chromium、Android肯定是沒有問題的。至於mac我不熟悉不知道gurb2能否引導起來。
⑤ 怎麼編譯Chrome for Android
編譯Chrome for Android目前有兩種方式,一是在ROM編譯環境下編出libchromeview.so,二是用Chromium主幹的代碼編譯出ContentShell(一個測試用的外殼,只包含核心的代碼,不包含Chrome的擴展特性,這兩種方式目前都只支持在64位Ubuntu下面進行。
--------------------------------------------------------------------------------
在ROM編譯環境下編出libchromeview.so
這種方式比較簡單,下載當前版本Chrome for Android的tarball,解壓後把Chrome目錄放入ROM目錄的$ROM/external下面,然後按照README.Chrome_for_Android_SourceDistribution裡面的說明進行編譯即可。
1.編譯出來的libchromeview.so,可以按照README.Chrome_for_Android_SourceDistribution說明打一個新的Chrome.apk運行,也可以直接替換掉手機裡面/data/data/com.android.chrome/下面的libchromeview.so運行;
2.不知道是不是版本不匹配的關系,用最新的Chrome搭配自己編譯的libchromeview.so,復雜的網頁會崩潰,簡單的網頁就還OK;
3.可以輸出日誌(#include "/base/logging.h"),但是沒法調試和跟蹤(理論上應該可以使用命令行gdb進行調試,不過配置起來應該比較麻煩,沒有去嘗試);
--------------------------------------------------------------------------------
用Chromium主幹的代碼編譯出ContentShell
這種方式比較麻煩
1.下載Chromium的tarball後需要使用gclient sync -nohooks同步新的代碼,tarball裡面的svn記錄是1.6版本的,如果你的svn是1.7版本,需要先downgrade到1.6版本;
2.同步最新代碼的時候,如果提示guava和jsr-305這兩個目錄同步錯誤,需要先移除$SRC/third_party/guava和$SRC/third_party/jsr-305後再重新同步(後續新的tarball應該不需要了);
3.gclient runhooks一直失敗,不過貌似也不影響編譯;
4.如果編譯時提示缺少$SRC/build/util/LASTCHANGE文件,可以從上面的Chrome for Android的tarball裡面過來;
5.運行build/android/adb_gdb_content_shell就可以使用gdb進行調試;
6.adb_gdb_content_shell實際上調用了adb_gdb,adb_gdb在中文Ubuntu環境下有一個bug,第861行」if [ "$STATE" != "Running" ]; then「可能會失敗,因為在中文環境STATE實際值可能是」運行中「,這一行需要改成」if [ "$STATE" != "運行中" ]; then「;
⑥ 如何利用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
⑦ 如何編譯Chrome for Android
下載 depot_tools
下載 depot_tools(默認下載到當前用戶主文件夾下的 chromium 子目錄,自行根據需要修改,下載完畢後需要將 depot_tools 的目錄添加到 PATH)
cd ~ mkdir chromium cd chromium git clone chromium.googlesource.com/chromium/tools/depot_tools.git
下載源代碼和編譯所需的第三方工具/庫
fetch --nohooks android --nosvn=True cd src git checkout master # if you are building for Android: ./build/install-build-deps-android.sh gclient sync --nohooks
配置 GYP
~/chromium$ echo "{ 'GYP_DEFINES': 'OS=android', }" > chromium.gyp_env ~/chromium$ gclient runhooks
安裝 Java JDK(如果已經安裝可以跳過)
# 安裝 Open JDK 1.7 ~/chromium$ sudo apt-get install openjdk-7-jdk # 配置為默認 JDK sudo update-alternatives --config javac sudo update-alternatives --config java sudo update-alternatives --config javaws sudo update-alternatives --config javap sudo update-alternatives --config jar sudo update-alternatives --config jarsigner
編譯 Content shell
# 編譯 Release 版本並安裝到手機上 ~/chromium/src$ ninja -C out/Release content_shell_apk ~/chromium/src$ build/android/adb_install_apk.py --apk ContentShell.apk --release # 編譯 Debug 版本並安裝到手機上,Debug 版本可用於調試 ~/chromium/src$ ninja -C out/Debug content_shell_apk ~/chromium/src$ build/android/adb_install_apk.py --apk ContentShell.apk --debug
⑧ android怎麼關掉chromium日子
在kitkat的chromium_org下面打log,不同的部分可能打log的方式是不一樣的。
也有很多人糾結這個問題,並且沒有一個好的辦法。在這邊就分享一下經驗。
在content,android_webview及其它的模塊中,基本可以用
「LOG(ERROR) << "chao uaprofile_overidden = " << uaprofile_overidden;」的方式列印出來log。
但是在extern/WebKit下面的話,用這種方式也是不行的。
試過了自己封裝printf,試過了LOG,LOG_ERROR等方式也不行。
但是後來查看code發現,include 「wtf/Assertions.h」頭文件
然後使用WTFLogAlways("ResourceLoader::willSendRequest -2 -- chao");去進行列印
就可以從adb logcat裡面看到自己列印的log了。
⑨ 請教android源碼中external/chromium
問題要從引擎部分和Java界面部分來看。引擎部分,不準確的說,就是非Java部分的代碼,是可以用於一個穩定的產品的。但是Java界面部分的代碼,Chromium for Android只是提供了一個很簡單的演示程序。距離具體的產品,還是有很多工作要做的。
⑩ 如何評價谷歌將把Chrome OS整合進Android這一舉措
在hacker news上看到一條評論,覺得很有道理就貼過來:
Seems everyone here is panicking because they think that this means Chrome OS will be killed and Android will be made to run on Chromebooks - but I actually think the signs point to the opposite - Chrome OS becoming the Phone/Tablet OS under a new guise. I wouldn't read too much into a leak filtered through journalists, and instead look at what Google's actually working on:
- Google has Chromium developers working on a DART-based Mobile UI framework and execution engine, Flutter (Flutter). It's looking to be far better than the existing Android UI system - built for touch and 120fps from the start. This uses the Dartium VM and a bridge to allow the DART apps to use all the native features of the platform, it's much more than just another web framework. Development on this is very active right now, clearly a sizable team working fulltime - and they're building new developer tools also. There was a talk on this a while ago:https://www.youtube.com/watch?v=PnIWl33YMwA .
- Google has built a Runtime to allow existing Android Java-based apps to run on Chrome OS, and is currently testing this and working with developers to get their apps to run on it. It doesn't make much sense to invest in building that out just for chromebooks, since the experience on a Chromebook with Android apps is pretty awful (can't resize etc), but it makes total sense if it's going to be how legacy Java/Android apps run on the new Chrome based phone OS.
The sad truth is that Android simply isn't a very well engineered system - it's been improved over time, but problems persist - like the complex update process leading to unsatisfied users and security problems, poor UI performance (even now, Android can barely do simple animations at a steady 60fps on the latest Nexus devices, and has little hope of allowing for the beautiful animations the Material Design team has come up with), and poor battery life. Google's also at a dead-end with Java given the ongoing legal battles, and with Apache Harmony dead they have to maintain the standard library implementation themselves.
On the other hand, Chrome OS performs great, has awesome battery life on Chromebooks, is quite possibly the most secure end-user OS ever, and Chromebooks get speedy updates for at least 5 years. I know which one I'd choose as the basis for a merged OS.
我的看法和預測:
從市場角度去看顯然android勝出了;
從技術角度去看,不論是UI,安全性以及碎片化問題,自動更新方面去看,chromeOS都優於android。
而且正如上面貼的評論中指出的,chrome團隊搞得這幾個項目(開發人數和活躍度都是非常高的,說明不是玩笑),預示著:chrome OS的技術會占據android。
Android的優勢是大量的app,品牌影響力和認知度,所以最終的融合可能會是:android的表,chrome OS的芯。
維護兩套OS本身就耗費大量的人力物力,而且還都是linux內核,太蛋疼。以後汽車,家居,各種穿戴式設備等等難道再各自開發一套系統?顯然不可行。隨著移動化浪潮,web的演化發展,整合出一套通用的OS不再是夢。蘋果以前時不時就傳出過ios會最終融合osx,我個人覺得是遲早的。微軟率先大膽的邁出了一步,但可惜做得很糟糕,也許是用戶,市場以及各方面都還沒有準備好。有點像之前vista和windows7截然不同的命運。還記得ipad之前微軟就搞出個一個類似平板的東西最終慘敗。在這里有必要提一下Google眼鏡的失敗,也是這個問題。以上這些失敗都是好事,同樣的例子:facebook第一次在html5上的嘗試以失敗告終,但最終搞出了react。