抱歉,该网页目前还不存在中文版本,请继续浏览其他网页!

使用Crosswalk Lite

使用Crosswalk Lite或者"Lite"编译你的应用与使用正常的Crosswalk编译是相同的。关于如何搭建你的开发环境,请参见开始页面。基于NPM的crosswalk-app-tools是用于创建Crosswalk应用的打包工具。关于工具更多的细节,请参见crosswalk-app-tools的使用

使用Lite编译

为了使用Lite编译你的应用,请在打包命令中添加参数--android="lite"

$ crosswalk-pkg --android="lite" <your webapp path>

crosswalk-pkg将会下载Lite引擎并且创建一个你的应用的APK。

手动下载Crosswalk-Lite

或者你可以从build目录手动下载Lite引擎到你本地的机器,然后运行:

$ crosswalk-pkg --android="lite" \
                --crosswalk=<downloads path>/crosswalk-17.46.455.1.zip \
                <your webapp path>

其他的编译版本可以在编译输出变量上查找。

Lite只能通过标准的“嵌入模式”绑定你的应用,其中Lite库会被添加到你的APK中。不支持共享模式

嵌入Lite webview

开发人员可以像使用Crosswalk一样,将Lite webview嵌入到它们基于Java的Android项目中。关于嵌入的详细细节,请参见[嵌入Crosswalk项目](https://crosswalk-project.org/documentation/android/ embedding_crosswalk_zh.html)和使用Crosswalk AAR开发。一个关于Lite的不同点就是下文中描述的onXWalkReady()

从Lite v17开始,我们为Lite添加了maven服务器。现在我们针对Crosswalk和Crosswalk Lite拥有两个分离的maven链接。请确认你项目中的maven链接是针对Crosswalk Lite的,而不是Crosswalk。

最新的Lite发行版本:
https://download.01.org/crosswalk/releases/crosswalk-lite/android/canary/latest/

新的API: org.xwalk.core.XWalkActivity.onXWalkReady()

onXwalkReady API是为了检测Crosswalk环境是否可用而引入的。Crosswalk环境在如下两种场景下不可用:

  • 共享模式: 需要从例如Google Play之类的app store下载。
  • Crosswalk-Lite: libxwalkcore.so被LZMA压缩,首先需要被解压。

需要下列改变:

  • XWalkView 初始化代码从onCreate()移到onXWalkReady()
  • Activity 应该从 org.xwalk.core.XWalkActivity 继承,而不是 android.app.Activity
  • AndroidManifest.xml中, android:name应该变为 org.xwalk.core.XWalkApplication
import org.xwalk.core.XWalkActivity;
import org.xwalk.core.XWalkResourceClient;
import org.xwalk.core.XWalkUIClient;
import org.xwalk.core.XWalkView;

public class MainActivity extends XWalkActivity {
    XWalkView mXWalkView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //Don't initXWalkView here!
    }

    public void initXWalkView() {
        mXWalkView = new XWalkView(this);
        RelativeLayout Ll = (RelativeLayout) findViewById(R.id.layout1);
        Ll.addView(mXWalkView);

        mXWalkView.setUIClient(new XWalkUIClient(mXWalkView));
        mXWalkView.setResourceClient(new XWalkResourceClient(mXWalkView));

        mXWalkView.load("http:///xxxx/test.html", null);
    }

    @Override
    protected void onXWalkReady() {
        //initXWalkView in onXWalkReady().
        initXWalkView();
    }
}

运行一个Lite应用

一个通过Lite编译的应用第一次运行时,libxwalkcore.so必须被解压。下列对话框将会展示几秒钟: 这个仅在第一次运行时展示。