集成到Android应用
WARNING
考虑到包大小的问题, 暂不提供 Android x86 so 的支持.
在执行以下步骤之前,请先确认您的Android开发环境是ok的。
* JAVA环境, jdk7+
* Android Studio
* NDK r18
、Cmake 3.9.0+
(可选项:如果需要编译WEEX源码,需要NDK环境支持)
1. 设置gradle依赖
1. dependencies {
2. ...
3. // weex sdk and fastjson
4. compile 'com.taobao.android:weex_sdk:0.20.0.2@aar'
5. compile 'com.alibaba:fastjson:1.1.46.android'
6. 7. //support library dependencies
8. compile 'com.android.support:recyclerview-v7:23.1.1'
9. compile 'com.android.support:support-v4:23.1.1'
10. compile 'com.android.support:appcompat-v7:23.1.1'
11. }
2. 配置混淆规则
混淆规则如下,建议参考最新的源码配置
1. -keep class com.taobao.weex.bridge.** { ; }
2. -keep class com.taobao.weex.layout.* { *; }
3. -keep class com.taobao.weex.WXSDKEngine { ; }
4. -keep class com.taobao.weex.base.SystemMessageHandler { ; }
5. -dontwarn com.taobao.weex.bridge.
3. 声明权限
在AndroidManifest.xml中声明权限
1. //网络
2.
4. 初始化sdk
1. InitConfig config = new InitConfig.Builder()
2. //图片库接口
3. .setImgAdapter(new FrescoImageAdapter())
4. //网络库接口
5. .setHttpAdapter(new InterceptWXHttpAdapter())
6. .build();
7. WXSDKEngine.initialize(applicationContext,config);
8.
- demo初始化源码

- 其它扩展配置看这里
5. 创建WXSDKInstance
WXSDKInstance是weex渲染页面的基本单元,
* 通过instance.render(url)拉取bundle,
* 在回调IWXRenderListener的onViewCreated返回创建的view,
* 将返回的view 添加到Activity的view上(rootView)参见源码: WXPageActivity
1. public class MainActivity extends AppCompatActivity implements IWXRenderListener {
2. WXSDKInstance mWXSDKInstance;
3. @Override
4. protected void onCreate(Bundle savedInstanceState) {
5. super.onCreate(savedInstanceState);
6. setContentView(R.layout.activity_main);
7. mWXSDKInstance = new WXSDKInstance(this);
8. mWXSDKInstance.registerRenderListener(this);
9. /**
10. * bundleUrl source http://dotwe.org/vue/38e202c16bdfefbdb88a8754f975454c
11. */
12. String pageName = "WXSample";
13. String bundleUrl = "http://dotwe.org/raw/dist/38e202c16bdfefbdb88a8754f975454c.bundle.wx";
14. mWXSDKInstance.renderByUrl(pageName, bundleUrl, null, null,WXRenderStrategy.APPEND_ASYNC);
15. }
16. @Override
17. public void onViewCreated(WXSDKInstance instance, View view) {
18. setContentView(view);
19. }
20. @Override
21. public void onRenderSuccess(WXSDKInstance instance, int width, int height) {
22. }
23. @Override
24. public void onRefreshSuccess(WXSDKInstance instance, int width, int height) {
25. }
26. @Override
27. public void onException(WXSDKInstance instance, String errCode, String msg) {
28. }
29. @Override
30. protected void onResume() {
31. super.onResume();
32. if(mWXSDKInstance!=null){
33. mWXSDKInstance.onActivityResume();
34. }
35. }
36. @Override
37. protected void onPause() {
38. super.onPause();
39. if(mWXSDKInstance!=null){
40. mWXSDKInstance.onActivityPause();
41. }
42. }
43. @Override
44. protected void onStop() {
45. super.onStop();
46. if(mWXSDKInstance!=null){
47. mWXSDKInstance.onActivityStop();
48. }
49. }
50. @Override
51. protected void onDestroy() {
52. super.onDestroy();
53. if(mWXSDKInstance!=null){
54. mWXSDKInstance.onActivityDestroy();
55. }
56. }
57. }
6. 运行app
运行app,您将会看到一个 hello world 页面。
* Hello World Demo 源码
* 提示: 点击二维码, 可以看到最终编译的代码产物。
7. 扩展Android能力
Weex 提供了能力扩展机制,可以根据自己的业务进行定制自己的功能。 主要分为: * Module 扩展, 非 UI 的特定功能。例如 sendHttp、openURL 等。 * Component 扩展, 实现特别功能的 Native 控件。例如:RichTextview,RefreshListview 等。 * Adapter 扩展, Weex 对一些基础功能实现了统一的接口,可实现这些接口来定制自己的业务。例如:图片下载等。
