当前位置:首页 » 安卓系统 » androidicu

androidicu

发布时间: 2023-08-30 20:55:27

‘壹’ 如何从android源码编译webkit

android本来自带了webkit浏览器,但是要对其进行custom就需要android源代码才行, 但是在没有源码的情况下,那么就需要用到ndk了,比如,我是在xoom上做custom webkit的。
1、虽然ndk提供的库很少,而且没有skia,但是好在有bitmap,这样显示慢了点,没有硬加速,但不是不可能。
2、webkit需要的第三方库,freetype,png,jpeg,sqlite3等虽然android源码中有,但是ndk没有开放,因此所有的第三方库,freetype,png,jpeg,sqlite3,cairo,curl,fontconfig,pixman,iconv等都需要用ndk cross-compile成静态库,然后链接到最终的动态库中。
3、选择iconv是icu太大,而且没有多语言的需求,选择cairo+pixman是skia的移植性不好,而且cairo支持很多种backend。
4、编译第三方库需要用到autoconfig,ndk中有如何生成交叉编译链的文档,然后在configure时使用这个工具链就可以了,但是android用到的是bionic库,因此会有很少的地方需要修改,有些库也不能生成test程序,但是静态库是没问题的。
5、利用ndk生成的交叉工具链,在加上webkit自带的cmake编译系统,生成webkit的动态库是没有问题的,当然是webkit的内核,而且有些平台相关的部分代码需要修改。
6、但是只要是以linux平台为基础,修改还是很容易的,我移植的webkit是先移植到linux平台上,然后移植到android平台上的,所以修改相对少了很多,但是修改大多都在WebCore/platform下,在选择了的平台相关库后,做相应的配置和修改。
7、其次是在WebKit目录,这个主要是支持和使用WebCore,因此在需求不是整个浏览器,而只是正常地显示网页时,还是可以写的比较简单的。

‘贰’ android 怎么使用icu

如果只是测试修改后效果,执行步骤A即可;如果需要build后生效,则需要执行全部步骤
A. 在临时目录中编译ICU资源
1. 在external/icu4c下新建临时目录icubuild,进入icubuild目录
$mkdir external/icu4c/icuBuild
$cd external/icu4c/icuBuild
2. 执行icuConfigureRun Linux命令,生成make文件
$.././runConfigureICU Linux
3. 执行make -j2命令,
$make -j2
对于GB版本,如果make -j2出错,需要用mtk提供的文件(Android 2.3 make-j2 ERROE.rar)替换(需要备份原文件)。
4. 将生成的external/icu4c/icuBuild/data/out/tmp/icudt44l.dat push到手机测试
$adb remount
$adb push external/icu4c/icuBuild/data/out/tmp/icudt44l.dat system/usr/icu/
$adb reboot
ICS对应的是icudt46l.dat,
JB以及以后版本是icudt48l.dat
B. COPY所需文件
1、将第一步生成的externalicu4cicubuilddataout mpicudt44l.dat复制到externalicu4cstubdata下并改名为icudt44l-all.dat,覆盖原来的同名文件。
2、对于GB版本,从ICS工程上拷贝路径prebuildlinux-x86icu-4.4文件夹,放到相应的路径下
ICS版本是icudt46l.dat和icudt46l-all.dat
JB及以上是icudt48l.dat和icudt48l-all.dat
C. 配置环境变量
重新配置环境变量(如果不配置正确会导致执行脚本出错)。以我的系统为例,配置过程如下:
1. 在终端中进入/proj/mtk71491/Desktop/GB/alps目录即:
$cd /proj/mtk71491/Desktop/GB/alps
2. 然后执行脚本(等价于./ build/envsetup.sh):
$source build/envsetup.sh
3. 配置环境变量(注意“=”前后不要有空格)。
$export ANDROID_EABI_TOOLCHAIN=/proj/mtk71491/Desktop/GB/alps/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/(JB2以及以上不执行此步骤)
$export LD_LIBRARY_PATH=/proj/mtk71491/Desktop/GB/alps/prebuilt/linux-x86/icu-4.4/(JB以及上以跳过这一步)
$export ANDROID_BUILD_TOP=/proj/mtk71491/Desktop/GB/alps/
执行完没有任何提示说明配置成功。
D. 执行脚本,重新生成.dat文件
执行脚本,如果遇到文档印尼语错误请用MTK提供的脚本(icu_dat_generator.rar)替换后再执行,如下所示:
1. 进入/proj/mtk71491/Desktop/GB/alps/external/icu4c/studdata目录
$cd external/icu4c/studdata
2. 执行脚本
$./icu_dat_generator.py 4.4 (ICS及以后版本执行$./icu_dat_generator.py)
如果该脚本执行成功,则会更新一遍stubdata下的icudt44l-**.dat这些文件,如果看到这些文件的修改时间变成了最新的时间,就说明已经重新生成真正最后起 作用的是icudt44l-large.dat这个文件。
ICS版是icudt46l-default.dat
JB以及以上是icudt48l-default.dat
E. 重新编译工程
一般修改后都是重新编译工程来测试效果,使用remake android命令即可.
F. 如果执行./icu_dat_generator.py报以下错误
Traceback (most recent call last):
File ./icu_dat_generator.py, line 296, in
main()
File ./icu_dat_generator.py, line 261, in main
icu_version = re.sub(r([^0-9]), , os.path.basename(input_files[0]))
IndexError: list index out of range
可能是环境变量没有配置好,请使用绝对路径,而不是相对路径。

‘叁’ 怎么复制链接在手机浏览器打开

复制链接浏览器中打开,该如何操作,下面给大家来介绍下。

1、首先在手机中打开微信,找到好友对话。

‘肆’ Android有没有像类似于 IOS 的 cocoapods这样的包管理工具

每种语言发展到一个阶段,就会出现相应的依赖管理工具, 或者是中央代码仓库。比如

Java: maven,Ivy
Ruby: gems
Python: pip, easy_install
Nodejs: npm
随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,这个工具叫:CocoaPods。

CocoaPods简介

CocoaPods是一个负责管理iOS项目中第三方开源代码的工具。CocoaPods项目的源码在Github上管理。该项目开始于2011年8月12日,经过一年多的发展,现在已经超过1000次提交,并且持续保持活跃更新。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。

拿我之前开发的粉笔网iPhone客户端为例,其使用了14个第三方开源库。在没有使用CocoaPods以前,我需要:

把这些第三方开源库的相关文件复制到项目中,或者设置成git的submole,然后这些开源库通常需要依赖系统的一些framework,我需要手工地将这些framework一一增加到项目依赖中,比如ASI网络库就需要增加以下framework: CFNetwork, SystemConfiguration, MobileCoreServices, CoreGraphics and zlib。
对于RegexKitLite这个正则表达式库,我还需要设置-licucore的编译参数
手工管理这些依赖包的更新。
这些体力活虽然简单,但毫无技术含量并且浪费时间。在使用CocoaPods之后,我只需要将用到的第三方开源库放到一个名为Podfile的文件中,然后执行pod install。CocoaPods就会自动将这些第三方开源库的源码下来,并且为我的工程设置好相应的系统依赖和编译参数。

热点内容
航海世纪55区是什么服务器 发布:2025-02-02 02:01:22 浏览:831
php获取当前年 发布:2025-02-02 01:50:41 浏览:156
sqlbrowser服务 发布:2025-02-02 01:32:14 浏览:730
jeecg源码下载 发布:2025-02-02 01:08:47 浏览:365
多台电脑能共用一个服务器吗 发布:2025-02-02 01:08:44 浏览:26
oppo云存储空间怎么清理 发布:2025-02-02 00:59:31 浏览:263
项目编译啥意思 发布:2025-02-02 00:25:13 浏览:223
逐鹿中原怎样做挂机脚本 发布:2025-02-02 00:23:39 浏览:28
安卓系统跟踪在哪里 发布:2025-02-02 00:23:38 浏览:899
安卓uc浏览器怎么安装油猴 发布:2025-02-02 00:23:38 浏览:299