You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ky...@apache.org on 2018/04/28 06:54:13 UTC
[45/48] incubator-weex git commit: * [android] Merge WeexCore-master
to master.
* [android] Merge WeexCore-master to master.
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/2f8caedb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/2f8caedb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/2f8caedb
Branch: refs/heads/master
Commit: 2f8caedb147b13182647a1dab473ba9cb31e54e4
Parents: 62439ca
Author: miomin <69...@qq.com>
Authored: Thu Apr 26 11:18:11 2018 +0800
Committer: YorkShen <sh...@gmail.com>
Committed: Sat Apr 28 14:51:47 2018 +0800
----------------------------------------------------------------------
android/commons/build.gradle | 12 +-
.../weex/commons/AbstractWeexActivity.java | 4 -
.../commons/adapter/FrescoImageComponent.java | 6 +-
.../weex/commons/adapter/ImageAdapter.java | 4 -
android/playground/app/build.gradle | 24 +-
.../benchmark/BenchmarkActivityTestRule.java | 53 -
.../alibaba/weex/benchmark/BenchmarkTest.java | 106 +-
.../weex/benchmark/WeexNativeCompareTest.java | 22 +-
.../weex/uitest/WeexUiTestCaseTcElementOpt.java | 6 +-
.../com/alibaba/weex/BenchmarkActivity.java | 29 +-
.../java/com/alibaba/weex/WXApplication.java | 3 -
.../java/com/alibaba/weex/WXPageActivity.java | 11 +-
.../alibaba/weex/extend/component/RichText.java | 6 +-
.../extend/component/WXComponentSyncTest.java | 8 +-
.../alibaba/weex/extend/component/WXMask.java | 33 +-
.../weex/extend/component/WXParallax.java | 17 +-
.../extend/component/dom/WXMaskDomObject.java | 254 -
.../weex/extend/module/WXWsonTestModule.java | 1 -
.../zxing/client/android/CaptureActivity.java | 289 +-
.../android/result/WifiResultHandler.java | 2 +-
android/sdk/.gitignore | 3 +-
android/sdk/assets/main.js | 2 +-
android/sdk/assets/weex-main-jsfm.js | 2 +-
android/sdk/assets/weex-rax-api.js | 2 +-
android/sdk/build.gradle | 42 +-
android/sdk/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 52266 bytes
.../gradle/wrapper/gradle-wrapper.properties | 6 +
android/sdk/libs/armeabi/libweexjsc.so | Bin 276000 -> 0 bytes
android/sdk/libs/armeabi/libweexjss.so | Bin 2965608 -> 3758132 bytes
android/sdk/libs/x86/libweexjsb.so | Bin
android/sdk/libs/x86/libweexjsc.so | Bin 655556 -> 0 bytes
android/sdk/libs/x86/libweexjss.so | Bin 8373712 -> 10928784 bytes
android/sdk/proguard-rules.pro | 5 +-
android/sdk/src/main/AndroidManifest.xml | 5 +-
.../main/java/com/taobao/weex/InitConfig.java | 2 +-
.../com/taobao/weex/LayoutFinishListener.java | 26 -
.../java/com/taobao/weex/RenderContainer.java | 46 +-
.../java/com/taobao/weex/WXEnvironment.java | 14 +-
.../main/java/com/taobao/weex/WXSDKEngine.java | 206 +-
.../java/com/taobao/weex/WXSDKInstance.java | 484 +-
.../main/java/com/taobao/weex/WXSDKManager.java | 13 +-
.../com/taobao/weex/WeexFrameRateControl.java | 88 +
.../taobao/weex/adapter/ClassLoaderAdapter.java | 1 -
.../appfram/websocket/WebSocketCloseCodes.java | 2 +-
.../com/taobao/weex/base/CalledByNative.java | 22 +
.../java/com/taobao/weex/base/FloatUtil.java | 31 +
.../taobao/weex/base/SystemMessageHandler.java | 106 +
.../java/com/taobao/weex/bridge/JSCallback.java | 2 -
.../taobao/weex/bridge/ModuleFactoryImpl.java | 21 +-
.../taobao/weex/bridge/NativeInvokeHelper.java | 16 +-
.../java/com/taobao/weex/bridge/WXBridge.java | 689 +-
.../com/taobao/weex/bridge/WXBridgeManager.java | 1619 ++---
.../java/com/taobao/weex/bridge/WXJSObject.java | 1 -
.../com/taobao/weex/bridge/WXJsFunctions.java | 110 +
.../com/taobao/weex/bridge/WXModuleManager.java | 32 +-
.../taobao/weex/bridge/WXValidateProcessor.java | 4 +-
.../java/com/taobao/weex/common/Constants.java | 23 +-
.../java/com/taobao/weex/common/IWXBridge.java | 110 +-
.../com/taobao/weex/common/IWXDebugProxy.java | 2 +-
.../com/taobao/weex/common/IWXJsFunctions.java | 72 +
.../java/com/taobao/weex/common/IWXTask.java | 23 -
.../com/taobao/weex/common/WXErrorCode.java | 16 +-
.../taobao/weex/common/WXJSExceptionInfo.java | 18 +-
.../com/taobao/weex/common/WXPerformance.java | 125 +-
.../com/taobao/weex/dom/ApplyStyleConsumer.java | 59 -
.../taobao/weex/dom/BasicEditTextDomObject.java | 107 -
.../com/taobao/weex/dom/CSSAlignConvert.java | 60 -
.../java/com/taobao/weex/dom/CSSConstants.java | 28 +
.../weex/dom/CSSFlexDirectionConvert.java | 42 -
.../com/taobao/weex/dom/CSSJustifyConvert.java | 42 -
.../taobao/weex/dom/CSSPositionTypeConvert.java | 36 -
.../java/com/taobao/weex/dom/CSSShorthand.java | 112 +
.../com/taobao/weex/dom/CSSWrapConvert.java | 36 -
.../java/com/taobao/weex/dom/DOMAction.java | 30 -
.../com/taobao/weex/dom/DOMActionContext.java | 71 -
.../taobao/weex/dom/DOMActionContextImpl.java | 461 --
.../java/com/taobao/weex/dom/DomContext.java | 30 -
.../com/taobao/weex/dom/ImmutableDomObject.java | 63 -
.../java/com/taobao/weex/dom/RenderAction.java | 29 -
.../taobao/weex/dom/RenderActionContext.java | 32 -
.../com/taobao/weex/dom/RenderActionTask.java | 65 -
.../java/com/taobao/weex/dom/RenderContext.java | 32 +
.../weex/dom/SafePutConcurrentHashMap.java | 51 -
.../weex/dom/TextAreaEditTextDomObject.java | 58 -
.../main/java/com/taobao/weex/dom/WXAttr.java | 109 +-
.../com/taobao/weex/dom/WXCellDomObject.java | 124 -
.../java/com/taobao/weex/dom/WXDomHandler.java | 146 -
.../java/com/taobao/weex/dom/WXDomManager.java | 237 -
.../java/com/taobao/weex/dom/WXDomModule.java | 175 -
.../java/com/taobao/weex/dom/WXDomObject.java | 936 ---
.../com/taobao/weex/dom/WXDomObjectFactory.java | 58 -
.../java/com/taobao/weex/dom/WXDomRegistry.java | 59 -
.../java/com/taobao/weex/dom/WXDomTask.java | 34 -
.../main/java/com/taobao/weex/dom/WXEvent.java | 6 +-
.../com/taobao/weex/dom/WXListDomObject.java | 51 -
.../taobao/weex/dom/WXRecyclerDomObject.java | 281 -
.../taobao/weex/dom/WXScrollerDomObject.java | 49 -
.../main/java/com/taobao/weex/dom/WXStyle.java | 463 +-
.../com/taobao/weex/dom/WXSwitchDomObject.java | 58 -
.../com/taobao/weex/dom/WXTextDomObject.java | 601 --
.../dom/action/AbstractAddElementAction.java | 182 -
.../dom/action/AbstractLayoutFinishAction.java | 52 -
.../java/com/taobao/weex/dom/action/Action.java | 26 -
.../com/taobao/weex/dom/action/Actions.java | 237 -
.../weex/dom/action/AddElementAction.java | 155 -
.../taobao/weex/dom/action/AddEventAction.java | 109 -
.../taobao/weex/dom/action/AddRuleAction.java | 68 -
.../taobao/weex/dom/action/AnimationAction.java | 299 -
.../weex/dom/action/CreateBodyAction.java | 144 -
.../weex/dom/action/CreateFinishAction.java | 64 -
.../weex/dom/action/ExecutableRenderAction.java | 48 -
.../weex/dom/action/GetComponentRectAction.java | 116 -
.../weex/dom/action/InvokeMethodAction.java | 50 -
.../weex/dom/action/ModuleInvocationAction.java | 76 -
.../weex/dom/action/MoveElementAction.java | 103 -
.../weex/dom/action/RefreshFinishAction.java | 39 -
.../weex/dom/action/ReloadPageAction.java | 66 -
.../weex/dom/action/RemoveElementAction.java | 109 -
.../weex/dom/action/RemoveEventAction.java | 80 -
.../weex/dom/action/ScrollToElementAction.java | 67 -
.../taobao/weex/dom/action/TraceableAction.java | 83 -
.../weex/dom/action/UpdateAttributeAction.java | 83 -
.../dom/action/UpdateComponentDataAction.java | 69 -
.../weex/dom/action/UpdateFinishAction.java | 46 -
.../weex/dom/action/UpdateStyleAction.java | 118 -
.../java/com/taobao/weex/dom/flex/CSSAlign.java | 14 -
.../com/taobao/weex/dom/flex/CSSConstants.java | 15 -
.../com/taobao/weex/dom/flex/CSSDirection.java | 12 -
.../taobao/weex/dom/flex/CSSFlexDirection.java | 13 -
.../com/taobao/weex/dom/flex/CSSJustify.java | 14 -
.../com/taobao/weex/dom/flex/CSSLayout.java | 76 -
.../taobao/weex/dom/flex/CSSLayoutContext.java | 18 -
.../java/com/taobao/weex/dom/flex/CSSNode.java | 642 --
.../taobao/weex/dom/flex/CSSPositionType.java | 11 -
.../java/com/taobao/weex/dom/flex/CSSStyle.java | 123 -
.../java/com/taobao/weex/dom/flex/CSSWrap.java | 11 -
.../taobao/weex/dom/flex/CachedCSSLayout.java | 18 -
.../com/taobao/weex/dom/flex/FloatUtil.java | 18 -
.../com/taobao/weex/dom/flex/LayoutEngine.java | 934 ---
.../com/taobao/weex/dom/flex/MeasureOutput.java | 15 -
.../java/com/taobao/weex/dom/flex/Spacing.java | 237 -
.../weex/dom/text/FontBroadcastReceiver.java | 79 -
.../weex/dom/transition/WXTransition.java | 317 +-
.../com/taobao/weex/el/parse/Operators.java | 17 +-
.../java/com/taobao/weex/el/parse/Parser.java | 3 +-
.../java/com/taobao/weex/http/WXHttpUtil.java | 8 +-
.../com/taobao/weex/http/WXStreamModule.java | 20 +-
.../weex/layout/ContentBoxMeasurement.java | 78 +
.../com/taobao/weex/layout/MeasureMode.java | 40 +
.../com/taobao/weex/layout/MeasureSize.java | 42 +
.../measurefunc/TextContentBoxMeasurement.java | 472 ++
.../performance/WXAnalyzerDataTransfer.java | 22 +-
.../java/com/taobao/weex/tracing/WXTracing.java | 2 +-
.../com/taobao/weex/ui/ComponentCreator.java | 4 +-
.../weex/ui/ExternalLoaderComponentHolder.java | 14 +-
.../java/com/taobao/weex/ui/IWXRenderTask.java | 26 -
.../taobao/weex/ui/RenderActionContextImpl.java | 113 -
.../com/taobao/weex/ui/RenderContextImpl.java | 75 +
.../taobao/weex/ui/SimpleComponentHolder.java | 24 +-
.../com/taobao/weex/ui/WXComponentRegistry.java | 1 +
.../com/taobao/weex/ui/WXRenderHandler.java | 24 +-
.../com/taobao/weex/ui/WXRenderManager.java | 138 +-
.../taobao/weex/ui/action/ActionAddRule.java | 78 +
.../weex/ui/action/ActionGetComponentRect.java | 120 +
.../weex/ui/action/ActionInvokeMethod.java | 54 +
.../taobao/weex/ui/action/ActionReloadPage.java | 49 +
.../weex/ui/action/BasicComponentData.java | 265 +
.../weex/ui/action/BasicGraphicAction.java | 69 +
.../action/GraphicActionAbstractAddElement.java | 94 +
.../weex/ui/action/GraphicActionAddElement.java | 115 +
.../weex/ui/action/GraphicActionAddEvent.java | 53 +
.../weex/ui/action/GraphicActionAnimation.java | 266 +
.../weex/ui/action/GraphicActionCreateBody.java | 99 +
.../ui/action/GraphicActionCreateFinish.java | 70 +
.../weex/ui/action/GraphicActionLayout.java | 51 +
.../ui/action/GraphicActionMoveElement.java | 52 +
.../ui/action/GraphicActionRefreshFinish.java | 55 +
.../ui/action/GraphicActionRemoveElement.java | 56 +
.../ui/action/GraphicActionRemoveEvent.java | 49 +
.../ui/action/GraphicActionScrollToElement.java | 51 +
.../weex/ui/action/GraphicActionUpdateAttr.java | 52 +
.../ui/action/GraphicActionUpdateStyle.java | 134 +
.../taobao/weex/ui/action/GraphicPosition.java | 66 +
.../com/taobao/weex/ui/action/GraphicSize.java | 46 +
.../com/taobao/weex/ui/action/IExecutable.java | 25 +
.../weex/ui/animation/TransformParser.java | 25 +-
.../weex/ui/animation/WXAnimationBean.java | 12 +-
.../weex/ui/animation/WXAnimationModule.java | 27 +-
.../ui/component/AbstractEditComponent.java | 149 +-
.../weex/ui/component/ComponentUtils.java | 125 +-
.../com/taobao/weex/ui/component/Textarea.java | 41 +-
.../java/com/taobao/weex/ui/component/WXA.java | 25 +-
.../taobao/weex/ui/component/WXBaseRefresh.java | 6 +-
.../taobao/weex/ui/component/WXComponent.java | 1555 ++---
.../weex/ui/component/WXComponentFactory.java | 37 +-
.../weex/ui/component/WXComponentProp.java | 5 +-
.../com/taobao/weex/ui/component/WXDiv.java | 25 +-
.../com/taobao/weex/ui/component/WXEmbed.java | 64 +-
.../com/taobao/weex/ui/component/WXHeader.java | 12 +-
.../com/taobao/weex/ui/component/WXImage.java | 238 +-
.../taobao/weex/ui/component/WXIndicator.java | 47 +-
.../com/taobao/weex/ui/component/WXInput.java | 15 +-
.../com/taobao/weex/ui/component/WXLoading.java | 18 +-
.../weex/ui/component/WXLoadingIndicator.java | 7 +-
.../com/taobao/weex/ui/component/WXRefresh.java | 23 +-
.../taobao/weex/ui/component/WXScroller.java | 95 +-
.../com/taobao/weex/ui/component/WXSlider.java | 28 +-
.../weex/ui/component/WXSliderNeighbor.java | 10 +-
.../com/taobao/weex/ui/component/WXSwitch.java | 76 +-
.../com/taobao/weex/ui/component/WXText.java | 127 +-
.../taobao/weex/ui/component/WXVContainer.java | 182 +-
.../com/taobao/weex/ui/component/WXVideo.java | 18 +-
.../com/taobao/weex/ui/component/WXWeb.java | 18 +-
.../ui/component/basic/WXBasicComponent.java | 215 +
.../weex/ui/component/binding/Layouts.java | 135 +-
.../weex/ui/component/binding/Statements.java | 74 +-
.../component/helper/ScrollStartEndHelper.java | 15 +-
.../ui/component/helper/WXTimeInputHelper.java | 70 +-
.../ui/component/list/BasicListComponent.java | 305 +-
.../ui/component/list/GapItemDecoration.java | 52 +-
.../component/list/HorizontalListComponent.java | 6 +-
.../ui/component/list/SimpleListComponent.java | 6 +-
.../ui/component/list/StickyHeaderHelper.java | 46 +-
.../taobao/weex/ui/component/list/WXCell.java | 71 +-
.../weex/ui/component/list/WXListComponent.java | 250 +-
.../list/template/AsyncCellLoadTask.java | 2 +-
.../list/template/CellDataManager.java | 3 +-
.../component/list/template/TemplateCache.java | 2 +
.../list/template/TemplateStickyHelper.java | 14 +-
.../list/template/TemplateViewHolder.java | 32 +-
.../list/template/WXRecyclerTemplateList.java | 217 +-
.../pesudo/OnActivePseudoListener.java | 26 -
.../component/pesudo/OnActivePseudoListner.java | 26 +
.../pesudo/TouchActivePseudoListener.java | 12 +-
.../weex/ui/config/ConfigComponentHolder.java | 6 +-
.../weex/ui/config/ConfigModuleFactory.java | 1 -
.../com/taobao/weex/ui/flat/FlatComponent.java | 4 +-
.../com/taobao/weex/ui/flat/FlatGUIContext.java | 62 +-
.../taobao/weex/ui/flat/WidgetContainer.java | 15 +-
.../weex/ui/flat/widget/AndroidViewWidget.java | 14 +-
.../taobao/weex/ui/flat/widget/BaseWidget.java | 4 +-
.../taobao/weex/ui/flat/widget/TextWidget.java | 1 +
.../com/taobao/weex/ui/flat/widget/Widget.java | 10 +-
.../taobao/weex/ui/flat/widget/WidgetGroup.java | 4 +-
.../com/taobao/weex/ui/module/WXDomModule.java | 161 +
.../com/taobao/weex/ui/module/WXMetaModule.java | 10 +-
.../taobao/weex/ui/module/WXTimerModule.java | 57 +-
.../java/com/taobao/weex/ui/view/IWebView.java | 4 +-
.../taobao/weex/ui/view/WXCircleViewPager.java | 4 +-
.../com/taobao/weex/ui/view/WXImageView.java | 34 +-
.../com/taobao/weex/ui/view/WXScrollView.java | 8 +-
.../com/taobao/weex/ui/view/WXSwitchView.java | 35 -
.../com/taobao/weex/ui/view/WXTextView.java | 4 +-
.../com/taobao/weex/ui/view/WXVideoView.java | 8 +-
.../weex/ui/view/border/BorderCorner.java | 207 +-
.../weex/ui/view/border/BorderDrawable.java | 332 +-
.../taobao/weex/ui/view/border/BorderEdge.java | 82 +-
.../taobao/weex/ui/view/border/BorderStyle.java | 23 +-
.../taobao/weex/ui/view/border/BorderUtil.java | 53 +-
.../view/border/BorderWidthStyleColorType.java | 38 -
.../weex/ui/view/border/BottomLeftCorner.java | 77 +-
.../weex/ui/view/border/BottomRightCorner.java | 81 +-
.../weex/ui/view/border/TopLeftCorner.java | 74 +-
.../weex/ui/view/border/TopRightCorner.java | 77 +-
.../taobao/weex/ui/view/gesture/WXGesture.java | 38 +-
.../ui/view/gesture/WXGestureObservable.java | 4 +-
.../ui/view/refresh/core/WXRefreshView.java | 4 +-
.../ui/view/refresh/core/WXSwipeLayout.java | 40 +-
.../ui/view/refresh/wrapper/BaseBounceView.java | 51 +-
.../com/taobao/weex/utils/FunctionParser.java | 20 +-
.../com/taobao/weex/utils/ImageDrawable.java | 10 +-
.../taobao/weex/utils/SingleFunctionParser.java | 2 +-
.../taobao/weex/utils/StaticLayoutProxy.java | 8 +-
.../com/taobao/weex/utils/TypefaceUtil.java | 4 +-
.../java/com/taobao/weex/utils/WXDomUtils.java | 64 +-
.../com/taobao/weex/utils/WXExceptionUtils.java | 124 +-
.../java/com/taobao/weex/utils/WXJsonUtils.java | 37 -
.../java/com/taobao/weex/utils/WXLogUtils.java | 66 +-
.../taobao/weex/utils/WXReflectionUtils.java | 18 +-
.../com/taobao/weex/utils/WXResourceUtils.java | 106 +-
.../taobao/weex/utils/WXSoInstallMgrSdk.java | 63 +-
.../java/com/taobao/weex/utils/WXUtils.java | 135 +-
.../java/com/taobao/weex/utils/WXViewUtils.java | 37 +-
.../main/java/com/taobao/weex/wson/Wson.java | 820 ---
.../java/com/taobao/weex/WXSDKEngineTest.java | 7 -
.../java/com/taobao/weex/WXSDKInstanceTest.java | 1 -
.../weex/adapter/DefaultUriAdapterTest.java | 2 +-
.../taobao/weex/bridge/WXBridgeManagerTest.java | 10 +-
.../com/taobao/weex/bridge/WXBridgeTest.java | 5 +-
.../java/com/taobao/weex/dom/TestDomObject.java | 55 -
.../com/taobao/weex/dom/WXDomModuleTest.java | 131 -
.../com/taobao/weex/dom/WXDomObjectTest.java | 108 -
.../com/taobao/weex/dom/WXDomStatementTest.java | 9 +-
.../taobao/weex/dom/WXTextDomObjectTest.java | 5 +-
.../com/taobao/weex/dom/action/TestActions.java | 77 -
.../weex/dom/transition/WXTransitionTest.java | 96 -
.../java/com/taobao/weex/el/FailedCaseTest.java | 50 -
.../com/taobao/weex/el/IfStatementTest.java | 155 -
.../java/com/taobao/weex/el/ParserTest.java | 244 -
.../taobao/weex/http/WXStreamModuleTest.java | 15 +-
.../com/taobao/weex/ui/ComponentHolderTest.java | 3 -
.../taobao/weex/ui/WXRenderStatementTest.java | 4 +-
.../weex/ui/animation/TransformParserTest.java | 38 -
.../ui/animation/WXAnimationModuleTest.java | 5 +-
.../taobao/weex/ui/component/ComponentTest.java | 9 +-
.../weex/ui/component/EditComponentTest.java | 1 -
.../weex/ui/component/PriorityQueueTest.java | 56 -
.../taobao/weex/ui/component/TestComponent.java | 4 -
.../weex/ui/component/WXComponentTest.java | 2 +-
.../com/taobao/weex/ui/component/WXDivTest.java | 11 +-
.../taobao/weex/ui/component/WXEmbedTest.java | 6 +-
.../taobao/weex/ui/component/WXHeaderTest.java | 4 -
.../taobao/weex/ui/component/WXImageTest.java | 2 -
.../taobao/weex/ui/component/WXLoadingTest.java | 3 -
.../taobao/weex/ui/component/WXRefreshTest.java | 1 -
.../weex/ui/component/WXScrollerTest.java | 5 -
.../weex/ui/component/WXSliderNeighborTest.java | 1 -
.../taobao/weex/ui/component/WXSliderTest.java | 1 -
.../taobao/weex/ui/component/WXSwitchTest.java | 3 -
.../taobao/weex/ui/component/WXTextTest.java | 22 +-
.../taobao/weex/ui/component/WXVideoTest.java | 4 -
.../com/taobao/weex/ui/component/WXWebTest.java | 3 -
.../ui/component/binding/BindingValueTest.java | 65 -
.../ui/component/binding/StatementTest.java | 186 -
.../component/list/DefaultDragHelperTest.java | 3 -
.../ui/component/list/WXListComponentTest.java | 5 +-
.../weex/ui/module/WXModalUIModuleTest.java | 9 +-
.../weex/ui/module/WXTimerModuleTest.java | 45 +-
.../weex/ui/view/border/BorderDrawableTest.java | 1 -
.../weex/ui/view/gesture/WXGestureTest.java | 5 -
.../taobao/weex/utils/WXExceptionUtilsTest.java | 74 -
.../com/taobao/weex/utils/WXFileUtilsTest.java | 9 -
.../com/taobao/weex/utils/WXLogUtilsTest.java | 17 +-
.../weex/utils/WXReflectionUtilsTest.java | 9 -
.../java/com/taobao/weex/utils/WXUtilsTest.java | 3 +-
.../java/com/taobao/weex/wson/AnnoTest.java | 41 -
.../test/java/com/taobao/weex/wson/Person.java | 30 -
weex_core/.clang-format | 2 +
weex_core/.gitignore | 5 +
weex_core/CMakeLists.txt | 5 +
weex_core/Source/CMakeLists.txt | 91 +
weex_core/Source/IPC/Buffering/IPCBuffer.h | 13 +
weex_core/Source/IPC/CMakeLists.txt | 22 +
weex_core/Source/IPC/IPCArguments.h | 30 +
weex_core/Source/IPC/IPCByteArray.h | 8 +
weex_core/Source/IPC/IPCCheck.cpp | 17 +
weex_core/Source/IPC/IPCCheck.h | 16 +
weex_core/Source/IPC/IPCCommunicator.cpp | 363 ++
weex_core/Source/IPC/IPCCommunicator.h | 30 +
weex_core/Source/IPC/IPCException.cpp | 32 +
weex_core/Source/IPC/IPCException.h | 16 +
weex_core/Source/IPC/IPCFutexPageQueue.cpp | 191 +
weex_core/Source/IPC/IPCFutexPageQueue.h | 48 +
weex_core/Source/IPC/IPCHandler.cpp | 36 +
weex_core/Source/IPC/IPCHandler.h | 18 +
weex_core/Source/IPC/IPCListener.cpp | 60 +
weex_core/Source/IPC/IPCListener.h | 14 +
weex_core/Source/IPC/IPCLog.h | 12 +
weex_core/Source/IPC/IPCMessageJS.h | 41 +
weex_core/Source/IPC/IPCResult.cpp | 347 +
weex_core/Source/IPC/IPCResult.h | 34 +
weex_core/Source/IPC/IPCSender.cpp | 76 +
weex_core/Source/IPC/IPCSender.h | 15 +
weex_core/Source/IPC/IPCString.h | 7 +
weex_core/Source/IPC/IPCType.h | 29 +
.../Source/IPC/Serializing/IPCSerializer.cpp | 206 +
.../Source/IPC/Serializing/IPCSerializer.h | 26 +
weex_core/Source/IPC/ashmem.c | 100 +
weex_core/Source/IPC/ashmem.h | 46 +
weex_core/Source/IPC/futex.h | 109 +
weex_core/Source/__init__.py | 0
weex_core/Source/android/__init__.py | 0
weex_core/Source/android/base/base64/base64.cpp | 33 +
weex_core/Source/android/base/base64/base64.h | 9 +
.../android/base/base64/modp_base64/modp_b64.cc | 265 +
.../android/base/base64/modp_base64/modp_b64.h | 165 +
.../base/base64/modp_base64/modp_b64_data.h | 285 +
.../Source/android/base/jni/android_jni.cpp | 90 +
weex_core/Source/android/base/jni/android_jni.h | 45 +
.../Source/android/base/jni/scoped_java_ref.cpp | 57 +
.../Source/android/base/jni/scoped_java_ref.h | 104 +
weex_core/Source/android/base/log_utils.h | 37 +
.../android/base/string/scoped_jstring.cpp | 29 +
.../Source/android/base/string/scoped_jstring.h | 27 +
.../android/base/string/scoped_jstring_utf8.cpp | 20 +
.../android/base/string/scoped_jstring_utf8.h | 31 +
.../Source/android/base/string/string_utils.h | 132 +
.../android/bridge/impl/bridge_impl_android.cpp | 875 +++
.../android/bridge/impl/bridge_impl_android.h | 106 +
.../content_box_measurement_impl_android.cpp | 36 +
.../impl/content_box_measurement_impl_android.h | 23 +
.../bridge/impl/measure_mode_impl_android.cpp | 18 +
.../bridge/impl/measure_mode_impl_android.h | 15 +
.../bridge/impl/weexcore_impl_android.cpp | 443 ++
.../android/bridge/impl/weexcore_impl_android.h | 37 +
.../Source/android/jniprebuild/__init__.py | 0
.../android/jniprebuild/android_jar.classes | 98 +
weex_core/Source/android/jniprebuild/jni_files | 5 +
.../Source/android/jniprebuild/jni_generator.py | 1469 +++++
.../Source/android/jniprebuild/jni_load.cc | 24 +
.../jniheader/ContentBoxMeasurement_jni.h | 165 +
.../jniprebuild/jniheader/MeasureMode_jni.h | 85 +
.../jniheader/SystemMessageHandler_jni.h | 132 +
.../jniprebuild/jniheader/WXBridge_jni.h | 345 +
.../Source/android/jniprebuild/prebuild.sh | 13 +
.../jsengine/multiprocess/ExtendJSApi.cpp | 662 ++
.../android/jsengine/multiprocess/ExtendJSApi.h | 87 +
.../jsengine/multiprocess/WeexJSConnection.cpp | 411 ++
.../jsengine/multiprocess/WeexJSConnection.h | 25 +
.../android/jsengine/multiprocess/WeexProxy.cpp | 690 ++
.../android/jsengine/multiprocess/WeexProxy.h | 76 +
weex_core/Source/base/Compatible.cpp | 122 +
weex_core/Source/base/CoreConstants.h | 10 +
weex_core/Source/base/TimeUtils.h | 12 +
weex_core/Source/base/ViewUtils.h | 102 +
weex_core/Source/base/fpconv.cpp | 332 +
weex_core/Source/base/fpconv.h | 33 +
weex_core/Source/base/powers.h | 129 +
weex_core/Source/core/bridge/bridge.h | 81 +
.../Source/core/config/core_environment.cpp | 63 +
weex_core/Source/core/config/core_environment.h | 68 +
weex_core/Source/core/css/constants_name.h | 63 +
weex_core/Source/core/css/constants_value.h | 45 +
weex_core/Source/core/css/css_value_getter.cpp | 88 +
weex_core/Source/core/css/css_value_getter.h | 23 +
weex_core/Source/core/layout/flex_enum.h | 107 +
weex_core/Source/core/layout/layout.cpp | 1034 +++
weex_core/Source/core/layout/layout.h | 1073 +++
weex_core/Source/core/layout/style.cpp | 247 +
weex_core/Source/core/layout/style.h | 285 +
.../Source/core/moniter/render_performance.cpp | 32 +
.../Source/core/moniter/render_performance.h | 51 +
weex_core/Source/core/parser/dom_parser.cpp | 564 ++
weex_core/Source/core/parser/dom_parser.h | 129 +
.../Source/core/render/action/render_action.h | 20 +
.../render/action/render_action_add_element.cpp | 33 +
.../render/action/render_action_add_element.h | 31 +
.../render/action/render_action_add_event.cpp | 24 +
.../render/action/render_action_add_event.h | 22 +
.../render/action/render_action_createbody.cpp | 29 +
.../render/action/render_action_createbody.h | 27 +
.../action/render_action_createfinish.cpp | 19 +
.../render/action/render_action_createfinish.h | 20 +
.../core/render/action/render_action_layout.cpp | 33 +
.../core/render/action/render_action_layout.h | 31 +
.../action/render_action_move_element.cpp | 22 +
.../render/action/render_action_move_element.h | 24 +
.../action/render_action_remove_element.cpp | 19 +
.../action/render_action_remove_element.h | 20 +
.../action/render_action_remove_event.cpp | 24 +
.../render/action/render_action_remove_event.h | 22 +
.../render/action/render_action_update_attr.cpp | 22 +
.../render/action/render_action_update_attr.h | 23 +
.../action/render_action_update_style.cpp | 29 +
.../render/action/render_action_update_style.h | 30 +
.../core/render/manager/render_manager.cpp | 196 +
.../Source/core/render/manager/render_manager.h | 73 +
.../core/render/node/factory/i_render_factory.h | 13 +
.../core/render/node/factory/i_render_object.h | 42 +
.../render/node/factory/render_appbar_factory.h | 18 +
.../render/node/factory/render_cell_factory.h | 17 +
.../core/render/node/factory/render_creator.cpp | 53 +
.../core/render/node/factory/render_creator.h | 45 +
.../node/factory/render_indicator_factory.h | 18 +
.../render/node/factory/render_input_factory.h | 18 +
.../render/node/factory/render_list_factory.h | 18 +
.../render/node/factory/render_mask_factory.h | 18 +
.../node/factory/render_scroller_factory.h | 18 +
.../render/node/factory/render_switch_factory.h | 18 +
.../render/node/factory/render_text_factory.h | 18 +
.../node/factory/render_textarea_factory.h | 18 +
.../core/render/node/factory/render_type.h | 23 +
.../render/node/factory/simple_render_factory.h | 19 +
.../Source/core/render/node/render_appbar.h | 68 +
weex_core/Source/core/render/node/render_cell.h | 12 +
.../Source/core/render/node/render_indicator.h | 12 +
.../Source/core/render/node/render_input.h | 12 +
weex_core/Source/core/render/node/render_list.h | 217 +
weex_core/Source/core/render/node/render_mask.h | 37 +
.../Source/core/render/node/render_object.cpp | 139 +
.../Source/core/render/node/render_object.h | 394 ++
.../Source/core/render/node/render_scroller.h | 47 +
.../Source/core/render/node/render_switch.h | 12 +
weex_core/Source/core/render/node/render_text.h | 26 +
.../Source/core/render/node/render_textarea.h | 12 +
.../Source/core/render/page/render_page.cpp | 631 ++
weex_core/Source/core/render/page/render_page.h | 180 +
weex_core/Source/rapidjson/allocators.h | 271 +
weex_core/Source/rapidjson/document.h | 2618 ++++++++
weex_core/Source/rapidjson/encodedstream.h | 299 +
weex_core/Source/rapidjson/encodings.h | 716 +++
weex_core/Source/rapidjson/error/en.h | 74 +
weex_core/Source/rapidjson/error/error.h | 161 +
weex_core/Source/rapidjson/filereadstream.h | 99 +
weex_core/Source/rapidjson/filewritestream.h | 104 +
weex_core/Source/rapidjson/fwd.h | 151 +
.../Source/rapidjson/internal/biginteger.h | 290 +
weex_core/Source/rapidjson/internal/diyfp.h | 258 +
weex_core/Source/rapidjson/internal/dtoa.h | 245 +
weex_core/Source/rapidjson/internal/ieee754.h | 78 +
weex_core/Source/rapidjson/internal/itoa.h | 304 +
weex_core/Source/rapidjson/internal/meta.h | 181 +
weex_core/Source/rapidjson/internal/pow10.h | 55 +
weex_core/Source/rapidjson/internal/regex.h | 734 +++
weex_core/Source/rapidjson/internal/stack.h | 231 +
weex_core/Source/rapidjson/internal/strfunc.h | 69 +
weex_core/Source/rapidjson/internal/strtod.h | 269 +
weex_core/Source/rapidjson/internal/swap.h | 46 +
weex_core/Source/rapidjson/istreamwrapper.h | 115 +
weex_core/Source/rapidjson/memorybuffer.h | 70 +
weex_core/Source/rapidjson/memorystream.h | 71 +
.../Source/rapidjson/msinttypes/inttypes.h | 316 +
weex_core/Source/rapidjson/msinttypes/stdint.h | 300 +
weex_core/Source/rapidjson/ostreamwrapper.h | 81 +
weex_core/Source/rapidjson/pointer.h | 1358 ++++
weex_core/Source/rapidjson/prettywriter.h | 277 +
weex_core/Source/rapidjson/rapidjson.h | 628 ++
weex_core/Source/rapidjson/reader.h | 2221 +++++++
weex_core/Source/rapidjson/schema.h | 2026 ++++++
weex_core/Source/rapidjson/stream.h | 179 +
weex_core/Source/rapidjson/stringbuffer.h | 121 +
weex_core/Source/rapidjson/writer.h | 711 ++
weex_core/Source/weexjsc_version_script.txt | 4 +
weex_core/__init__.py | 0
weex_core/tools/cpplint.py | 6086 ++++++++++++++++++
525 files changed, 48301 insertions(+), 17659 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/commons/build.gradle
----------------------------------------------------------------------
diff --git a/android/commons/build.gradle b/android/commons/build.gradle
index 9f5c82c..cbf02b0 100644
--- a/android/commons/build.gradle
+++ b/android/commons/build.gradle
@@ -2,6 +2,8 @@
apply plugin: 'com.android.library'
android {
+
+ publishNonDefault true
compileSdkVersion project.compileSdkVersion
buildToolsVersion project.buildToolsVersion
resourcePrefix "weexcomm"
@@ -27,6 +29,12 @@ android {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
+
+ debug {
+ jniDebuggable true
+ debuggable true
+
+ }
}
}
@@ -34,7 +42,9 @@ dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile "com.android.support:support-v4:${project.supportLibVersion}"
compile "com.android.support:appcompat-v7:${project.supportLibVersion}"
- compile project(':weex_sdk')
+ // compile project(':weex_sdk')
+ debugCompile project(path: ':weex_sdk', configuration: 'debug')
+ releaseCompile project(path: ':weex_sdk', configuration: 'release')
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.facebook.fresco:fresco:0.10.0'
compile 'com.taobao.android.weex_inspection:protocol:1.1.4.1'
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/commons/src/main/java/com/alibaba/weex/commons/AbstractWeexActivity.java
----------------------------------------------------------------------
diff --git a/android/commons/src/main/java/com/alibaba/weex/commons/AbstractWeexActivity.java b/android/commons/src/main/java/com/alibaba/weex/commons/AbstractWeexActivity.java
index 3627b8c..8854ce2 100644
--- a/android/commons/src/main/java/com/alibaba/weex/commons/AbstractWeexActivity.java
+++ b/android/commons/src/main/java/com/alibaba/weex/commons/AbstractWeexActivity.java
@@ -124,8 +124,6 @@ public abstract class AbstractWeexActivity extends AppCompatActivity implements
template,
options,
jsonInitData,
- ScreenUtil.getDisplayWidth(this),
- ScreenUtil.getDisplayHeight(this),
WXRenderStrategy.APPEND_ASYNC);
}
@@ -143,8 +141,6 @@ public abstract class AbstractWeexActivity extends AppCompatActivity implements
url,
options,
jsonInitData,
- ScreenUtil.getDisplayWidth(this),
- ScreenUtil.getDisplayHeight(this),
WXRenderStrategy.APPEND_ASYNC);
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/commons/src/main/java/com/alibaba/weex/commons/adapter/FrescoImageComponent.java
----------------------------------------------------------------------
diff --git a/android/commons/src/main/java/com/alibaba/weex/commons/adapter/FrescoImageComponent.java b/android/commons/src/main/java/com/alibaba/weex/commons/adapter/FrescoImageComponent.java
index 109302f..56e9a25 100644
--- a/android/commons/src/main/java/com/alibaba/weex/commons/adapter/FrescoImageComponent.java
+++ b/android/commons/src/main/java/com/alibaba/weex/commons/adapter/FrescoImageComponent.java
@@ -22,7 +22,7 @@ import android.content.Context;
import android.support.annotation.NonNull;
import android.widget.ImageView;
import com.taobao.weex.WXSDKInstance;
-import com.taobao.weex.dom.WXDomObject;
+import com.taobao.weex.ui.action.BasicComponentData;
import com.taobao.weex.ui.component.WXImage;
import com.taobao.weex.ui.component.WXVContainer;
@@ -31,8 +31,8 @@ import com.taobao.weex.ui.component.WXVContainer;
*/
public class FrescoImageComponent extends WXImage {
- public FrescoImageComponent(WXSDKInstance instance, WXDomObject node, WXVContainer parent) {
- super(instance, node, parent);
+ public FrescoImageComponent(WXSDKInstance instance, WXVContainer parent, BasicComponentData basicComponentData) {
+ super(instance, parent, basicComponentData);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/commons/src/main/java/com/alibaba/weex/commons/adapter/ImageAdapter.java
----------------------------------------------------------------------
diff --git a/android/commons/src/main/java/com/alibaba/weex/commons/adapter/ImageAdapter.java b/android/commons/src/main/java/com/alibaba/weex/commons/adapter/ImageAdapter.java
index 5a7a311..c6f2e64 100644
--- a/android/commons/src/main/java/com/alibaba/weex/commons/adapter/ImageAdapter.java
+++ b/android/commons/src/main/java/com/alibaba/weex/commons/adapter/ImageAdapter.java
@@ -54,10 +54,6 @@ public class ImageAdapter implements IWXImgLoaderAdapter {
if (url.startsWith("//")) {
temp = "http:" + url;
}
- if (view.getLayoutParams().width <= 0 || view.getLayoutParams().height <= 0) {
- return;
- }
-
if(!TextUtils.isEmpty(strategy.placeHolder)){
Picasso.Builder builder=new Picasso.Builder(WXEnvironment.getApplication());
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/playground/app/build.gradle
----------------------------------------------------------------------
diff --git a/android/playground/app/build.gradle b/android/playground/app/build.gradle
index 422dd25..f8b870c 100755
--- a/android/playground/app/build.gradle
+++ b/android/playground/app/build.gradle
@@ -11,9 +11,9 @@ android {
versionCode 17
versionName "0.18.0-beta-3"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ multiDexEnabled true
ndk{
- abiFilters "x86"
- abiFilters "armeabi"
+ abiFilters "armeabi","x86"
}
}
applicationVariants.all { variant ->
@@ -35,7 +35,8 @@ android {
}
buildTypes {
debug {
- testCoverageEnabled false
+ jniDebuggable true
+ debuggable true
}
}
sourceSets {
@@ -59,6 +60,7 @@ android {
dexOptions {
preDexLibraries false
}
+
}
@@ -66,6 +68,8 @@ dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile "com.android.support:support-annotations:${project.supportLibVersion}"
androidTestCompile 'junit:junit:4.12'
+ androidTestCompile 'org.awaitility:awaitility:3.0.0'
+ androidTestCompile 'org.awaitility:awaitility-proxy:3.0.0'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
@@ -79,7 +83,12 @@ dependencies {
androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
/*source dependency*/
- compile project(':weex_sdk')
+
+ debugCompile project(path: ':commons', configuration: 'debug')
+ releaseCompile project(path: ':commons', configuration: 'release')
+
+ debugCompile project(path: ':weex_sdk', configuration: 'debug')
+ releaseCompile project(path: ':weex_sdk', configuration: 'release')
//https://github.com/weexteam/weex-analyzer-android
//Weex-Analyzer provides several convenient tools such as Memory Monitor
@@ -87,7 +96,7 @@ dependencies {
// set WXAnalyzerDelegate#DEBUG==true to enable it
debugCompile 'com.taobao.android:weex_analyzer:0.1.0.5'
- compile project(':commons')
+
compile 'com.taobao.android:dexposed:0.1.8'
compile 'com.loopj.android:android-async-http:1.4.9@aar'
compile 'com.facebook.fresco:fresco:0.12.0+'
@@ -104,5 +113,6 @@ dependencies {
compile 'com.jakewharton.scalpel:scalpel:1.1.2'
compile 'com.taobao.android.weex_inspection:urlconnection_interceptor:1.0.0'
compile 'com.android.support.test.espresso:espresso-idling-resource:2.2.2'
- compile 'com.taobao.android:weex_inspector:0.13.5-multicontext'
-}
\ No newline at end of file
+ compile 'com.taobao.android:weex_inspector:0.11.0'
+ //compile project(":weex_inspector")
+}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/playground/app/src/androidTest/java/com/alibaba/weex/benchmark/BenchmarkActivityTestRule.java
----------------------------------------------------------------------
diff --git a/android/playground/app/src/androidTest/java/com/alibaba/weex/benchmark/BenchmarkActivityTestRule.java b/android/playground/app/src/androidTest/java/com/alibaba/weex/benchmark/BenchmarkActivityTestRule.java
deleted file mode 100644
index 492b4c4..0000000
--- a/android/playground/app/src/androidTest/java/com/alibaba/weex/benchmark/BenchmarkActivityTestRule.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package com.alibaba.weex.benchmark;
-
-import android.support.test.espresso.Espresso;
-import android.support.test.espresso.idling.CountingIdlingResource;
-import android.support.test.rule.ActivityTestRule;
-
-import com.alibaba.weex.BenchmarkActivity;
-
-class BenchmarkActivityTestRule extends ActivityTestRule<BenchmarkActivity> {
-
- BenchmarkActivityTestRule(Class<BenchmarkActivity> activityClass) {
- this(activityClass,true);
- }
-
- BenchmarkActivityTestRule(Class<BenchmarkActivity> activityClass,boolean launchActivity) {
- super(activityClass,false,launchActivity);
- }
-
- @Override
- protected void beforeActivityLaunched() {
- if(BenchmarkActivity.countingIdlingResource==null) {
- BenchmarkActivity.countingIdlingResource = new CountingIdlingResource
- ("TC_Monitor_List_With_Append_Tree");
- }
- Espresso.registerIdlingResources(BenchmarkActivity.countingIdlingResource);
- }
-
- @Override
- protected void afterActivityFinished() {
- super.afterActivityLaunched();
- Espresso.unregisterIdlingResources(BenchmarkActivity.countingIdlingResource);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/playground/app/src/androidTest/java/com/alibaba/weex/benchmark/BenchmarkTest.java
----------------------------------------------------------------------
diff --git a/android/playground/app/src/androidTest/java/com/alibaba/weex/benchmark/BenchmarkTest.java b/android/playground/app/src/androidTest/java/com/alibaba/weex/benchmark/BenchmarkTest.java
index 2c5f8e7..27a90f2 100644
--- a/android/playground/app/src/androidTest/java/com/alibaba/weex/benchmark/BenchmarkTest.java
+++ b/android/playground/app/src/androidTest/java/com/alibaba/weex/benchmark/BenchmarkTest.java
@@ -22,10 +22,12 @@ package com.alibaba.weex.benchmark;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.matcher.ViewMatchers.withClassName;
import static org.hamcrest.MatcherAssert.assertThat;
-
+import static org.awaitility.Awaitility.await;
+import static org.hamcrest.MatcherAssert.assertThat;
+import android.support.annotation.NonNull;
import android.support.test.InstrumentationRegistry;
-import android.support.test.espresso.contrib.RecyclerViewActions;
import android.support.test.filters.SdkSuppress;
+import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;
import android.support.test.uiautomator.By;
import android.support.test.uiautomator.Direction;
@@ -35,7 +37,8 @@ import android.support.test.uiautomator.Until;
import android.text.TextUtils;
import android.util.Log;
import com.alibaba.weex.BenchmarkActivity;
-import com.taobao.weex.ui.view.listview.WXRecyclerView;
+import com.taobao.weex.WXEnvironment;
+import com.taobao.weex.common.WXPerformance;
import com.taobao.weex.utils.WXLogUtils;
import java.io.BufferedReader;
import java.io.IOException;
@@ -43,6 +46,7 @@ import java.io.StringReader;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
+import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit;
import org.hamcrest.Matchers;
import org.junit.AfterClass;
@@ -55,14 +59,15 @@ import org.junit.runner.RunWith;
public class BenchmarkTest {
private static final String TAG = "benchmark";
- private static final int TIMES = 20;
+ private static final int TIMES = 50;
private static final int FLING_SPEED = 10000;
private static final int SCROLL_SPEED = 5000;
private static final int FRAMES = 120;
private static final long WAIT_TIMEOUT = 10000;
private static final float FPS = 30;
- private static final float FIRST_SCREEN_RENDER_TIME = 600F;
+ private static final float FIRST_SCREEN_RENDER_TIME = 5000F;
private static List<Long> firstScreenRenderTime = new LinkedList<>();
+ private static List<Long> firstScreenLayoutTime = new LinkedList<>();
private static List<Long> flingFrameSeconds = new LinkedList<>();
private static List<Long> scrollFrameSeconds = new LinkedList<>();
private static final String DUMP_START = "QueueBufferDuration,\n";
@@ -70,36 +75,47 @@ public class BenchmarkTest {
private static final String DUMP_COMMAND = "dumpsys gfxinfo com.alibaba.weex framestats reset";
@Rule
- public BenchmarkActivityTestRule mActivityRule = new BenchmarkActivityTestRule(
- BenchmarkActivity.class);
+ public ActivityTestRule<BenchmarkActivity> mActivityRule = new ActivityTestRule(BenchmarkActivity.class);
@Rule
public RepeatRule repeatRule = new RepeatRule();
private UiDevice mUiDevice;
@Before
public void init() {
+ WXEnvironment.isPerf = true;
mUiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
}
@Test
public void testFirstScreenPerformance() {
List<Long> localTotalTime = new ArrayList<>(TIMES);
+ List<Long> localLayoutTime = new ArrayList<>(TIMES);
for (int i = 0; i < TIMES; i++) {
- long currentTime = calcTime();
+ WXPerformance performance = fetchPerformance();
+ long currentTime = performance.screenRenderTime;
+ long layoutTime = performance.cssLayoutTime;
localTotalTime.add(currentTime);
+ localLayoutTime.add(layoutTime);
Log.d(TAG, "FIRST_SCREEN_RENDER_TIME (activity not kill) " + currentTime + "ms");
+ Log.d(TAG, "FIRST_SCREEN_LAYOUT_TIME (activity not kill) " + layoutTime + "ms");
}
- BoxPlot boxPlot = new BoxPlot(localTotalTime);
- Log.i(TAG, "Average firstScreenRenderTime (activity not kill) " + boxPlot.draw());
- assertThat(boxPlot.getAverage(), Matchers.lessThan(FIRST_SCREEN_RENDER_TIME));
+ BoxPlot render = new BoxPlot(localTotalTime);
+ BoxPlot layout = new BoxPlot(localLayoutTime);
+ Log.i(TAG, "Average firstScreenRenderTime (activity not kill) " + render.draw());
+ Log.i(TAG, "Average firstScreenLayoutTime (activity not kill) " + layout.draw());
+ assertThat(render.getAverage(), Matchers.lessThan(FIRST_SCREEN_RENDER_TIME));
}
@Repeat(TIMES)
@Test
public void testFirstFirstScreenPerformance() {
- long currentTime = calcTime();
+ WXPerformance performance = fetchPerformance();
+ long currentTime = performance.screenRenderTime;
+ long layoutTime = performance.cssLayoutTime;
firstScreenRenderTime.add(currentTime);
+ firstScreenLayoutTime.add(layoutTime);
Log.d(TAG, "FIRST_SCREEN_RENDER_TIME (activity killed) " + currentTime + " ms");
+ Log.d(TAG, "FIRST_SCREEN_Layout_TIME (activity killed) " + layoutTime + " ms");
}
@Repeat(TIMES)
@@ -132,18 +148,22 @@ public class BenchmarkTest {
BoxPlot boxPlot = new BoxPlot(firstScreenRenderTime);
Log.i(TAG, "Average firstScreenRenderTime (activity killed) " + boxPlot.draw());
assertThat(boxPlot.getAverage(), Matchers.lessThan(FIRST_SCREEN_RENDER_TIME));
- BoxPlot flingPlot = new BoxPlot(flingFrameSeconds);
- Log.i(TAG, "Average Fling FPS : " + flingPlot.draw());
- assertThat(1000 / flingPlot.getMedian(), Matchers.greaterThan(FPS));
- BoxPlot scrollPlot = new BoxPlot(scrollFrameSeconds);
- Log.i(TAG, "Average Scroll FPS : " + scrollPlot.draw());
- assertThat(1000 / scrollPlot.getMedian(), Matchers.greaterThan(FPS));
+ BoxPlot layout = new BoxPlot(firstScreenLayoutTime);
+ Log.i(TAG, "Average firstScreenLayoutTime (activity killed) " + layout.draw());
+ if (!flingFrameSeconds.isEmpty()) {
+ BoxPlot flingPlot = new BoxPlot(flingFrameSeconds);
+ Log.i(TAG, "Average Fling FPS : " + flingPlot.draw());
+ assertThat(1000 / flingPlot.getMedian(), Matchers.greaterThan(FPS));
+ }
+ if (!scrollFrameSeconds.isEmpty()) {
+ BoxPlot scrollPlot = new BoxPlot(scrollFrameSeconds);
+ Log.i(TAG, "Average Scroll FPS : " + scrollPlot.draw());
+ assertThat(1000 / scrollPlot.getMedian(), Matchers.greaterThan(FPS));
+ }
}
private UiObject2 loadPageForFPS() {
- BenchmarkActivity benchmarkActivity = mActivityRule.getActivity();
- benchmarkActivity.loadWeexPage();
- onView(withClassName(Matchers.is(WXRecyclerView.class.getName()))).perform(RecyclerViewActions.scrollToPosition(0));
+ BenchmarkActivity benchmarkActivity = loadWeexPage();
return mUiDevice.wait(Until.findObject(By.desc(BenchmarkActivity.ROOT)), WAIT_TIMEOUT);
}
@@ -153,13 +173,10 @@ public class BenchmarkTest {
String[] columns;
long timeStart, timeEnd, duration;
String result = mUiDevice.executeShellCommand(DUMP_COMMAND);
- //histogramGfxInfo(result);
result = result.substring(result.indexOf(DUMP_START), result.lastIndexOf(DUMP_END));
result = result.substring(DUMP_START.length());
BufferedReader bufferedReader = new BufferedReader(new StringReader(result));
List<Long> list = createList(bufferedReader);
- //Collections.sort(list);
- //Log.d(TAG, list.toString());
container.addAll(list);
BoxPlot boxPlot = new BoxPlot(list);
boxPlot.draw();
@@ -195,34 +212,21 @@ public class BenchmarkTest {
(RecyclerViewActions.scrollToPosition(0));
return benchmarkActivity.getWXInstance().getWXPerformance().screenRenderTime;
}
-
-/* private void histogramGfxInfo(String result) {
- try {
- String start = "HISTOGRAM: ";
- result = result.substring(result.indexOf(start));
- result = result.substring(start.length());
- BufferedReader bufferedReader = new BufferedReader(new StringReader(result));
- result = bufferedReader.readLine();
- List<Long> list = transformToLong(result.split("\\s"));
- Log.d(TAG, list.toString());
- } catch (IOException e) {
- WXLogUtils.e(TAG, WXLogUtils.getStackTrace(e));
- }
+
+ private WXPerformance fetchPerformance() {
+ return loadWeexPage().getWXInstance().getWXPerformance();
}
- private List<Long> transformToLong(String[] string) {
- List<Long> array = new LinkedList<>();
- int count;
- long value;
- for (String item : string) {
- value = Long.parseLong(item.substring(0, item.indexOf("ms")));
- if (value > 0) {
- count = parseInt(item.substring(item.indexOf('=') + 1));
- for (int i = 0; i < count; i++) {
- array.add(value);
- }
+ @NonNull
+ private BenchmarkActivity loadWeexPage() {
+ final BenchmarkActivity benchmarkActivity = mActivityRule.getActivity();
+ benchmarkActivity.loadWeexPage();
+ await().atMost(WAIT_TIMEOUT, TimeUnit.MILLISECONDS).until(new Callable<Boolean>() {
+ @Override
+ public Boolean call() throws Exception {
+ return benchmarkActivity.isRenderFinish();
}
- }
- return array;
- }*/
+ });
+ return benchmarkActivity;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/playground/app/src/androidTest/java/com/alibaba/weex/benchmark/WeexNativeCompareTest.java
----------------------------------------------------------------------
diff --git a/android/playground/app/src/androidTest/java/com/alibaba/weex/benchmark/WeexNativeCompareTest.java b/android/playground/app/src/androidTest/java/com/alibaba/weex/benchmark/WeexNativeCompareTest.java
index bd57366..31085de 100644
--- a/android/playground/app/src/androidTest/java/com/alibaba/weex/benchmark/WeexNativeCompareTest.java
+++ b/android/playground/app/src/androidTest/java/com/alibaba/weex/benchmark/WeexNativeCompareTest.java
@@ -19,33 +19,31 @@
package com.alibaba.weex.benchmark;
+import static android.support.test.espresso.Espresso.onView;
+import static android.support.test.espresso.matcher.ViewMatchers.withClassName;
+
import android.support.test.InstrumentationRegistry;
import android.support.test.espresso.action.ViewActions;
+import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;
import android.support.test.uiautomator.UiDevice;
import android.text.TextUtils;
import android.util.Log;
import android.widget.TextView;
-
import com.alibaba.weex.BenchmarkActivity;
import com.taobao.weex.ui.view.WXFrameLayout;
import com.taobao.weex.utils.WXLogUtils;
-
-import org.hamcrest.Matchers;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
import java.io.BufferedReader;
import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.matcher.ViewMatchers.withClassName;
+import org.hamcrest.Matchers;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
public class WeexNativeCompareTest {
@@ -60,7 +58,7 @@ public class WeexNativeCompareTest {
private static final String DUMP_COMMAND = "dumpsys gfxinfo com.alibaba.weex framestats reset";
@Rule
- public BenchmarkActivityTestRule mActivityRule = new BenchmarkActivityTestRule(
+ public ActivityTestRule<BenchmarkActivity> mActivityRule = new ActivityTestRule(
BenchmarkActivity.class);
@Rule
public RepeatRule repeatRule = new RepeatRule();
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/playground/app/src/androidTest/java/com/alibaba/weex/uitest/WeexUiTestCaseTcElementOpt.java
----------------------------------------------------------------------
diff --git a/android/playground/app/src/androidTest/java/com/alibaba/weex/uitest/WeexUiTestCaseTcElementOpt.java b/android/playground/app/src/androidTest/java/com/alibaba/weex/uitest/WeexUiTestCaseTcElementOpt.java
index 34fa40e..c020fa5 100644
--- a/android/playground/app/src/androidTest/java/com/alibaba/weex/uitest/WeexUiTestCaseTcElementOpt.java
+++ b/android/playground/app/src/androidTest/java/com/alibaba/weex/uitest/WeexUiTestCaseTcElementOpt.java
@@ -330,9 +330,9 @@ public class WeexUiTestCaseTcElementOpt extends ActivityInstrumentationTestCase2
// screenShot("TC_Event_ElementOpt_04_finish");
// Log.e(TAG, "TC_Event_ElementOpt_04_finish");
}
- if(childValue.equals("点击我,addEvent")){
+ if(childValue.equals("点击我,applyEvent")){
- Log.e(TAG, "点击我,addEvent find");
+ Log.e(TAG, "点击我,applyEvent find");
final View wenbenClickAndThenAddText1 = child;
mInstrumentation.runOnMainSync(new Runnable() {
@Override
@@ -343,7 +343,7 @@ public class WeexUiTestCaseTcElementOpt extends ActivityInstrumentationTestCase2
wenbenClickAndThenAddText1.requestFocus();
wenbenClickAndThenAddText1.performClick();
- Log.e(TAG, "点击我,addEvent click 1!!");
+ Log.e(TAG, "点击我,applyEvent click 1!!");
}
});
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/playground/app/src/main/java/com/alibaba/weex/BenchmarkActivity.java
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/java/com/alibaba/weex/BenchmarkActivity.java b/android/playground/app/src/main/java/com/alibaba/weex/BenchmarkActivity.java
index 63e0ee5..8e7db00 100644
--- a/android/playground/app/src/main/java/com/alibaba/weex/BenchmarkActivity.java
+++ b/android/playground/app/src/main/java/com/alibaba/weex/BenchmarkActivity.java
@@ -45,8 +45,7 @@ public class BenchmarkActivity extends AppCompatActivity implements IWXRenderLis
public final static String ROOT = "root";
private final static String TAG = "WEEX";
private final static String URL =
- "http://h5.waptest.taobao.com/app/weextc031/build/TC_Monitor_List_WithAppendTree.js";
- public static CountingIdlingResource countingIdlingResource;
+ "http://h5.m.taobao.com/js/src/weexlist.js";
private WXSDKInstance mInstance;
private LinearLayout root;
private long startTime;
@@ -135,10 +134,12 @@ public class BenchmarkActivity extends AppCompatActivity implements IWXRenderLis
@Override
public void onRenderSuccess(WXSDKInstance instance, int width, int height) {
- if (countingIdlingResource != null) {
- countingIdlingResource.decrement();
- }
- perfEnd = true;
+ root.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ perfEnd = true;
+ }
+ }, 1000);
}
@Override
@@ -151,12 +152,17 @@ public class BenchmarkActivity extends AppCompatActivity implements IWXRenderLis
}
+ public boolean isRenderFinish(){
+ return perfEnd;
+ }
+
public WXSDKInstance getWXInstance() {
return mInstance;
}
public void loadWeexPage(final boolean weex) {
isWeex=weex;
+ perfEnd = false;
runOnUiThread(new Runnable() {
@Override
public void run() {
@@ -168,9 +174,6 @@ public class BenchmarkActivity extends AppCompatActivity implements IWXRenderLis
Map<String, Object> options = new HashMap<>();
options.put(WXSDKInstance.BUNDLE_URL, "file://assets/hello_weex.js");
mInstance.registerRenderListener(BenchmarkActivity.this);
- if (countingIdlingResource != null) {
- countingIdlingResource.increment();
- }
perfStart = true;
Log.v(TAG, "Start: " + startTime);
startTime = System.currentTimeMillis();
@@ -178,8 +181,6 @@ public class BenchmarkActivity extends AppCompatActivity implements IWXRenderLis
WXFileUtils.loadAsset("hello.js", BenchmarkActivity.this),
options,
null,
- root.getWidth(),
- root.getHeight(),
WXRenderStrategy.APPEND_ASYNC);
} else {
root.removeAllViews();
@@ -196,6 +197,7 @@ public class BenchmarkActivity extends AppCompatActivity implements IWXRenderLis
}
public void loadWeexPage(final String url) {
+ perfEnd = false;
runOnUiThread(new Runnable() {
@Override
public void run() {
@@ -206,16 +208,11 @@ public class BenchmarkActivity extends AppCompatActivity implements IWXRenderLis
Map<String, Object> options = new HashMap<>();
options.put(WXSDKInstance.BUNDLE_URL, url);
mInstance.registerRenderListener(BenchmarkActivity.this);
- if (countingIdlingResource != null) {
- countingIdlingResource.increment();
- }
mInstance.renderByUrl(
TAG,
url,
options,
null,
- root.getWidth(),
- root.getHeight(),
WXRenderStrategy.APPEND_ASYNC);
}
});
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/playground/app/src/main/java/com/alibaba/weex/WXApplication.java
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/java/com/alibaba/weex/WXApplication.java b/android/playground/app/src/main/java/com/alibaba/weex/WXApplication.java
index e41c5cb..35fd36a 100644
--- a/android/playground/app/src/main/java/com/alibaba/weex/WXApplication.java
+++ b/android/playground/app/src/main/java/com/alibaba/weex/WXApplication.java
@@ -31,7 +31,6 @@ import com.alibaba.weex.extend.component.RichText;
import com.alibaba.weex.extend.component.WXComponentSyncTest;
import com.alibaba.weex.extend.component.WXMask;
import com.alibaba.weex.extend.component.WXParallax;
-import com.alibaba.weex.extend.component.dom.WXMaskDomObject;
import com.alibaba.weex.extend.module.GeolocationModule;
import com.alibaba.weex.extend.module.MyModule;
import com.alibaba.weex.extend.module.RenderModule;
@@ -91,8 +90,6 @@ public class WXApplication extends Application {
WXSDKEngine.registerModule("syncTest", SyncTestModule.class);
WXSDKEngine.registerComponent("mask",WXMask.class);
- WXSDKEngine.registerDomObject("mask", WXMaskDomObject.class);
-
WXSDKEngine.registerModule("myModule", MyModule.class);
WXSDKEngine.registerModule("geolocation", GeolocationModule.class);
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/playground/app/src/main/java/com/alibaba/weex/WXPageActivity.java
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/java/com/alibaba/weex/WXPageActivity.java b/android/playground/app/src/main/java/com/alibaba/weex/WXPageActivity.java
index 0c18d2a..3169fc8 100644
--- a/android/playground/app/src/main/java/com/alibaba/weex/WXPageActivity.java
+++ b/android/playground/app/src/main/java/com/alibaba/weex/WXPageActivity.java
@@ -47,7 +47,6 @@ import android.widget.Toast;
import com.alibaba.fastjson.JSON;
import com.alibaba.weex.commons.WXAnalyzerDelegate;
-import com.alibaba.weex.commons.util.ScreenUtil;
import com.alibaba.weex.constants.Constants;
import com.alibaba.weex.https.HotRefreshManager;
import com.alibaba.weex.https.WXHttpManager;
@@ -62,7 +61,6 @@ import com.taobao.weex.appfram.navigator.IActivityNavBarSetter;
import com.taobao.weex.bridge.WXBridgeManager;
import com.taobao.weex.common.IWXDebugProxy;
import com.taobao.weex.common.WXRenderStrategy;
-import com.taobao.weex.dom.ImmutableDomObject;
import com.taobao.weex.ui.component.NestedContainer;
import com.taobao.weex.ui.component.WXComponent;
import com.taobao.weex.ui.component.WXVContainer;
@@ -232,14 +230,13 @@ public class WXPageActivity extends WXBaseActivity implements IWXRenderListener,
}
RenderContainer renderContainer = new RenderContainer(this);
- mContainer.addView(renderContainer);
-
mInstance = new WXSDKInstance(this);
mInstance.setRenderContainer(renderContainer);
mInstance.registerRenderListener(this);
mInstance.setNestedInstanceInterceptor(this);
mInstance.setBundleUrl(url);
mInstance.setTrackComponent(true);
+ mContainer.addView(renderContainer);
WXHttpTask httpTask = new WXHttpTask();
httpTask.url = url;
@@ -250,7 +247,7 @@ public class WXPageActivity extends WXBaseActivity implements IWXRenderListener,
Log.i(TAG, "into--[http:onSuccess] url:" + url);
try {
mConfigMap.put("bundleUrl", url);
- mInstance.render(TAG, new String(task.response.data, "utf-8"), mConfigMap, null, ScreenUtil.getDisplayWidth(WXPageActivity.this), ScreenUtil.getDisplayHeight(WXPageActivity.this), WXRenderStrategy.APPEND_ASYNC);
+ mInstance.render(TAG, new String(task.response.data, "utf-8"), mConfigMap, null, WXRenderStrategy.APPEND_ASYNC);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
@@ -306,12 +303,10 @@ public class WXPageActivity extends WXBaseActivity implements IWXRenderListener,
if(comp == null){
return;
}
- ImmutableDomObject dom;
String id;
View view;
if((view = comp.getHostView())!=null &&
- (dom = comp.getDomObject()) != null &&
- (id = (String) dom.getAttrs().get("testId"))!=null &&
+ (id = (String) comp.getAttrs().get("testId"))!=null &&
!map.containsKey(id)){
Pair<String,Integer> pair = Utility.nextID();
view.setId(pair.second);
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/playground/app/src/main/java/com/alibaba/weex/extend/component/RichText.java
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/java/com/alibaba/weex/extend/component/RichText.java b/android/playground/app/src/main/java/com/alibaba/weex/extend/component/RichText.java
index a42f9ac..3b4b53f 100644
--- a/android/playground/app/src/main/java/com/alibaba/weex/extend/component/RichText.java
+++ b/android/playground/app/src/main/java/com/alibaba/weex/extend/component/RichText.java
@@ -27,15 +27,15 @@ import android.text.style.URLSpan;
import android.widget.TextView;
import com.taobao.weex.WXSDKInstance;
-import com.taobao.weex.dom.WXDomObject;
+import com.taobao.weex.ui.action.BasicComponentData;
import com.taobao.weex.ui.component.WXComponent;
import com.taobao.weex.ui.component.WXComponentProp;
import com.taobao.weex.ui.component.WXVContainer;
public class RichText extends WXComponent<TextView> {
- public RichText(WXSDKInstance instance, WXDomObject dom, WXVContainer parent) {
- super(instance, dom, parent);
+ public RichText(WXSDKInstance instance, WXVContainer parent, BasicComponentData basicComponentData) {
+ super(instance, parent, basicComponentData);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/playground/app/src/main/java/com/alibaba/weex/extend/component/WXComponentSyncTest.java
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/java/com/alibaba/weex/extend/component/WXComponentSyncTest.java b/android/playground/app/src/main/java/com/alibaba/weex/extend/component/WXComponentSyncTest.java
index d41fd3f..0adeed4 100644
--- a/android/playground/app/src/main/java/com/alibaba/weex/extend/component/WXComponentSyncTest.java
+++ b/android/playground/app/src/main/java/com/alibaba/weex/extend/component/WXComponentSyncTest.java
@@ -20,7 +20,7 @@ package com.alibaba.weex.extend.component;
import com.taobao.weex.WXSDKInstance;
import com.taobao.weex.annotation.JSMethod;
-import com.taobao.weex.dom.WXDomObject;
+import com.taobao.weex.ui.action.BasicComponentData;
import com.taobao.weex.ui.component.WXDiv;
import com.taobao.weex.ui.component.WXVContainer;
import com.taobao.weex.utils.WXLogUtils;
@@ -31,8 +31,8 @@ import com.taobao.weex.utils.WXLogUtils;
public class WXComponentSyncTest extends WXDiv {
- public WXComponentSyncTest(WXSDKInstance instance, WXDomObject dom, WXVContainer parent) {
- super(instance, dom, parent);
+ public WXComponentSyncTest(WXSDKInstance instance, WXVContainer parent, BasicComponentData basicComponentData) {
+ super(instance, parent, basicComponentData);
}
@JSMethod (uiThread = false)
@@ -44,4 +44,4 @@ public class WXComponentSyncTest extends WXDiv {
public void testAsyncCall(){
WXLogUtils.e("22WXComponentSynTest :"+ Thread.currentThread().getName() );
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/playground/app/src/main/java/com/alibaba/weex/extend/component/WXMask.java
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/java/com/alibaba/weex/extend/component/WXMask.java b/android/playground/app/src/main/java/com/alibaba/weex/extend/component/WXMask.java
index 5a26542..036216c 100644
--- a/android/playground/app/src/main/java/com/alibaba/weex/extend/component/WXMask.java
+++ b/android/playground/app/src/main/java/com/alibaba/weex/extend/component/WXMask.java
@@ -124,10 +124,10 @@ import android.widget.PopupWindow;
import com.alibaba.weex.extend.view.WXMaskView;
import com.taobao.weex.WXSDKInstance;
-import com.taobao.weex.dom.ImmutableDomObject;
-import com.taobao.weex.dom.WXDomObject;
+import com.taobao.weex.dom.CSSShorthand;
import com.taobao.weex.dom.WXStyle;
-import com.taobao.weex.dom.flex.Spacing;
+import com.taobao.weex.ui.action.BasicComponentData;
+import com.taobao.weex.ui.component.WXComponent;
import com.taobao.weex.ui.component.WXVContainer;
import java.util.HashMap;
@@ -142,8 +142,8 @@ public class WXMask extends WXVContainer {
private PopupWindow mPopupWindow;
private WXMaskView mContainerView;
- public WXMask(WXSDKInstance instance, WXDomObject dom, WXVContainer parent) {
- super(instance, dom, parent);
+ public WXMask(WXSDKInstance instance, WXVContainer parent, BasicComponentData basicComponentData) {
+ super(instance, parent, basicComponentData);
}
@Override
@@ -211,11 +211,10 @@ public class WXMask extends WXVContainer {
@Override
protected void setHostLayoutParams(View host, int width, int height, int left, int right, int top, int bottom) {
- ImmutableDomObject domObject = getDomObject();
- left = get(LEFT, domObject);
- right = get(RIGHT, domObject);
- top = get(TOP, domObject);
- bottom = get(BOTTOM, domObject);
+ left = get(LEFT);
+ right = get(RIGHT);
+ top = get(TOP);
+ bottom = get(BOTTOM);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(width, height);
params.setMargins(left, top, right, bottom);
getHostView().setLayoutParams(params);
@@ -226,19 +225,19 @@ public class WXMask extends WXVContainer {
private static final int TOP = 2;
private static final int BOTTOM = 3;
- private int get(int type, ImmutableDomObject domObject) {
+ private int get(int type) {
try {
- Spacing margin = domObject.getMargin();
- WXStyle style = domObject.getStyles();
+ CSSShorthand margin = getMargin();
+ WXStyle style = getStyles();
switch (type) {
case LEFT:
- return add(style.getLeft(), margin.get(Spacing.LEFT));
+ return add(style.getLeft(), margin.get(CSSShorthand.EDGE.LEFT));
case RIGHT:
- return add(style.getRight(), margin.get(Spacing.RIGHT));
+ return add(style.getRight(), margin.get(CSSShorthand.EDGE.RIGHT));
case TOP:
- return add(style.getTop(), margin.get(Spacing.TOP));
+ return add(style.getTop(), margin.get(CSSShorthand.EDGE.TOP));
case BOTTOM:
- return add(style.getBottom(), margin.get(Spacing.BOTTOM));
+ return add(style.getBottom(), margin.get(CSSShorthand.EDGE.BOTTOM));
}
} catch (Throwable t) {
//ignore
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/playground/app/src/main/java/com/alibaba/weex/extend/component/WXParallax.java
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/java/com/alibaba/weex/extend/component/WXParallax.java b/android/playground/app/src/main/java/com/alibaba/weex/extend/component/WXParallax.java
index eae6c01..46e265f 100644
--- a/android/playground/app/src/main/java/com/alibaba/weex/extend/component/WXParallax.java
+++ b/android/playground/app/src/main/java/com/alibaba/weex/extend/component/WXParallax.java
@@ -37,7 +37,7 @@ import com.taobao.weex.WXSDKInstance;
import com.taobao.weex.common.Constants;
import com.taobao.weex.common.ICheckBindingScroller;
import com.taobao.weex.common.OnWXScrollListener;
-import com.taobao.weex.dom.WXDomObject;
+import com.taobao.weex.ui.action.BasicComponentData;
import com.taobao.weex.ui.animation.WXAnimationBean;
import com.taobao.weex.ui.component.Scrollable;
import com.taobao.weex.ui.component.WXComponent;
@@ -72,17 +72,16 @@ public class WXParallax extends WXDiv implements OnWXScrollListener, ICheckBindi
private int mBackGroundColor = 0;
private float mOffsetY = 0;
- public WXParallax(WXSDKInstance instance, WXDomObject dom, WXVContainer parent) {
- super(instance, dom, parent);
- initTransform(dom.getAttrs().get(WX_TRANSFORM));
- initOpacity(dom.getAttrs().get(Constants.Name.OPACITY));
- initBackgroundColor(dom.getAttrs().get(Constants.Name.BACKGROUND_COLOR));
+ public WXParallax(WXSDKInstance instance, WXVContainer parent, BasicComponentData basicComponentData) {
+ super(instance, parent, basicComponentData);
+ initTransform(getAttrs().get(WX_TRANSFORM));
+ initOpacity(getAttrs().get(Constants.Name.OPACITY));
+ initBackgroundColor(getAttrs().get(Constants.Name.BACKGROUND_COLOR));
- mBindingRef = (String) (dom.getAttrs().get(BINDING_SCROLLER));
+ mBindingRef = (String) (getAttrs().get(BINDING_SCROLLER));
instance.registerOnWXScrollListener(this);
}
-
private void initBackgroundColor(Object obj) {
if (obj == null)
return;
@@ -136,7 +135,7 @@ public class WXParallax extends WXDiv implements OnWXScrollListener, ICheckBindi
@Override
public boolean isNeedScroller(String ref, Object option) {
- mBindingRef = (String) (getDomObject().getAttrs().get(BINDING_SCROLLER));
+ mBindingRef = (String) (getAttrs().get(BINDING_SCROLLER));
if (TextUtils.isEmpty(mBindingRef)) {
WXComponent root = getInstance().getRootComponent();
if (root != null && root instanceof WXVContainer) {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/playground/app/src/main/java/com/alibaba/weex/extend/component/dom/WXMaskDomObject.java
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/java/com/alibaba/weex/extend/component/dom/WXMaskDomObject.java b/android/playground/app/src/main/java/com/alibaba/weex/extend/component/dom/WXMaskDomObject.java
deleted file mode 100644
index 1de289b..0000000
--- a/android/playground/app/src/main/java/com/alibaba/weex/extend/component/dom/WXMaskDomObject.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/**
- * Apache License
- * Version 2.0, January 2004
- * http://www.apache.org/licenses/
- * <p>
- * TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
- * <p>
- * 1. Definitions.
- * <p>
- * "License" shall mean the terms and conditions for use, reproduction,
- * and distribution as defined by Sections 1 through 9 of this document.
- * <p>
- * "Licensor" shall mean the copyright owner or entity authorized by
- * the copyright owner that is granting the License.
- * <p>
- * "Legal Entity" shall mean the union of the acting entity and all
- * other entities that control, are controlled by, or are under common
- * control with that entity. For the purposes of this definition,
- * "control" means (i) the power, direct or indirect, to cause the
- * direction or management of such entity, whether by contract or
- * otherwise, or (ii) ownership of fifty percent (50%) or more of the
- * outstanding shares, or (iii) beneficial ownership of such entity.
- * <p>
- * "You" (or "Your") shall mean an individual or Legal Entity
- * exercising permissions granted by this License.
- * <p>
- * "Source" form shall mean the preferred form for making modifications,
- * including but not limited to software source code, documentation
- * source, and configuration files.
- * <p>
- * "Object" form shall mean any form resulting from mechanical
- * transformation or translation of a Source form, including but
- * not limited to compiled object code, generated documentation,
- * and conversions to other media types.
- * <p>
- * "Work" shall mean the work of authorship, whether in Source or
- * Object form, made available under the License, as indicated by a
- * copyright notice that is included in or attached to the work
- * (an example is provided in the Appendix below).
- * <p>
- * "Derivative Works" shall mean any work, whether in Source or Object
- * form, that is based on (or derived from) the Work and for which the
- * editorial revisions, annotations, elaborations, or other modifications
- * represent, as a whole, an original work of authorship. For the purposes
- * of this License, Derivative Works shall not include works that remain
- * separable from, or merely link (or bind by name) to the interfaces of,
- * the Work and Derivative Works thereof.
- * <p>
- * "Contribution" shall mean any work of authorship, including
- * the original version of the Work and any modifications or additions
- * to that Work or Derivative Works thereof, that is intentionally
- * submitted to Licensor for inclusion in the Work by the copyright owner
- * or by an individual or Legal Entity authorized to submit on behalf of
- * the copyright owner. For the purposes of this definition, "submitted"
- * means any form of electronic, verbal, or written communication sent
- * to the Licensor or its representatives, including but not limited to
- * communication on electronic mailing lists, source code control systems,
- * and issue tracking systems that are managed by, or on behalf of, the
- * Licensor for the purpose of discussing and improving the Work, but
- * excluding communication that is conspicuously marked or otherwise
- * designated in writing by the copyright owner as "Not a Contribution."
- * <p>
- * "Contributor" shall mean Licensor and any individual or Legal Entity
- * on behalf of whom a Contribution has been received by Licensor and
- * subsequently incorporated within the Work.
- * <p>
- * 2. Grant of Copyright License. Subject to the terms and conditions of
- * this License, each Contributor hereby grants to You a perpetual,
- * worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- * copyright license to reproduce, prepare Derivative Works of,
- * publicly display, publicly perform, sublicense, and distribute the
- * Work and such Derivative Works in Source or Object form.
- * <p>
- * 3. Grant of Patent License. Subject to the terms and conditions of
- * this License, each Contributor hereby grants to You a perpetual,
- * worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- * (except as stated in this section) patent license to make, have made,
- * use, offer to sell, sell, import, and otherwise transfer the Work,
- * where such license applies only to those patent claims licensable
- * by such Contributor that are necessarily infringed by their
- * Contribution(s) alone or by combination of their Contribution(s)
- * with the Work to which such Contribution(s) was submitted. If You
- * institute patent litigation against any entity (including a
- * cross-claim or counterclaim in a lawsuit) alleging that the Work
- * or a Contribution incorporated within the Work constitutes direct
- * or contributory patent infringement, then any patent licenses
- * granted to You under this License for that Work shall terminate
- * as of the date such litigation is filed.
- * <p>
- * 4. Redistribution. You may reproduce and distribute copies of the
- * Work or Derivative Works thereof in any medium, with or without
- * modifications, and in Source or Object form, provided that You
- * meet the following conditions:
- * <p>
- * (a) You must give any other recipients of the Work or
- * Derivative Works a copy of this License; and
- * <p>
- * (b) You must cause any modified files to carry prominent notices
- * stating that You changed the files; and
- * <p>
- * (c) You must retain, in the Source form of any Derivative Works
- * that You distribute, all copyright, patent, trademark, and
- * attribution notices from the Source form of the Work,
- * excluding those notices that do not pertain to any part of
- * the Derivative Works; and
- * <p>
- * (d) If the Work includes a "NOTICE" text file as part of its
- * distribution, then any Derivative Works that You distribute must
- * include a readable copy of the attribution notices contained
- * within such NOTICE file, excluding those notices that do not
- * pertain to any part of the Derivative Works, in at least one
- * of the following places: within a NOTICE text file distributed
- * as part of the Derivative Works; within the Source form or
- * documentation, if provided along with the Derivative Works; or,
- * within a display generated by the Derivative Works, if and
- * wherever such third-party notices normally appear. The contents
- * of the NOTICE file are for informational purposes only and
- * do not modify the License. You may add Your own attribution
- * notices within Derivative Works that You distribute, alongside
- * or as an addendum to the NOTICE text from the Work, provided
- * that such additional attribution notices cannot be construed
- * as modifying the License.
- * <p>
- * You may add Your own copyright statement to Your modifications and
- * may provide additional or different license terms and conditions
- * for use, reproduction, or distribution of Your modifications, or
- * for any such Derivative Works as a whole, provided Your use,
- * reproduction, and distribution of the Work otherwise complies with
- * the conditions stated in this License.
- * <p>
- * 5. Submission of Contributions. Unless You explicitly state otherwise,
- * any Contribution intentionally submitted for inclusion in the Work
- * by You to the Licensor shall be under the terms and conditions of
- * this License, without any additional terms or conditions.
- * Notwithstanding the above, nothing herein shall supersede or modify
- * the terms of any separate license agreement you may have executed
- * with Licensor regarding such Contributions.
- * <p>
- * 6. Trademarks. This License does not grant permission to use the trade
- * names, trademarks, service marks, or product names of the Licensor,
- * except as required for reasonable and customary use in describing the
- * origin of the Work and reproducing the content of the NOTICE file.
- * <p>
- * 7. Disclaimer of Warranty. Unless required by applicable law or
- * agreed to in writing, Licensor provides the Work (and each
- * Contributor provides its Contributions) on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied, including, without limitation, any warranties or conditions
- * of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- * PARTICULAR PURPOSE. You are solely responsible for determining the
- * appropriateness of using or redistributing the Work and assume any
- * risks associated with Your exercise of permissions under this License.
- * <p>
- * 8. Limitation of Liability. In no event and under no legal theory,
- * whether in tort (including negligence), contract, or otherwise,
- * unless required by applicable law (such as deliberate and grossly
- * negligent acts) or agreed to in writing, shall any Contributor be
- * liable to You for damages, including any direct, indirect, special,
- * incidental, or consequential damages of any character arising as a
- * result of this License or out of the use or inability to use the
- * Work (including but not limited to damages for loss of goodwill,
- * work stoppage, computer failure or malfunction, or any and all
- * other commercial damages or losses), even if such Contributor
- * has been advised of the possibility of such damages.
- * <p>
- * 9. Accepting Warranty or Additional Liability. While redistributing
- * the Work or Derivative Works thereof, You may choose to offer,
- * and charge a fee for, acceptance of support, warranty, indemnity,
- * or other liability obligations and/or rights consistent with this
- * License. However, in accepting such obligations, You may act only
- * on Your own behalf and on Your sole responsibility, not on behalf
- * of any other Contributor, and only if You agree to indemnify,
- * defend, and hold each Contributor harmless for any liability
- * incurred by, or claims asserted against, such Contributor by reason
- * of your accepting any such warranty or additional liability.
- * <p>
- * END OF TERMS AND CONDITIONS
- * <p>
- * APPENDIX: How to apply the Apache License to your work.
- * <p>
- * To apply the Apache License to your work, attach the following
- * boilerplate notice, with the fields enclosed by brackets "[]"
- * replaced with your own identifying information. (Don't include
- * the brackets!) The text should be enclosed in the appropriate
- * comment syntax for the file format. We also recommend that a
- * file or class name and description of purpose be included on the
- * same "printed page" as the copyright notice for easier
- * identification within third-party archives.
- * <p>
- * Copyright 2016 Alibaba Group
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.alibaba.weex.extend.component.dom;
-
-import android.app.Application;
-import android.content.res.Resources;
-
-import com.taobao.weex.WXEnvironment;
-import com.taobao.weex.common.Constants;
-import com.taobao.weex.dom.WXDomObject;
-import com.taobao.weex.utils.WXViewUtils;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Created by lixinke on 2016/12/28.
- */
-
-public class WXMaskDomObject extends WXDomObject {
-
- @Override
- protected Map<String, String> getDefaultStyle() {
- if (getDomContext() == null || getDomContext().getUIContext() == null) {
- return super.getDefaultStyle();
- }
-
- int height = WXViewUtils.getScreenHeight(getDomContext().getUIContext());
- int width = WXViewUtils.getScreenWidth(getDomContext().getUIContext());
- Resources resources = getDomContext().getUIContext().getResources();
- if (resources != null) {
- width = resources.getDisplayMetrics().widthPixels;
- height = resources.getDisplayMetrics().heightPixels;
- }
-
- if (WXEnvironment.getApplication() != null) {
- Application context = WXEnvironment.getApplication();
- int statusBarHeight = 0;
- int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
- if (resourceId > 0) {
- statusBarHeight = context.getResources().getDimensionPixelSize(resourceId);
- height -= statusBarHeight;
- }
- }
-
- Map<String, String> styles = new HashMap<>();
- styles.put(Constants.Name.POSITION, "absolute");
- styles.put(Constants.Name.WIDTH, String.valueOf(WXViewUtils.getWebPxByWidth(width, getViewPortWidth())));
- styles.put(Constants.Name.HEIGHT, String.valueOf(WXViewUtils.getWebPxByWidth(height, getViewPortWidth())));
- styles.put(Constants.Name.TOP, "0");
- return styles;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/playground/app/src/main/java/com/alibaba/weex/extend/module/WXWsonTestModule.java
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/java/com/alibaba/weex/extend/module/WXWsonTestModule.java b/android/playground/app/src/main/java/com/alibaba/weex/extend/module/WXWsonTestModule.java
index b018678..f3fb1ff 100644
--- a/android/playground/app/src/main/java/com/alibaba/weex/extend/module/WXWsonTestModule.java
+++ b/android/playground/app/src/main/java/com/alibaba/weex/extend/module/WXWsonTestModule.java
@@ -6,7 +6,6 @@ import com.alibaba.fastjson.JSONObject;
import com.taobao.weex.annotation.JSMethod;
import com.taobao.weex.bridge.JSCallback;
import com.taobao.weex.common.WXModule;
-import com.taobao.weex.wson.Wson;
/**
* Created by furture on 2018/1/18.