GaiaX dynamic template engine is a lightweight cross-platform solution for pure native dynamic card.

Overview

GaiaX-logo

GaiaX dynamic template engine is a lightweight cross-platform solution for pure native dynamic card, developed by Alibaba YouKu technology team

README-en README-zh Docs-zh GitHub release License GitHub Stars GitHub Forks user repos GitHub Contributors

GaiaX dynamic template engine

GaiaX dynamic template engine is a lightweight cross-platform solution for pure native dynamic card, developed by Alibaba YouKu technology team.

Besides client SDK, we provide the template visual build tool - GaiaStudio, and Demo Project - template sample and real-time preview, which supports creating templates, editing templates, real machine debugging, and real-time preview.

GaiaX dynamic template engine aims to ensure that the native experience and performance at the same time, help the client achieve low code.

Goals

The following goals are the way forward for our project:

  • High performance
  • Cross-platform technology
  • Visual construction
  • Pure native rendering

Supported Platforms

  • Android
  • iOS

Core Concept

GaiaX-arch

The technology used

Rust/Android/Kotlin/iOS/OC/C++/JNI/CSS/FlexBox

Usage

Android

Dependency

add jitpack source:

// with setting.gradle
pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        maven { url 'https://jitpack.io' }
        mavenCentral()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        maven { url 'https://jitpack.io' }
        mavenCentral()
    }
}

// with build.gradle
allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

Android-Support version:

implementation 'com.github.alibaba.GaiaX:GaiaX-Adapter:$version-support'
implementation 'com.github.alibaba.GaiaX:GaiaX:$version-support'
implementation 'com.alibaba:fastjson:1.2.76'

AndroidX version:

implementation 'com.github.alibaba.GaiaX:GaiaX-Adapter:$version'
implementation 'com.github.alibaba.GaiaX:GaiaX:$version'
implementation 'com.alibaba:fastjson:1.2.76'

Template File

// Path used to store template resources
/assets/${templateBiz}/${templateId}

Methods

// SDK usages

// Initialization - Initializes the SDK
GXTemplateEngine.instance.init(activity)

// Build template parameters - Template information
// activity       - context
// templateBiz    - template biz id
// templateId     - template id
val item = GXTemplateEngine.GXTemplateItem(activity, "templateBiz", "templateId")

// Build template parameters - Viewport size (template draw size, similar to the concept of canvas in Android)
val size = GXTemplateEngine.GXMeasureSize(100F.dpToPx(), null)

// Build template parameters - Template data
val dataJson = AssetsUtils.parseAssets(activity, "template-data.json")
val data = GXTemplateEngine.GXTemplateData(dataJson)

// Create template View - Creates a native View based on template parameters
val view = GXTemplateEngine.instance.createView(item, size)

// Bind the view data
GXTemplateEngine.instance.bindData(view, data)

// Insert the template into the container for rendering
findViewById<ViewGroup>(R.id.template_container).addView(view, 0)

iOS

CocoaPods

Add a dependency to your Podfile

// Dependency
pod 'GaiaXiOS'

Template File

Add template files to App or FrameWork

// Path used to store template resources
xxx.bundle/templateId

Methods

// SDK Usages

// Introduced header files
#import <GaiaXiOS/GaiaXiOS.h>

//register template service
[TheGXRegisterCenter registerTemplateServiceWithBizId:bizId templateBundle:@"xxx.bundle"];

// Build template parameters - Template information
// activity       - context
// templateBiz    - template biz id
// templateId     - template id
GXTemplateItem *item = [[GXTemplateItem alloc] init];
item.templateId = templateId;
item.bizId = templateBiz;

// Build template parameters - Viewport size (template draw size, similar to the concept of canvas in Android)
CGSize size = CGSizeMake(1080, NAN);

// Build template parameters - Template data
GXTemplateData *data = [[GXTemplateData alloc] init];
data.data = @{@"xxx": @"xxx"};

// Create template View - Creates a native View based on template parameters
UIView *view = [TheGXTemplateEngine creatViewByTemplateItem:item measureSize:size];

// Bind the view data
[TheGXTemplateEngine bindData:data onView:view];

// Insert the template into the container for rendering
[self.view addSubview:view];

Contributing

We very welcome your to contribute code for the project. In you before writing any code, start by creating a issue or pull request in order for us to be able to discuss details of the proposal and the rationality of the scheme. You can in the following areas contribute code:

  • Packet size
  • The run-time performance
  • Across-side consistency
  • Unit test cases
  • Document or use cases
  • And so on

Tool

Contact us

DingTalk:

WeChat:

Email: [email protected]

Supporters

Forkers repo roster for @alibaba/GaiaX

Stargazers repo roster for @alibaba/GaiaX

LICENSE

Ali-GaiaX-Project is a template dynamic develop solutions developed by Alibaba and licensed under the Apache License (Version 2.0)
This product contains various third-party components under other open source licenses. 
See the NOTICE file for more information.
Comments
  • 用实时预览扫码Gaia Studio的二维码后,Demo闪退

    用实时预览扫码Gaia Studio的二维码后,Demo闪退

    闪退堆栈:

    
    2022-10-26 11:30:05.525 15584-15584/com.alibaba.gaiax.demo A/libc: Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x7ffb1fdfd0 in tid 15584 (baba.gaiax.demo), pid 15584 (baba.gaiax.demo)
    2022-10-26 11:30:05.526 2297-3845/? E/WiFi_PROHumanFactorRecommend: isEconomicTrafficUser, invalid slotId=-1
    2022-10-26 11:30:05.611 16913-16913/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    2022-10-26 11:30:05.611 16913-16913/? A/DEBUG: Build fingerprint: 'HONOR/BMH-AN20/HWBMH:10/HUAWEIBMH-AN20/102.0.0.272C00:user/release-keys'
    2022-10-26 11:30:05.611 16913-16913/? A/DEBUG: Revision: '0'
    2022-10-26 11:30:05.611 16913-16913/? A/DEBUG: ABI: 'arm64'
    2022-10-26 11:30:05.614 16913-16913/? A/DEBUG: SYSVMTYPE: Maple
        APPVMTYPE: Art
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG: Timestamp: 2022-10-26 11:30:05+0800
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG: pid: 15584, tid: 15584, name: baba.gaiax.demo  >>> com.alibaba.gaiax.demo <<<
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG: uid: 10663
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG: signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x7ffb1fdfd0
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG:     x0  0000006eee523c30  x1  0000006eee6faa00  x2  000000000000002e  x3  000000000000002d
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG:     x4  000000000000002d  x5  0000007ffb9f5ff0  x6  0000000000000008  x7  0000006f52650830
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG:     x8  0000000000000001  x9  0000006eee6fae38  x10 0000000000000001  x11 0000006ef2484404
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG:     x12 0000006ef2484414  x13 0000000000000018  x14 ff3b464f6dffff1f  x15 0000000000000000
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG:     x16 0000006fdf21ea30  x17 0000006fdf212f80  x18 0000006fe1d32000  x19 000000000000002e
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG:     x20 0000006eee523c30  x21 0000006eee6faa00  x22 0000006eee663e48  x23 0000000000000008
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG:     x24 000000000000002d  x25 fefefefefefefeff  x26 0000006f5be108b0  x27 0000000000000003
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG:     x28 0000007ffb9f5f70  x29 0000007ffb9f5f70
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG:     sp  0000007ffb1fe000  lr  0000006f4b71e108  pc  0000006f4b71e078
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG: backtrace:
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG:       #00 pc 000000000001d078  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG:       #01 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG:       #02 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG:       #03 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.617 16913-16913/? A/DEBUG:       #04 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #05 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #06 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #07 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #08 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #09 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #10 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #11 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #12 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #13 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #14 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #15 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #16 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #17 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #18 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #19 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #20 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #21 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #22 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #23 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #24 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #25 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #26 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #27 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #28 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #29 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #30 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #31 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #32 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #33 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #34 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #35 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #36 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #37 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #38 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #39 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #40 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #41 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #42 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #43 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #44 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #45 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #46 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #47 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #48 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #49 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #50 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #51 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #52 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #53 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #54 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #55 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #56 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #57 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #58 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #59 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #60 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #61 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #62 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #63 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #64 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #65 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #66 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #67 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #68 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #69 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #70 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #71 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #72 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #73 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #74 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #75 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #76 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #77 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #78 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #79 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #80 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #81 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #82 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #83 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #84 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #85 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #86 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #87 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #88 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #89 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #90 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #91 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #92 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #93 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #94 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #95 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #96 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #97 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #98 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #99 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #100 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #101 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #102 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #103 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #104 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #105 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #106 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #107 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #108 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #109 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #110 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #111 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #112 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #113 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #114 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #115 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #116 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #117 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #118 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #119 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #120 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #121 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #122 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #123 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #124 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #125 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #126 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.618 16913-16913/? A/DEBUG:       #127 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #128 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #129 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #130 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #131 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #132 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #133 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #134 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #135 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #136 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #137 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #138 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #139 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #140 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #141 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #142 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #143 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #144 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #145 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #146 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #147 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #148 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #149 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #150 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #151 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #152 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #153 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #154 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #155 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #156 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #157 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #158 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #159 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #160 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #161 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #162 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #163 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #164 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #165 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #166 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #167 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #168 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #169 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #170 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #171 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #172 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #173 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #174 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #175 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #176 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #177 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #178 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #179 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #180 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #181 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #182 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #183 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #184 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #185 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #186 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #187 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #188 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #189 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #190 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #191 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #192 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #193 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #194 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #195 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #196 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #197 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #198 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #199 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #200 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #201 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #202 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #203 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #204 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #205 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #206 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #207 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #208 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #209 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #210 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #211 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #212 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #213 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #214 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #215 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #216 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #217 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #218 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #219 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #220 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #221 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #222 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #223 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #224 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #225 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #226 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #227 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #228 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #229 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    2022-10-26 11:30:05.619 16913-16913/? A/DEBUG:       #230 pc 000000000001d104  /data/app/com.alibaba.gaiax.demo-GQVU0XU8jgEnlzQkT8MzIg==/lib/arm64/libstretch.so
    
    bug 
    opened by shilec 12
  • 同一行多个单行自适应文本时,flexShrink 属性生效

    同一行多个单行自适应文本时,flexShrink 属性生效

    描述这个问题 mockl两个标签.zip

    image 模版如图,在横向容器里有两个标签,都是文本标签,要求标签展示不全时展示”...“ 在Android平台,对flexShrink属性没有加延时计算逻辑 image 会导致,节点会基于文本自适应之前设置的宽高,来计算自身当前可被撑开的最大宽度,导致文本展示超出父容器被截断

    另外,在延时逻辑这里 image dirtyText的一次遍历,导致有依赖的自适应文本之间的宽高计算仍然没有先后关系,计算的结果中,依然是各自按照其他组件未展开时候的高度去计算的宽度

    Ios的表现不一致,但看起来应该也有类似问题

    bug 
    opened by WattledGnata 10
  • Studio:iOS 设置属性动画闪退,提示 expressionError: unexpected identifier 'prop' in expression 'prop'

    Studio:iOS 设置属性动画闪退,提示 expressionError: unexpected identifier 'prop' in expression 'prop'

    描述这个问题 iOS 设置动画崩溃

    复现步骤

    可通过分步复现该问题:

    1. 给一个view设置属性动画(prop动画)
    2. 预览
    3. 产生错误

    预期正确的结果 正常展示动画效果

    截图 image image

    客户端 (请填写如下信息) :

    • 设备: [e.g. iPhone6]
    • 系统: [e.g. iOS8.1]
    • GaiaX SDK版本 0.2.9
    • GaiaX 模板文件和模板数据

    崩溃日志 expressionError: unexpected identifier 'prop' in expression 'prop'

    附加信息

    jy_main_live_scroll_item.gaiax.zip

    android ios studio 
    opened by zylcold 8
  • GaiaXAndroidDemo ScrollView 如何设置点击事件?

    GaiaXAndroidDemo ScrollView 如何设置点击事件?

    demo中设置了eventListener. 模板gx-content-uper-scroll-item的databinding如下 { "data": { "cover-img": { "value": "$data.img" }, "title": { "value": "$data.title" } }, "event":{ "gx-content-uper-scroll-item":{ "type":"'tap'", "params": { "value": "'我是event'" } } } } 点击单个item无法回调onGestureEvent. 打断点可以看到gxTemplateContext.templateData?.eventListener为空。请问这个问题如何解决?

    bug question 
    opened by Wusssy 6
  • function里的参数,只能是单一取值表达式或者值,不能是另一个计算表达式

    function里的参数,只能是单一取值表达式或者值,不能是另一个计算表达式

    描述这个问题

    我扩展了一个方法(任意方法)。 然后发现,方法里的参数,只能传一个取值表达式, 或者传一个确定的 值(Int/String 。。。)。 当我往这个方法里放一个计算的表达式时,会报错 StringOfIntValue((($target.poll.options[0].voting_count) / ($target.poll.voting_count))) + '%'

    image

    请清晰和简明的描述这个问题。

    复现步骤

    可通过分步复现该问题:

    1. 到什么页面 '...'
    2. 点击 '....'
    3. 滑动到 '....'
    4. 产生错误

    预期正确的结果

    请清晰和简明的描述你预期正确的结果。

    截图

    如果可以的话,添加截图来帮助解释您的问题。

    客户端 (请填写如下信息) :

    • 设备: [e.g. iPhone6]
    • 系统: [e.g. iOS8.1]
    • GaiaX SDK版本 [e.g. 0.1.0]
    • Gaia Studio版本 [e.g. 0.1.0]
    • GaiaX 模板文件和模板数据

    崩溃日志 在这里添加崩溃日志

    附加信息 在这里添加有关该问题的任何其他信息。

    opened by WattledGnata 5
  • 数据的值是小数的时候会崩溃,整数就不会崩溃

    数据的值是小数的时候会崩溃,整数就不会崩溃

    描述这个问题

    数据的值是小数的时候会崩溃,整数就不会崩溃

    复现步骤

    可通过分步复现该问题:

    1. gaia studio创建模版,添加子view为text类型,id为a
    2. mock数据为{"data":{"data1":1.1}}
    3. a的绑定数据为$data.data1
    4. 预览崩溃

    预期正确的结果

    预览显示1.1

    截图

    客户端 (请填写如下信息) :

    • 设备: [e.g. iPhone6]
    • 系统: [e.g. iOS8.1]
    • GaiaX SDK版本 [0.1.15]
    • GaiaX 模板文件和模板数据
    {
      "id": "test",
      "uid": "5828b7d946fb205985ca85c16de2e1dd",
      "type": "gaia-template",
      "package": {
        "id": "test",
        "version": "0.0.1",
        "modify-timestamp": "Tue Jun 14 2022 15:13:46 GMT+0800 (中国标准时间)"
      },
      "layers": [
        {
          "id": "a",
          "uid": "6127e23bcf9c932c757a2662619faf7b",
          "type": "text"
        }
      ]
    }
    

    #test {
      width: 100%;
      height: 100%;
      background-color: #ffffff;
    }
    
    #a {
      width: 100px;
      text-overflow: ellipsis;
      height: 20px;
      color: #000000;
      font-size: 15px;
    } 
    

    {
      "data": {
        "a": {
          "value": "$data.data1"
        }
      }
    }
    

    {
      "a": {
        "value": "请在这里输入文本"
      }
    }
    

    附加信息

    bug 
    opened by TracyWangqq 5
  • ios pod crash, 有计划修复吗?

    ios pod crash, 有计划修复吗?

    1. 新建工程 ,
    2. pod 'GaiaXiOS'
    3. 更新pod
    4. 打开项目真机运行 崩溃报以下错误
    dyld: Library not loaded: @rpath/XCTest.framework/XCTest
      Referenced from: /private/var/containers/Bundle/Application/7D0527AC-DAF8-4655-BE83-0F45977564A3/TestGaiaX.app/TestGaiaX
      Reason: image not found
    dyld: launch, loading dependent libraries
    DYLD_LIBRARY_PATH=/usr/lib/system/introspection
    DYLD_INSERT_LIBRARIES=/Developer/usr/lib/libBacktraceRecording.dylib:/Developer/usr/lib/libMainThreadChecker.dylib:/Developer/Library/PrivateFrameworks/DTDDISupport.framework/libViewDebuggerSupport.dylib
    

    查了下, 是因为 https://github.com/CocoaPods/Specs/blob/019a3d1b3894515bd6057e56b706309338e95272/Specs/8/e/a/GaiaXiOS/0.1.0/GaiaXiOS.podspec.json 这个配置, "frameworks": "XCTest"

    XCTest不能链接到主target

    bug question 
    opened by amjunliang 5
  • 使用Demo 扫码后,绑定的数据无法显示

    使用Demo 扫码后,绑定的数据无法显示

    描述这个问题

    使用GaiaXAndroidDemo app 在Android手机上扫码Gaiax Studio上绘制的图案后,可出现相应的图案,但是无法显示绑定的文字以及绑定的图片(在Studio上输入过了相应的URL)

    预期正确的结果

    应该显示出绑定的文字与图片信息

    截图

    如果可以的话,添加截图来帮助解释您的问题。

    客户端 (请填写如下信息) :

    • 设备: OPPO FInd X3
    • 系统: ColorOS 13
    • GaiaX SDK版本 使用的Main分支上的Demo
    • Gaia Studio版本 0.1.8
    • GaiaX 模板文件和模板数据

    崩溃日志 log.zip

    附加信息 在这里添加有关该问题的任何其他信息。

    opened by Skandinaviske 4
  • 0.2.4版本发生native崩溃

    0.2.4版本发生native崩溃

    描述这个问题 请清晰和简明的描述这个问题。 在bindData时发生崩溃。

    使用附件中的三个模板:template_group_normal.zip、template_comp_normal.zip、template_comp_scroll.zip。 三个文件解压后得到index.css、index.databinding、index.json。 其中template_group_normal.zip是在代码里直接访问的模板,其他两个是嵌套使用的。 在发生问题时,传入的json数据是: {"data":{"version":"1.0","title":"Level=1的标题","img":"https://lawk-web.oss-cn-zhangjiakou.aliyuncs.com/dynamicskill_gaiax_templates/icon1.png","biz_id":"sample_templates","template_id":"template_group_normal","templates_base_url":"https://lawk-web.oss-cn-zhangjiakou.aliyuncs.com/dynamicskill_gaiax_templates/","templates":"https://lawk-web.oss-cn-zhangjiakou.aliyuncs.com/dynamicskill_sample/templates.zip"},"id":2,"level":1,"nodes":[{"data":{"version":"1.0","title":"Level=2的标题"},"id":3,"level":2,"nodes":[{"data":{"title":"坑位1.1标题","img":"https://lawk-web.oss-cn-zhangjiakou.aliyuncs.com/dynamicskill_gaiax_templates/icon1.png"},"id":4,"level":3,"type":0},{"data":{"title":"坑位1.2标题","img":"https://lawk-web.oss-cn-zhangjiakou.aliyuncs.com/dynamicskill_gaiax_templates/icon2.png"},"id":4,"level":3,"type":0}],"type":0}],"type":1003}

    创建模板和绑定的代码如下: if (mTemplateItem == null) { // 这里创建的模板对应template_group_normal.zip mTemplateItem = new GXTemplateEngine.GXTemplateItem(mActivity, bizId, templateId); } mTemplateData = new GXTemplateEngine.GXTemplateData( GaiaXUtil.convertJson(mGroupDataNode.nodeJson)); mTemplateSize = new GXTemplateEngine.GXMeasureSize( (float) getExpectedWidth(), (float) getExpectedHeight());

    if (mTemplateView == null) { mTemplateView = GXTemplateEngine.Companion.getInstance().createView( mTemplateItem, mTemplateSize, null); }

    GXTemplateEngine.Companion.getInstance().bindData( mTemplateView, mTemplateData, mTemplateSize);

    mSkillPage.getSkillContainer().getSkillDisplayView().addView(mTemplateView);

    崩溃时的log如下: 06-29 15:15:27.268 11004 11004 F libc : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 11004 (com.lwk.launcher), pid 11004 (com.lwk.launcher) 06-29 15:15:27.395 11338 11338 I crash_dump32: obtaining output fd from tombstoned, type: kDebuggerdTombstone 06-29 15:15:27.397 1048 1048 I /system/bin/tombstoned: received crash request for pid 11004 06-29 15:15:27.399 11338 11338 I crash_dump32: performing dump of process 11004 (target tid = 11004) 06-29 15:15:27.413 11338 11338 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 06-29 15:15:27.414 11338 11338 F DEBUG : Build fingerprint: 'HUAWEI/CLT-AL01/HWCLT:10/HUAWEICLT-AL01/10.0.0.175C00:user/release-keys' 06-29 15:15:27.414 11338 11338 F DEBUG : Revision: '0' 06-29 15:15:27.414 11338 11338 F DEBUG : ABI: 'arm' 06-29 15:15:27.416 11338 11338 F DEBUG : SYSVMTYPE: Maple 06-29 15:15:27.416 11338 11338 F DEBUG : APPVMTYPE: Art 06-29 15:15:27.417 11338 11338 F DEBUG : Timestamp: 2022-06-29 15:15:27+0800 06-29 15:15:27.417 11338 11338 F DEBUG : pid: 11004, tid: 11004, name: com.lwk.launcher >>> com.lwk.launcher <<< 06-29 15:15:27.417 11338 11338 F DEBUG : uid: 10237 06-29 15:15:27.417 11338 11338 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 06-29 15:15:27.417 11338 11338 F DEBUG : Cause: null pointer dereference 06-29 15:15:27.417 11338 11338 F DEBUG : r0 ffc9e35c r1 5480ec07 r2 00430000 r3 000000b0 06-29 15:15:27.417 11338 11338 F DEBUG : r4 ffc9e3f8 r5 ffc9e35c r6 00000000 r7 ffc9e430 06-29 15:15:27.417 11338 11338 F DEBUG : r8 b40d5470 r9 b40d5478 r10 b40d5478 r11 00000003 06-29 15:15:27.417 11338 11338 F DEBUG : ip b2562a50 sp ffc9e178 lr b25109e9 pc b25109e8 06-29 15:15:27.675 11338 11338 F DEBUG :
    06-29 15:15:27.675 11338 11338 F DEBUG : backtrace: 06-29 15:15:27.675 11338 11338 F DEBUG : #00 pc 0004d9e8 /data/app/com.lwk.launcher-uAgYNHRTDq2Rsn5fyT3fow==/base.apk!libGXAnalyzeCore. so (offset 0x884000) (GXAnalyze::check(std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator>, std::__ndk1:: vector<GXATSNode, std::__ndk1::allocator>, void*, void*)+920) (BuildId: e10dab8b2069f3d20646c33f8b24eae3f5bc7e46) 06-29 15:15:27.675 11338 11338 F DEBUG : #01 pc 0004d435 /data/app/com.lwk.launcher-uAgYNHRTDq2Rsn5fyT3fow==/base.apk!libGXAnalyzeCore. so (offset 0x884000) (GXAnalyze::getValue(std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator>, void*)+316) (BuildId: e10dab8b2069f3d20646c33f8b24eae3f5bc7e46) 06-29 15:15:27.675 11338 11338 F DEBUG : #02 pc 0000280f /data/app/com.lwk.launcher-uAgYNHRTDq2Rsn5fyT3fow==/base.apk! libGXAnalyzeAndroid.so (offset 0x87c000) (Java_com_alibaba_gaiax_analyze_GXAnalyze_getResultNative+54) (BuildId: 323ace27760be64a7b7f18ec8ecc84e4ea4c750c) 06-29 15:15:27.675 11338 11338 F DEBUG : #03 pc 000e8519 /apex/com.android.runtime/lib/libart.so (art_quick_generic_jni_trampoline+40) (BuildId: abb8de64bc66468b445887ecf37739aa)

    复现步骤

    可通过分步复现该问题:

    1. 到什么页面 '...'
    2. 点击 '....'
    3. 滑动到 '....'
    4. 产生错误

    预期正确的结果

    请清晰和简明的描述你预期正确的结果。

    截图

    如果可以的话,添加截图来帮助解释您的问题。

    客户端 (请填写如下信息) :

    • 设备: [e.g. iPhone6]
    • 系统: [e.g. iOS8.1]
    • GaiaX SDK版本 [e.g. 0.1.0]
    • Gaia Studio版本 [e.g. 0.1.0]
    • GaiaX 模板文件和模板数据

    崩溃日志 在这里添加崩溃日志

    附加信息 在这里添加有关该问题的任何其他信息。 template_comp_normal.zip template_comp_scroll.zip template_group_normal.zip

    opened by supershui 3
  • 关于模板异步请求数据

    关于模板异步请求数据

    Hi!我们团队之前用的是 Tangram ,在其基础上扩展了卡片异步加载的功能。这个有其对应的业务场景,比如某个卡片是定位相关的,需要 App 获取定位后,根据经纬度请求额外信息,再回显到卡片上。

    参考之前的做法,我在 GXDataManager#gx_bindData:onNode: 做了简单的扩展:

    + (void)gx_bindData:(NSDictionary *)data onNode:(GXNode *)node {
        ...
        //绑定数据,重新计算布局
        if (node.isRootNode) {
            ...
            // for async load
            [self startAsyncLoadIfNeedForNode:node withOriginalData:data];
        }
    }
    
    + (void)startAsyncLoadIfNeedForNode:(GXNode *)node withOriginalData:(NSDictionary *)rawData {
        // 原数据中补充 load 字段,代表需要异步加载
        if ([rawData[@"load"] length] == 0) return;
        GXTemplateData *templateData = node.templateContext.templateData;
        // 再补充个代理方法
        if (!templateData.dataListener || ![templateData.dataListener respondsToSelector:@selector(gx_asyncLoadDataForKey:completion:)]) {
            return;
        }
        
        [templateData.dataListener gx_asyncLoadDataForKey:rawData[@"load"] completion:^(NSDictionary * _Nullable response) {
            if (response && response.count > 0) {
                NSMutableDictionary *convertedRes = [NSMutableDictionary dictionaryWithDictionary:response ?: @{}];
                // 移除load字段,避免多次触发
                [convertedRes removeObjectForKey:@"load"];
                // TODO:新旧数据合并
    
                templateData.data = [convertedRes copy];
                [self bindData:templateData onRootNode:node];
            }
        }];
    }
    

    GaiaXiOSDemoListViewController 中添加代理方法,并根据不同的 load 模拟异步请求:

    - (void)gx_asyncLoadDataForKey:(NSString *)loadKey completion:(void (^)(NSDictionary * _Nullable))completion {
        // 异步加载的卡片1
        if ([loadKey isEqualToString:@"async_load1"]) {
            dispatch_async(dispatch_get_global_queue(0, 0), ^{
                dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
                    completion(@{
                        @"img": @"https://s.xiaopeng.com/xp-app/material/webp/ngp.webp",
                        @"title": @"async title",
                        @"desc": @"我是副标题",
                        @"load": @"asyn_load1"
                    });
                });
            });
        } else if ([loadKey isEqualToString:@"async_load2"]) {
            // 异步加载的卡片2
            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
                completion([GaiaXHelper jsonWithFileName:@"load2"]);
            });
        }
        ...
    }
    

    目前自己在 Demo 中自测正常,可以达到异步加载目的。今天刚接触这个项目,其实主要有两个疑问:

    • 后续是否考虑为模板添加异步请求的功能?
    • 我在 Demo 中尝试了支持文本自适应的模板,在异步请求中模拟了超长文本的数据,最后 bindData 时模板可以正常自适应高度。不过由于 ListViewControllercell 的高度为手动设置,这时候我没有重新设置高度的话,发现 cell 还是保持原来的高度。所以想问下,是否有比较好的方式来处理这种动态高度的场景?
    question 
    opened by ljunb 3
  • gaiaX 与支持插件化的 项目  classloader 不匹配问题

    gaiaX 与支持插件化的 项目 classloader 不匹配问题

    gaiax 接入有插件化项目时,插件中 动态化模版加载插件中资源找不到

    宿主项目是插件化项目 ,在宿主项目中,我们对classloader 进行封装,插件用 PathClassloader 的子类进行加载。但是如果涉及在插件中 加载 类 或者 资源时,会出现资源加载异常的崩溃。

    问题定位 image

    image

    image

    image

    但是 我们的classloader 并不是 bootClassLoader 所以出现类找不到问题。 对于这种情况,如果我们项目想使用gaiax 的话,能否提供一个更适合维护的方案? 我当前的解决方案 是 在绑定模版时 提供一个监听方法 将 是否 是插件 以及对应的classloader 传给 GaiaX框架 在加载类资源时 如果发现时插件 就更换classloader 但是这样对框架侵入太大,希望有更好的方案可以替代。

    客户端 (请填写如下信息) :

    • 设备: [e.g. iPhone6]
    • 系统: [e.g. iOS8.1]
    • GaiaX SDK版本 [e.g. 0.1.0]
    • Gaia Studio版本 [e.g. 0.1.0]
    • GaiaX 模板文件和模板数据

    崩溃日志 在这里添加崩溃日志

    附加信息 在这里添加有关该问题的任何其他信息。

    question 
    opened by hycoon 2
  • 请问设置了自定义View,获取高度后,如何刷新当前item节点高度?

    请问设置了自定义View,获取高度后,如何刷新当前item节点高度?

    描述这个问题

    当前设置了自定义View,且高度获取为400,调用哪些方法可以刷新item的高度

    //新增接口,外部自定义View实现该接口
        interface GXICustomViewHeight{
            fun setShowHeight(updater:GXNodeTreeUpdater,context: GXTemplateContext , gxNode: GXNode)
        }
    
    //外部customview高度计算后,调用updateCustomView
     fun updateCustomView(gxTemplateContext: GXTemplateContext, height: Float, gxNode: GXNode) {
            
            val gxTemplateNode = gxNode.templateNode
            val gxStretchNode = gxNode.stretchNode
            val stretchStyle = gxStretchNode.node.getStyle()
            val gxStyle = gxNode.templateNode.finalCss?.style ?: return
    
            val rootNode = context.rootNode
                ?: throw IllegalArgumentException("RootNode is null(buildNodeLayout)")
            val templateData = context.templateData?.data
                ?: throw IllegalArgumentException("Data is null")
            val size = Size(context.size.width, context.size.height)
    
            val result = Size<Dimension>(
                Dimension.Points(100f),
                Dimension.Points(400f)
            )
            GXTemplateUtils.updateSize(result, stretchStyle.size)
    
            updateLayoutByFlexBox(
                gxTemplateContext,
                gxNode
            )
    
            stretchStyle.free()
            stretchStyle.init()
            gxStretchNode.node.setStyle(stretchStyle)
            gxStretchNode.node.markDirty()
    
            buildNodeLayout()
            GXViewTreeUpdater(gxTemplateContext, rootNode).build()
    
        }
    

    复现步骤

    可通过分步复现该问题:

    1. 到什么页面 '...'
    2. 点击 '....'
    3. 滑动到 '....'
    4. 产生错误

    预期正确的结果

    请清晰和简明的描述你预期正确的结果。

    截图

    如果可以的话,添加截图来帮助解释您的问题。

    客户端 (请填写如下信息) :

    • 设备: [e.g. iPhone6]
    • 系统: [e.g. iOS8.1]
    • GaiaX SDK版本 [e.g. 0.1.0]
    • Gaia Studio版本 [e.g. 0.1.0]
    • GaiaX 模板文件和模板数据

    崩溃日志 在这里添加崩溃日志

    附加信息 在这里添加有关该问题的任何其他信息。

    feature 
    opened by leo-wxy 8
  • Android:通过display设置item内部view显隐,高度显示不正确

    Android:通过display设置item内部view显隐,高度显示不正确

    Describe the bug

    根据条件设置display:flex 或 none控制item内view的显隐,显示效果不符合预期

    To Reproduce

    Steps to reproduce the behavior:

    1. Go to '...'
    2. Click on '....'
    3. Scroll down to '....'
    4. See error 基于Demo进行修改设置
    assets/assets_data_source/templates/gx-content-uper-scroll-item/index.css
    #gx-content-uper-scroll-item  {
      flex-direction:column;
      width:204px;
    }
    
    assets/assets_data_source/templates/gx-content-uper-scroll-item/index.databinding
            "title": {
                "value": "$data.title",
                "extend": {
                    "display": "$data.show == true ? 'flex' : 'none'"
                }
            }
    
    assets/assets_data_source/templates/gx-content-uper-scroll/index.json
    {
      "id": "gx-content-uper-scroll",
      "type": "gaia-template",
      "sub-type": "scroll",
      "direction": "vertical",
      "edge-insets": "{0,18,0,18}",
      "item-spacing": 7,
      "row-spacing": 0,
      "layers": [
        {
          "type": "gaia-template",
          "id": "gx-content-uper-scroll-item",
          "sub-type": "custom"
        }
      ]
    }
    
    uper.json
        {
          "data": {
            "img": "https://t7.baidu.com/it/u=1297102096,3476971300&fm=193&f=GIF",
            "title": "我是标题我是标题我是标题我是标题",
            "show": true
          }
        },
        {
          "data": {
            "img": "https://t7.baidu.com/it/u=1297102096,3476971300&fm=193&f=GIF",
            "title": "我是标题我是标题我是标题我是标题",
            "show": false
          }
        },
    

    Expected behavior

    A clear and concise description of what you expected to happen.

    Screenshots Screenshot_2022-11-24-10-16-28-797_com alibaba gaiax demo

    If applicable, add screenshots to help explain your problem.

    Phone (please complete the following information) :

    • Device: [e.g. iPhone6]
    • OS: [e.g. iOS8.1]
    • GaiaX SDK Version [e.g. 0.1.0]
    • GaiaX Template File and Template data

    Additional context Add any other context about the problem here.

    bug 
    opened by leo-wxy 2
  • custom-view的宽或高设置为wrap_content时,能否支持类似text组件的fit-content效果,控件内部实现测量方法后自动把父布局撑开?

    custom-view的宽或高设置为wrap_content时,能否支持类似text组件的fit-content效果,控件内部实现测量方法后自动把父布局撑开?

    因为自定义组件的宽高很多都是在设置数据后,在onMeasure()通过复杂的逻辑计算后才确定的,无法预先确定占用的空间。

    目前自定义view的能力实际上是给挖了一个确定宽高后的坑,你的自定义view可以在这个坑里随便展示。

    这里期望的是能通过自定义view的宽高,反过来影响整个模板的计算结果,也就是给模板中的custom-view的宽高都设置成了auto,期望由custom-view来撑开。目前不支持这个能力。

    question feature 
    opened by zhinengfeiyu 4
  • Android:dp 转 px,pt 转 px,在有些设备上转换结果不对

    Android:dp 转 px,pt 转 px,在有些设备上转换结果不对

    描述这个问题

    dp 转换 px,在有些设备上转换值不对,我看 SDK 中实现如下 image

    其中使用 Resources.getSystem().displayMetrics 获取屏幕参数,但是文档中注释如下,无法用于 dimension unit 计算 image

    还有一个问题,pt 转 px, sdk 中实现如下 image

    这种转换结果过与 TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PT, value, displayMetrics) 有差异

    image image

    既然获取的字体大小可以判断 dimension unit,我认为可以在设置字体大小时传入对应 dimension unit 即可,不需要转换成 px

    复现步骤

    可通过分步复现该问题:

    1. 到什么页面 '...'
    2. 点击 '....'
    3. 滑动到 '....'
    4. 产生错误

    预期正确的结果

    请清晰和简明的描述你预期正确的结果。

    截图

    如果可以的话,添加截图来帮助解释您的问题。

    客户端 (请填写如下信息) :

    • 设备: [e.g. iPhone6]
    • 系统: [e.g. iOS8.1]
    • GaiaX SDK版本 [e.g. 0.1.0]
    • Gaia Studio版本 [e.g. 0.1.0]
    • GaiaX 模板文件和模板数据

    崩溃日志 在这里添加崩溃日志

    附加信息 在这里添加有关该问题的任何其他信息。

    bug android 
    opened by fullalien 0
  • iOS项目使用cocoapods导入,开启静态framework特性,编译报错

    iOS项目使用cocoapods导入,开启静态framework特性,编译报错

    描述这个问题

    当我使用cocoapods导入:

    use_frameworks! :linkage => :static
    
    target my_project do
      pod 'GaiaXiOS'
    end
    
    

    我的项目是一个oc和Swift混编项目, 包含很多混编组件, 所以必须打包静态framework并开启module特性进行使用. 但是当我以这种方法引入GaiaXiOS 的时候编译报错

    复现步骤

    可通过分步复现该问题:

    1. Podfile内容:
    use_frameworks! :linkage => :static
    
    target my_project do
      pod 'GaiaXiOS'
    end
    
    
    1. pod update 之后, 在项目任何地方引入:
    #import <GaiaXiOS/GaiaXiOS.h>
    
    1. 编译

    预期正确的结果

    不报错, 正常运行

    截图

    image

    客户端 (请填写如下信息) :

    • 设备: Any iOS device (arm64)
    • 系统: iOS 15.5
    • GaiaXiOS 0.2.2.5
    opened by ProMonkeyZ 0
Releases(0.3.0)
  • 0.2.9(Oct 28, 2022)

    发布日志:

    Android:

    • 修复文本自适应问题:https://github.com/alibaba/GaiaX/pull/247 @biezhihua
    • 修复文本自适应问题:https://github.com/alibaba/GaiaX/pull/234 @biezhihua
    • 修复本地资源解析问题:https://github.com/alibaba/GaiaX/pull/219 @biezhihua
    • SDK与Studio通信模块化:https://github.com/alibaba/GaiaX/pull/246 @biezhihua
    • GaiaX Lottie动画 Android对齐Ios实现:https://github.com/alibaba/GaiaX/pull/237 @WattledGnata
    • 支持毛玻璃效果:https://github.com/alibaba/GaiaX/pull/224 @biezhihua
    • Slider事件处理:https://github.com/alibaba/GaiaX/pull/218 @fullalien

    iOS:

    • 修复更新size未生效的问题
    • 支持毛玻璃效果

    表达式:

    • 修复表达式多线程读写问题 https://github.com/alibaba/GaiaX/pull/250 @MXPDS6688
    • 社区与优酷共用表达式 https://github.com/alibaba/GaiaX/pull/244 @MXPDS6688
    • 表达式问题修复以及新增整数类型:https://github.com/alibaba/GaiaX/pull/240 @MXPDS6688
    • 包大小优化:https://github.com/alibaba/GaiaX/pull/236 @MXPDS6688
    Source code(tar.gz)
    Source code(zip)
  • 0.2.8-support(Sep 14, 2022)

  • 0.2.7-support(Aug 1, 2022)

  • 0.2.5(Jun 30, 2022)

    发布日志:

    • Android: @逐锋
      • 统一处理Adapter中的异常
    • iOS:@神梦
      • 修复iOS端表达式问题
    • 表达式: @广雉
      • 修复iOS端表达式问题
    Source code(tar.gz)
    Source code(zip)
  • v0.2.4(Jul 7, 2022)

  • 0.2.4(Jun 22, 2022)

    发布日志:

    • Android: @逐锋
      • 修复backgroundImage对普通颜色解析未生效的问题。
      • 修复FlexGrow布局内的text文字自适应未生效的问题。
      • 修复嵌套模板数据传递错误的问题。
      • 修复布局更新逻辑。
      • 新增bindData支持设置size的API特性。
      • 修复文字多行自适应计算不正确的的问题。
      • 修复容器坑位事件未生效的问题。
      • 修复Lottie点击事件未生效的问题。
      • 调整异常抛出方式。
      • 修复表达式不识别FastJson的Double和BigDecimal值的问题。
      • 新增模板类型字段用于识别assets和remote。
      • 修复层级合并的时候没有处理事件导致层级丢失的问题。
      • 修复圆角阴影的UI瑕疵问题。
    • iOS:@神梦
      • 修复更新size未生效的问题。
      • 新增读取外部模板的方法,无需关注格式的特性。
      • 修复多容器复用一个坑位导致的布局问题。
      • 修复参数为空的计算size异常的问题。
      • 新增bindData支持设置size的API特性。
      • 修复点击视图添加点击事件无效的问题。 @马俊良-掌阅科技-iOS
      • 调整扫码预览数据。
      • 修复placeholder没有识别local:前缀的问题。
      • 修复赋值错误。 @马俊良-掌阅科技-iOS
    • 表达式: @广雉
      • 新增能表达式下划线识别的特性。
      • 新增字符串与数值类型相加的特性。
      • 修复数值类型小数点后多余0的处理问题。
      • 修复多线程安全问题。
      • 修复函数的崩溃问题。
    Source code(tar.gz)
    Source code(zip)
  • 0.2.4-support(Jun 22, 2022)

  • 0.2.3.2(Jun 14, 2022)

  • 0.2.3.2-support(Jun 14, 2022)

  • 0.2.3.1(Jun 10, 2022)

  • 0.2.3.1-support(Jun 10, 2022)

Owner
Alibaba
Alibaba Open Source
Alibaba
🤖🦀 A rust native replacement for Android's `sdkmanager`

???? A rust native replacement for Android's `sdkmanager`

Traverse Research 13 Dec 13, 2022
An opinionated, monolithic template for Bevy with cross-platform CI/CD, native + WASM launchers, and managed cross-platform deployment.

??️ Bevy Shell - Template An opinionated, monolithic template for Bevy with cross-platform CI/CD, native + WASM launchers, and managed cross-platform

Kurbos 218 Dec 30, 2022
Easy c̵̰͠r̵̛̠ö̴̪s̶̩̒s̵̭̀-t̶̲͝h̶̯̚r̵̺͐e̷̖̽ḁ̴̍d̶̖̔ ȓ̵͙ė̶͎ḟ̴͙e̸̖͛r̶̖͗ë̶̱́ṉ̵̒ĉ̷̥e̷͚̍ s̷̹͌h̷̲̉a̵̭͋r̷̫̊ḭ̵̊n̷̬͂g̵̦̃ f̶̻̊ơ̵̜ṟ̸̈́ R̵̞̋ù̵̺s̷̖̅ţ̸͗!̸̼͋

Rust S̵̓i̸̓n̵̉ I̴n̴f̶e̸r̵n̷a̴l mutability! Howdy, friendly Rust developer! Ever had a value get m̵̯̅ð̶͊v̴̮̾ê̴̼͘d away right under your nose just when

null 294 Dec 23, 2022
Cross-platform, cross-browser, cross-search-engine duckduckgo-like bangs

localbang Cross-platform, cross-browser, cross-search-engine duckduckgo-like bangs What are "bangs"?? Bangs are a way to define where to search inside

Jakob Kruse 7 Nov 23, 2022
Blockchain Business Card v2

This is NEAR chain dApp consisting a relatively simple smart contract written in rust and implemented with a react front end. The contract allows you to mint a business card for 5 NEAR.

Julio Ramirez 5 Feb 8, 2022
A credit card checker written in Rust

?? Credit Card Checker A credit card checker written in Rust Checks if a card number is valid with the help of the Luhn algorithm and checks also for

Oliver Borner 3 Aug 9, 2022
Hyperswitch Card Vault is an open-source sensitive information storage system built on Rust.

Tartarus - Rust Locker Overview The Hyperswitch Card Vault (Tartarus) is a highly performant and a secure vault to save sensitive data such as payment

Juspay Technologies 9 Nov 23, 2023
unrust - A pure rust based (webgl 2.0 / native) game engine

unrust A pure rust based (webgl 2.0 / native) game engine Current Version : 0.1.1 This project is under heavily development, all api are very unstable

null 368 Jan 3, 2023
Rust bindings to the minimalist, native, cross-platform UI toolkit `libui`

Improved User Interface A cross-platform UI toolkit for Rust based on libui iui: ui-sys: iui is a simple (about 4 kLOC of Rust), small (about 800kb, i

Rust Native UI Group 865 Dec 27, 2022
Truly cross platform, truly native. multiple backend GUI for rust

WIP: Sauron-native a rust UI library that conquers all platforms ranging from desktop to mobile devices. An attempt to create a truly native, truly cr

Jovansonlee Cesar 627 Jan 5, 2023
Cross-platform native Rust menu library

A cross-platform Rust library for managing the native operating system menus.

Mads Marquart 16 Jan 6, 2023
Native cross-platform full feature terminal-based sequence editor for git interactive rebase.

Native cross-platform full feature terminal-based sequence editor for git interactive rebase.

Tim Oram 1.2k Jan 2, 2023
Cross-platform tool to update DNS such as Gandi.net with your dynamic IP address

GDU | Generic DNS Update A cross-platform tool to update DNS zonefiles (such as Gandi.net) when you have a dynamic public IP address. It's a DynDNS or

Damien Lecan 10 Jan 20, 2022
Neutral cross-platform Rust game template

Rust Game Template Neutral cross-platform Rust game template. Build tool This project uses cargo-make task runner. It's required to build the project.

null 0 Feb 5, 2022
A lightweight, cross-platform epub reader.

Pend Pend is a program for reading EPUB files. Check out the web demo! Preview Image(s) Installation Building Pend is simple & easy. You should be abl

bx100 11 Oct 17, 2022
A lightweight cross-platform system-monitoring fltk gui application based on sysinfo

Sysinfo-gui A lightweight cross-platform system-monitoring fltk gui application based on sysinfo. The UI design is inspired by stacer. The svg icons a

Mohammed Alyousef 22 Dec 31, 2022
A high-performance, lightweight, and cross-platform QUIC library

TQUIC English | 中文 TQUIC is a high-performance, lightweight, and cross-platform library for the IETF QUIC protocol. Advantages High performance: TQUIC

Tencent 11 Oct 27, 2023
Cross-platform audio I/O library in pure Rust

CPAL - Cross-Platform Audio Library Low-level library for audio input and output in pure Rust. This library currently supports the following: Enumerat

null 1.8k Jan 8, 2023
Swash is a pure Rust, cross-platform crate that provides font introspection, complex text shaping and glyph rendering.

Swash is a pure Rust, cross-platform crate that provides font introspection, complex text shaping and glyph rendering. Goals This crate aims to

Chad Brokaw 398 Dec 14, 2022
A pure Rust, cross-platform soundboard app

afx This thing is my attempt at a soundboard program. afx.mp4 Why? I tried some prior art and decided that none of the existing options fit my needs.

Andrew Kvapil 11 Dec 15, 2022