Hi,
I'm exploring a way to build ChromiumTestShell for Android linking against some system libraries. I checked build/common.gypi and saw that, at this moment, it's possible to build ChromiumTestShell for Android using some system libraries, basically libstlport, libicu and libexpat. However, it's only possible to use system libraries when building Chromium as a WebView.
build/common.gypi:1381
# When building as part of the Android system, use system libraries
# where possible to reduce ROM size.
# TODO(steveblock): Investigate using the system version of sqlite.
'use_system_sqlite%': 0, # '<(android_webview_build)',
'use_system_expat%': '<(android_webview_build)',
'use_system_icu%': '<(android_webview_build)',
'use_system_stlport%': '<(android_webview_build)',
In any case, I modified some .gyp scripts and managed to build Chromium as a browser using Android's system libraries. Using this approach, the size of the ROM gets reduced considerably but this change should be benefitial for reducing RAM consumption too.
Now here comes my concern. The problem of using Android's libraries is that Chromium's and Android's versions of these libraries differ. In the case of stlport, both use version 5.0, so nothing to worry about. In the case of libexpat, Chromium uses 2.0.1 but Android uses 2.1.0. In addition, Chromium's version has two patches applied that fix a bug in Windows. With regard to libicu, both versions differ enormously. Chromium uses icu 4.6 while Android uses version 49.1.1 (versions number enumeration changed since 4.7). Chromium's icu comes with many patches applied that fix bugs in the upstream 4.6 version. Fortunately, these patches where proposed to be applied upstream and all of them have made it, but some are applied in versions higher that 49.1.1, so those patches are not available on Android's icu. In addition to that, Chromium's icu has other changes in the source code.
I wonder if those building Chromium as a WebView for Android don't have the same concerns of using different versions of some libraries. I'm afraid that things may crash or not work due to this change. On the other hand, I think the benefits of building against system libraries are important, but maybe apart from this potential compatibility issues there are other drawbacks I'm failing to see. I'd appreciate any comment or feedback on this. Thanks!
Diego
Hi,
I'm exploring a way to build ChromiumTestShell for Android linking against some system libraries. I checked build/common.gypi and saw that, at this moment, it's possible to build ChromiumTestShell for Android using some system libraries, basically libstlport, libicu and libexpat. However, it's only possible to use system libraries when building Chromium as a WebView.
build/common.gypi:1381
# When building as part of the Android system, use system libraries
# where possible to reduce ROM size.
# TODO(steveblock): Investigate using the system version of sqlite.
'use_system_sqlite%': 0, # '<(android_webview_build)',
'use_system_expat%': '<(android_webview_build)',
'use_system_icu%': '<(android_webview_build)',
'use_system_stlport%': '<(android_webview_build)',
In any case, I modified some .gyp scripts and managed to build Chromium as a browser using Android's system libraries. Using this approach, the size of the ROM gets reduced considerably but this change should be benefitial for reducing RAM consumption too.
Now here comes my concern. The problem of using Android's libraries is that Chromium's and Android's versions of these libraries differ. In the case of stlport, both use version 5.0, so nothing to worry about. In the case of libexpat, Chromium uses 2.0.1 but Android uses 2.1.0. In addition, Chromium's version has two patches applied that fix a bug in Windows. With regard to libicu, both versions differ enormously. Chromium uses icu 4.6 while Android uses version 49.1.1 (versions number enumeration changed since 4.7). Chromium's icu comes with many patches applied that fix bugs in the upstream 4.6 version. Fortunately, these patches where proposed to be applied upstream and all of them have made it, but some are applied in versions higher that 49.1.1, so those patches are not available on Android's icu. In addition to that, Chromium's icu has other changes in the source code.
I wonder if those building Chromium as a WebView for Android don't have the same concerns of using different versions of some libraries. I'm afraid that things may crash or not work due to this change. On the other hand, I think the benefits of building against system libraries are important, but maybe apart from this potential compatibility issues there are other drawbacks I'm failing to see. I'd appreciate any comment or feedback on this. Thanks!
--
Diego
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
Hi,
I'm exploring a way to build ChromiumTestShell for Android linking against some system libraries. I checked build/common.gypi and saw that, at this moment, it's possible to build ChromiumTestShell for Android using some system libraries, basically libstlport, libicu and libexpat. However, it's only possible to use system libraries when building Chromium as a WebView.
build/common.gypi:1381
# When building as part of the Android system, use system libraries
# where possible to reduce ROM size.
# TODO(steveblock): Investigate using the system version of sqlite.
'use_system_sqlite%': 0, # '<(android_webview_build)',
'use_system_expat%': '<(android_webview_build)',
'use_system_icu%': '<(android_webview_build)',
'use_system_stlport%': '<(android_webview_build)',
In any case, I modified some .gyp scripts and managed to build Chromium as a browser using Android's system libraries. Using this approach, the size of the ROM gets reduced considerably but this change should be benefitial for reducing RAM consumption too.
Hi,
Lei,As I'm a rookie on android and chromium, so could you give me more help explicitly?
I could not get the key point on the wiki, :(