Mobile Development 10 min read

Top Open‑Source Tools for Mini‑Programs, Android Packaging & Hot‑Update

This article introduces five open‑source projects—mpvue for mini‑program development, Walle for Android channel‑package generation, SQLAdvisor for MySQL index optimization, Leaf for distributed ID generation, and Robust for Android hot‑update—detailing their key features, configuration steps, and source repositories.

Java High-Performance Architecture
Java High-Performance Architecture
Java High-Performance Architecture
Top Open‑Source Tools for Mini‑Programs, Android Packaging & Hot‑Update

mpvue Mini‑Program Development Framework

mpvue is a front‑end framework that enables development of mini‑programs using Vue.js. It currently supports WeChat, Baidu Smart, Toutiao, and Alipay mini‑programs. Built on Vue.js, mpvue modifies the runtime and compiler so that Vue.js development experience works in mini‑program environments.

Main Features

Full component‑based development for higher code reuse.

Complete Vue.js development experience.

Convenient Vuex data management for complex applications.

Fast webpack build with custom strategies and hot‑reload during development.

Support for external npm dependencies.

Quick project initialization using Vue CLI.

Ability to compile H5 code into mini‑program target code.

Project address: https://github.com/Meituan-Dianping/mpvue

Walle – Next‑Generation Channel Package Tool

Walle is a tool for generating channel‑specific APKs under the Android Signature V2 Scheme. It adds custom channel information to the APK Signature Block, improving efficiency of channel package generation. It can be used as a standalone tool or deployed on an HTTP server for real‑time processing.

Configure build.gradle

Add the Walle Gradle plugin dependency in the project’s root build.gradle:

buildscript {<br/>    dependencies {<br/>        classpath 'com.meituan.android.walle:plugin:1.1.7'<br/>    }<br/>}

Apply the plugin and add the AAR for reading channel numbers in the app module’s build.gradle:

apply plugin: 'walle'<br/><br/>dependencies {<br/>    compile 'com.meituan.android.walle:library:1.1.7'<br/>}

Plugin Configuration

walle {<br/>    // Output directory for channel packages<br/>    apkOutputFolder = new File("${project.buildDir}/outputs/channels")<br/>    // Custom APK file name format<br/>    apkFileNameFormat = '${appName}-${packageName}-${channel}-${buildType}-v${versionName}-${versionCode}-${buildTime}.apk'<br/>    // Channel configuration file<br/>    channelFile = new File("${project.getProjectDir()}/channel")<br/>}

Configuration details: apkOutputFolder: default new File("${project.buildDir}/outputs/apk"). apkFileNameFormat: default '${appName}-${buildType}-${channel}.apk'. Variables such as projectName, appName, packageName, buildType, channel, versionName, versionCode, buildTime, fileSHA1, flavorName can be used. channelFile: path to the file containing channel definitions (supports comments with #).

Project address: https://github.com/Meituan-Dianping/walle

SQLAdvisor – SQL Index Optimization Suggestions

SQLAdvisor is a tool developed by Meituan‑Dianping’s DBA team to analyze SQL statements and provide index optimization recommendations. It parses MySQL syntax, examines WHERE clauses, aggregation conditions, and multi‑table joins to suggest improvements.

Project address: https://github.com/Meituan-Dianping/SQLAdvisor

Leaf – Distributed ID Generation Service

Leaf was created to meet the need for generating order IDs across multiple business lines. It replaces DB auto‑increment, Redis, or UUID approaches with a unified distributed ID service. Deployed internally at Meituan, it handles up to 50 k QPS with 1 ms 99.9th‑percentile latency.

Configuration Overview

Leaf supports two ID generation modes: segment mode and Snowflake mode, which can be enabled independently.

Configuration file: leaf-server/src/main/resources/leaf.properties.

Project address: https://github.com/Meituan-Dianping/Leaf

Robust – Next‑Generation Android Hot‑Update System

Robust provides seamless hot‑update for Android 2.3–10 without requiring app restarts. Patches apply in real time with a 99.9% success rate, supporting method‑level fixes, class additions, and compatibility with ProGuard.

Usage Steps

In the app’s build.gradle, add the plugin and dependency:

apply plugin: 'com.android.application'<br/>// Uncomment for patch generation<br/>// apply plugin: 'auto-patch-plugin'<br/>apply plugin: 'robust'<br/><br/>compile 'com.meituan.robust:robust:0.4.99'

Add the Robust Gradle plugin classpath in the project‑level build.gradle:

buildscript {<br/>    repositories { jcenter() }<br/>    dependencies {<br/>        classpath 'com.meituan.robust:gradle-plugin:0.4.99'<br/>        classpath 'com.meituan.robust:auto-patch-plugin:0.4.99'<br/>    }<br/>}

Create robust.xml in the src directory (refer to the demo for details).

Advantages

Supports Android 2.3–10.

High compatibility and stability; 99.9% patch success rate.

Patches take effect instantly without restarting the app.

Method‑level fixes, including static methods.

Supports adding new methods and classes.

Compatible with ProGuard obfuscation, inlining, and optimization.

Project address: https://github.com/Meituan-Dianping/Robust

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Mobile DevelopmentLeafopen-sourceRobustmpvueSQLAdvisorWalle
Java High-Performance Architecture
Written by

Java High-Performance Architecture

Sharing Java development articles and resources, including SSM architecture and the Spring ecosystem (Spring Boot, Spring Cloud, MyBatis, Dubbo, Docker), Zookeeper, Redis, architecture design, microservices, message queues, Git, etc.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.