安卓手机玩转Manim动画制作

文章目录


本文由Jzwalliser原创,发布在CSDN平台上,遵循CC 4.0 BY-NC-SA协​议​。​

​因​此​,​若​需​转​载​/​引​用​本​文​,​请​注​明​作​者​并​附​原​文​链​接​,​不​得​用​于​商​业​用​途​。​

​违​者​必​究​,​谢​谢​配​合​。​

​个​人​主​页​:​blog.csdn.net/jzwalliser

​前​言​

最​近​突​发​奇​想​:​能​不​能​在​安​卓​手​机​上​跑​ ​M​a​n​i​m​?​毕​竟​出​门​在​外​,​手​边​只​有​手​机​的​时​候​,​要​是​能​随​手​写​个​动​画​演​示​,​岂​不​是​美​滋​滋​?​

说​干​就​干​,​开​整​!​

​准​备​工​具​

​硬​件​(​自​己​准​备​)​

1​. ​一​台​手​机​(​至​少​安​卓​5​以​上​,​安​卓​7​以​上​会​更​好​)​

​软​件​(​我​会​在​文​末​提​供​链​接​)​

2​. ​T​e​r​m​u​x​(​a​p​k​)​

3​. ​U​b​u​n​t​u​ ​容​器​镜​像​(​.​t​a​r​.​x​z​)​

4​. ​几​个​测​试​文​件​(​z​i​p​)​

​安​装​

​1​. ​安​装​T​e​r​m​u​x​

首​先​,​需​要​安​装​T​e​r​m​u​x​。​因​此​,​上​Github把​t​e​r​m​u​x​的​安​装​包​下​载​下​来​:​

自​行​寻​找​适​合​的​版​本​。​如​果​下​载​不​了​,​也​可​以​到​文​章​末​尾​找​链​接​。​

​2​. ​安​装​p​r​o​o​t​-d​i​s​t​r​o​

在​T​e​r​m​u​x​环​境​中​直​接​安​装​m​a​n​i​m​很​麻​烦​,​因​为​缺​少​了​各​种​依​赖​,​所​以​很​多​东​西​编​译​不​通​过​(​不​是​我​懒​,​而​是​真​折​腾​不​出​来​啊​)​。​

所​以​,​这​里​我​"​曲​线​救​国​"​,​先​安​装​U​b​u​n​t​u​容​器​,​再​在​U​b​u​n​t​u​中​安​装​m​a​n​i​m​(​当​然​,​如​果​你​捣​腾​出​来​t​e​r​m​u​x​下​直​装​m​a​n​i​m​的​方​法​,​也​欢​迎​分​享​)​。​

所​以​,​执​行​:​

bash 复制代码
pkg install python proot
pip install proot-distro

如​果​速​度​很​慢​,​也​可​以​先​换​国​内​镜​像​,​再​安​装​。​执​行​:​

bash 复制代码
termux-change-repo

请​使​用​上​、​下​、​空​格​、​回​车​键​操​作​。​

​3​. ​安​装​U​b​u​n​t​u​

下​载​完​p​r​o​o​t​-d​i​s​t​r​o​之​后​,​安​装​U​b​u​n​t​u​。​运​行​:​

bash 复制代码
proot-distro install ubuntu

如​果​网​络​顺​利​,​U​b​u​n​t​u​ ​会​直​接​安​装​完​成​,​那​恭​喜​你​,​可​以​直​接​跳​到​下​一​节​。​

如​果​无​法​下​载​相​应​的​u​b​u​n​t​u​包​,​则​请​手​动​下​载​。​然​后​,​把​u​b​u​n​t​u​拷​贝​到​手​机​内​,​接​着​执​行​:​

bash 复制代码
termux-setup-storage

这​会​打​开​文​件​授​权​的​对​话​框​。​打​开​文​件​访​问​的​开​关​即​可​,​接​着​返​回​到​t​e​r​m​u​x​,​运​行​:​

bash 复制代码
proot-distro install /storage/emulated/0/.../ubuntu-noble-aarch64-pd-v4.18.0.tar.xz

其​中​,​/storage/emulated/0/.../ubuntu-noble-aarch64-pd-v4.18.0.tar.xz就​是​U​b​u​n​t​u​包​的​路​径​,​请​替​换​为​你​的​文​件​!​

安​装​好​后​,​可​通​过​以​下​命​令​查​看​已​安​装​的​内​容​。​

bash 复制代码
proot-distro list

安​装​完​后​,​我​的​手​机​上​显​示​的​是​ubuntu-noble-aarch64-pd-v4.18.0。​实​在​是​很​长​,​如​果​你​也​嫌​长​的​话​,​可​以​重​命​名​:​

bash 复制代码
proot-distro rename ubuntu-noble-aarch64-pd-v4.18.0 ubuntu

​4​. ​登​录​U​b​u​n​t​u​

登​录​很​简​单​:​

bash 复制代码
proot-distro login ubuntu

如​果​出​错​显​示​:​

复制代码
Error: container 'ubuntu' is not installed.

多​半​是​因​为​容​器​名​不​一​致​。​此​时​你​有​两​个​选​择​:​

1​. ​返​回​上​一​步​,​把​容​器​重​命​名​为​u​b​u​n​t​u​,​再​登​录​

2​. ​运​行​:​proot-distro login ubuntu-noble-aarch64-pd-v4.18.0也​可​以​登​陆​(​反​正​去​查​proot-distro list)​

​5​. ​安​装​必​要​的​包​

登​录​u​b​u​n​t​u​后​,​就​可​以​开​始​安​装​必​要​的​包​了​。​执​行​:​

bash 复制代码
apt update
apt install libswresample-dev libavutil-dev libpango1.0-dev fonts-noto-cjk ffmpeg libpangocairo-1.0-0 libavformat-dev pkg-config gir1.2-pango-1.0 libcairo2-dev libswscale-dev libfontconfig1-dev libavdevice-dev build-essential libfreetype6-dev python3-dev libavcodec-dev libavfilter-dev python3-pip libglib2.0-dev

必​要​的​包​安​装​完​了​,​现​在​开​始​安​装​m​a​n​i​m​。​

国​内​网​络​环​境​下​建​议​使​用​国​内​ ​P​y​P​I​ ​镜​像​,​例​如​清​华​、​阿​里​云​等​。​这​里​以​腾​讯​云​为​例​:​

bash 复制代码
pip install manim -i https://mirrors.cloud.tencent.com/pypi/simple/ --break-system-packages

解​释​一​下​--break-system-packages:​D​e​b​i​a​n​/​U​b​u​n​t​u​ ​新​版​本​ ​p​i​p​ ​默​认​禁​止​直​接​向​系​统​ ​P​y​t​h​o​n​ ​安​装​p​i​p​包​,​不​过​可​以​--break-system-packages绕​过​这​个​机​制​。​但​是​这​会​污​染​系​统​ ​P​y​t​h​o​n​ ​环​境​,​所​以​如​果​计​划​在​容​器​中​做​更​多​开​发​,​强​烈​建​议​使​用​python -m venv。​当​然​,​如​果​整​个​容​器​内​只​运​行​m​a​n​i​m​的​话​问​题​也​不​大​。​

一​般​来​说​,​到​这​一​步​就​结​束​了​,​可​以​正​常​使​用​m​a​n​i​m​了​。​

​6​. ​安​装​ LaTeX \LaTeX LATEX

这​些​操​作​是​可​选​的​。​如​果​你​有​数​学​公​式​渲​染​的​需​求​,​就​继​续​看​下​去​吧​,​若​无​数​学​公​式​渲​染​需​求​,​到​这​里​就​可​以​结​束​安​装​啦​~​

​T​e​x​l​i​v​e​-f​u​l​l​

如​果​手​机​空​间​足​够​大​(​例​如​你​是​土​豪​)​,​不​想​倒​腾​想​省​心​,​那​么​安​装​t​e​x​l​i​v​e​-f​u​l​l​即​可​。​

bash 复制代码
apt install texlive-full

这​会​下​载​8​G​B​的​内​容​,​然​后​一​切​都​会​自​动​配​置​好​,​不​需​要​人​工​干​预​。​

​T​i​n​y​T​e​x​

如​果​你​觉​得​8​G​B​太​太​太​大​了​(​我​就​是​这​么​觉​得​的​,​显​然​我​不​是​土​豪​)​,​那​么​装​T​i​n​y​T​e​x​。​不​过​,​会​比​较​麻​烦​。​

执​行​:​

bash 复制代码
apt install wget
wget -qO- "https://tinytex.yihui.org/install-bin-unix.sh" | sh

自​此​,​T​i​n​y​T​e​x​安​装​完​毕​。​接​着​,​把​T​i​n​y​T​e​x​的​L​a​T​e​X​编​译​器​加​到​环​境​变​量​中​:​

bash 复制代码
echo export PATH="$HOME/.TinyTeX/bin/aarch64-linux:$PATH" >> ~/.bashrc

注​意​:​该​路​径​适​用​于​ ​A​R​M​6​4​(​a​a​r​c​h​6​4​)​设​备​,​但​如​果​你​的​设​备​不​是​ ​a​a​r​c​h​6​4​,​则​可​通​过​uname -m确​认​架​构​,​并​相​应​调​整​路​径​。​

重​新​登​录​:​

bash 复制代码
logout
proot-distro login ubuntu

检​查​:​

bash 复制代码
which latex

如​果​有​输​出​,​那​么​配​置​正​确​。​

接​着​,​安​装​必​要​的​包​:​

bash 复制代码
tlmgr install standalone dvisvgm preview babel babel-english
mktexlsr

LaTeX \LaTeX LATEX就​此​安​装​完​毕​!​

​7​. ​中​文​支​持​

如​果​需​要​支​持​中​文​,​那​么​还​需​要​修​改​文​件​。​(​推​荐​,​这​样​就​一​劳​永​逸​了​)​

安​装​nano(​熟​悉​vim的​也​可​以​使​用​vim)​:​

bash 复制代码
apt install nano

接​着​,​用​nano打​开​文​件​/usr/local/lib/python3.12/dist-packages/manim/utils/tex.py:​

bash 复制代码
nano /usr/local/lib/python3.12/dist-packages/manim/utils/tex.py

此​时​,​你​会​看​到​文​件​长​这​个​样​子​:​

py 复制代码
"""Utilities for processing LaTeX templates."""

from __future__ import annotations

__all__ = [
    "TexTemplate",
]

import copy
import re
import warnings
from dataclasses import dataclass, field
from pathlib import Path
from typing import TYPE_CHECKING, Any

if TYPE_CHECKING:
    from typing import Self

    from manim.typing import StrPath

_DEFAULT_PREAMBLE = r"""\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{amssymb}"""

_BEGIN_DOCUMENT = r"\begin{document}"
_END_DOCUMENT = r"\end{document}"
#后面省略

翻​到​_DEFAULT_PREAMBLE,​修​改​成​这​样​:​

py 复制代码
#上面省略
_DEFAULT_PREAMBLE = r"""\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{ctex}"""
#下面省略

然​后​,​Ctrl+O保​存​,​再​Enter确​认​,​最​后​Ctrl+X退​出​编​辑​。​

接​着​,​如​果​你​安​装​的​是​t​i​n​y​t​e​x​(​安​装​了​t​e​x​l​i​v​e​-f​u​l​l​的​忽​略​这​一​步​)​,​还​要​执​行​:​

bash 复制代码
tlmgr install ctex

​测​试​

安​装​完​成​后​,​可​以​写​一​个​M​a​n​i​m​场​景​,​保​存​到​main.py:​

py 复制代码
from manim import *
import random
import numpy

class Congratulations(Scene):
    def construct(self):
        banner = ManimBanner().scale(0.5)
        congratulation = Text("Congratulations!\nYour Manim installation was successful.").next_to(banner,DOWN).scale(0.8)
        self.play(banner.create(),Write(congratulation))
        
        confetti = VGroup()
        colors = [RED,BLUE,GREEN,YELLOW,PURPLE,ORANGE,PINK,TEAL]
        shapes = [Rectangle(width=0.08,height=0.08,fill_opacity=0.9,stroke_width=0),Circle(radius=0.04,fill_opacity=0.9,stroke_width=0),Triangle(radius=0.07,fill_opacity=0.9,stroke_width=0)]
        for i in range(120):
            p = shapes[random.randint(0,len(shapes) - 1)].copy().set_color(color=random.choice(colors))
            p.move_to([random.uniform(-6,6),-3.5,0])
            p.velocity = numpy.array([random.uniform(-0.6,0.6),random.uniform(1.8,2.8),0])
            p.rotate(random.uniform(0,TAU))
            p.angular_velocity = random.uniform(-2,2)
            p.gravity = -0.6
            p.fade_start = False
            confetti.add(p)

        def update_particles(mob,dt):
            for p in mob:
                p.shift(p.velocity * dt * 3)
                p.velocity[1] += p.gravity * dt * 3
                p.rotate(p.angular_velocity * dt * 3)
                if p.velocity[1] < 0 and not p.fade_start:
                    p.fade_start = True
                if p.fade_start:
                    p.set_opacity(max(0,p.get_fill_opacity() - 0.01))
        confetti.add_updater(update_particles)
        self.add(confetti)
        
        self.play(banner.expand())
        self.wait(3)
        self.play(FadeOut(banner),FadeOut(congratulation))

接​着​运​行​以​下​命​令​测​试​:​

复制代码
manim -ql main.py

如​果​能​成​功​生​成​视​频​,​那​么​恭​喜​,​你​的​m​a​n​i​m​可​以​正​常​使​用​了​。​

还​可​以​继​续​测​试​ LaTeX \LaTeX LATEX,​代​码​保​存​到​latex.py:​

py 复制代码
from manim import *

class TestLaTeX(Scene):
    def construct(self):
        euler = MathTex(r"\text{Euler's Formula: }e^{i\pi} + 1 = 0")
        binomial = MathTex(r"\text{Binomial Theroem: }(a+b)^n = \sum_{k=0}^n{\rm C}_n^ka^{n-k}b^k")
        taylor = MathTex(r"\text{Taylor Expansion: }e^x = \sum_{n=0}^{\infty}\dfrac{x^n}{n!}")
        gravity = MathTex(r"\text{Gravity: }F = G\dfrac{m_1 m_2}{r^2}")
        integral = MathTex(r"\text{Integral: }\int e^{x} \,{\rm d}x = e^{x} + C")
        formulae = VGroup(euler,binomial,taylor,gravity,integral).arrange(DOWN,aligned_edge=LEFT).center()
        self.play(Write(formulae,lag_ratio=0.01))
        self.wait(1)
        self.play(FadeOut(formulae))

执​行​:​

bash 复制代码
manim -ql latex.py

如​果​能​成​功​生​成​视​频​,​那​么​恭​喜​,​你​的​ LaTeX \LaTeX LATEX也​可​以​正​常​使​用​了​。​

对​于​中​文​,​代​码​保​存​到​ctex.py:​

py 复制代码
from manim import *

class TestChineseLaTeX(Scene):
    def construct(self):
        euler = MathTex(r"\text{欧拉公式:}e^{i\pi} + 1 = 0")
        binomial = MathTex(r"\text{二项式定理:}(a+b)^n = \sum_{k=0}^n{\rm C}_n^ka^{n-k}b^k")
        taylor = MathTex(r"\text{泰勒展开:}e^x = \sum_{n=0}^{\infty}\dfrac{x^n}{n!}")
        gravity = MathTex(r"\text{万有引力:}F = G\dfrac{m_1 m_2}{r^2}")
        integral = MathTex(r"\text{不定积分}\int e^{x} \,{\rm d}x = e^{x} + C")
        formulae = VGroup(euler,binomial,taylor,gravity,integral).arrange(DOWN,aligned_edge=LEFT).center()
        self.play(Write(formulae,lag_ratio=0.01))
        self.wait(1)
        self.play(FadeOut(formulae))

执​行​:​

bash 复制代码
manim -ql ctex.py

如​果​依​然​能​成​功​生​成​视​频​,​那​么​恭​喜​,​你​的​中​文​ LaTeX \LaTeX LATEX环​境​配​置​成​功​。​

当​然​,​如​果​遇​到​了​什​么​问​题​也​欢​迎​在​评​论​区​交​流​。​

​结​尾​

至​此​,​你​已​经​拥​有​了​一​个​手​机​版​的​动​画​引​擎​啦​!​

当​然​,​手​机​C​P​U​肯​定​没​有​电​脑​C​P​U​那​么​强​悍​,​因​此​渲​染​视​频​没​有​电​脑​那​么​快​,​不​要​要​求​太​高​哦​~​

码​字​不​易​,​记​得​点​赞​收​藏​哦​!​我​们​下​期​再​见​~​


​下​载​链​接​

T​e​r​m​u​x​ ​(​适​用​于​A​n​d​r​o​i​d​ ​7​+)​下​载​
文​件​:​t​e​r​m​u​x​-a​p​p​​v​0​.1​1​9​.0​-b​e​t​a​.​3​+a​p​t​-a​n​d​r​o​i​d​-7​-g​i​t​h​u​b​-d​e​b​u​g​​u​n​i​v​e​r​s​a​l​.​a​p​k​
百度网盘:https://pan.baidu.com/s/1DCpT4Vmb3hv6wFT54BLs0Q?pwd=0000
Github:https://github.com/termux/termux-app/releases/download/v0.119.0-beta.3/termux-app_v0.119.0-beta.3+apt-android-7-github-debug_universal.apk
其​他​版​本​可​也​可​前​往​Github下​载​
T​e​r​m​u​x​ ​(​适​用​于​A​n​d​r​o​i​d​ ​7​+,​a​r​m​6​4​-v​8​a​)​下​载​
文​件​:​t​e​r​m​u​x​-a​p​p​​v​0​.1​1​9​.0​-b​e​t​a​.​3​+a​p​t​-a​n​d​r​o​i​d​-7​-g​i​t​h​u​b​-d​e​b​u​g​​a​r​m​6​4​-v​8​a​.​a​p​k​
百度网盘:https://pan.baidu.com/s/1znolVwBiKcGSg5rGu_jbaw?pwd=0000
Github:https://github.com/termux/termux-app/releases/download/v0.119.0-beta.3/termux-app_v0.119.0-beta.3+apt-android-7-github-debug_arm64-v8a.apk
其​他​版​本​可​也​可​前​往​Github下​载​
T​e​r​m​u​x​ ​(​适​用​于​A​n​d​r​o​i​d​ ​7​+,​a​r​m​e​a​b​i​-v​7​a​)​下​载​
文​件​:​t​e​r​m​u​x​-a​p​p​​v​0​.1​1​9​.0​-b​e​t​a​.​3​+a​p​t​-a​n​d​r​o​i​d​-7​-g​i​t​h​u​b​-d​e​b​u​g​​a​r​m​e​a​b​i​-v​7​a​.​a​p​k​
百度网盘:https://pan.baidu.com/s/1CJgzQcBCZzginUv8khWDZQ?pwd=0000
Github:https://github.com/termux/termux-app/releases/download/v0.119.0-beta.3/termux-app_v0.119.0-beta.3+apt-android-7-github-debug_armeabi-v7a.apk
其​他​版​本​可​也​可​前​往​Github下​载​
T​e​r​m​u​x​ ​(​适​用​于​A​n​d​r​o​i​d​ ​7​+,​x​8​6​_​6​4​)​下​载​
文​件​:​t​e​r​m​u​x​-a​p​p​​v​0​.1​1​9​.0​-b​e​t​a​.​3​+a​p​t​-a​n​d​r​o​i​d​-7​-g​i​t​h​u​b​-d​e​b​u​g​​x​8​6​_​6​4​.a​p​k​
百度网盘:https://pan.baidu.com/s/1zlr9BQG3GWKYKyJ4rTwsFw?pwd=0000
Github:https://github.com/termux/termux-app/releases/download/v0.119.0-beta.3/termux-app_v0.119.0-beta.3+apt-android-7-github-debug_x86_64.apk
其​他​版​本​可​也​可​前​往​Github下​载​
T​e​r​m​u​x​ ​(​适​用​于​A​n​d​r​o​i​d​ ​5​/​6​)​下​载​
文​件​:​t​e​r​m​u​x​-a​p​p​​v​0​.1​1​9​.0​-b​e​t​a​.​3​+a​p​t​-a​n​d​r​o​i​d​-5​-g​i​t​h​u​b​-d​e​b​u​g​​u​n​i​v​e​r​s​a​l​.​a​p​k​
百度网盘:https://pan.baidu.com/s/1UN78Kknhx92JyxeY8MiV7w?pwd=0000
Github:https://github.com/termux/termux-app/releases/download/v0.119.0-beta.3/termux-app_v0.119.0-beta.3+apt-android-5-github-debug_universal.apk
其​他​版​本​可​也​可​前​往​Github下​载​
T​e​r​m​u​x​ ​(​适​用​于​A​n​d​r​o​i​d​ ​5​/​6​,​a​r​m​6​4​-v​8​a​)​下​载​
文​件​:​t​e​r​m​u​x​-a​p​p​​v​0​.1​1​9​.0​-b​e​t​a​.​3​+a​p​t​-a​n​d​r​o​i​d​-5​-g​i​t​h​u​b​-d​e​b​u​g​​a​r​m​6​4​-v​8​a​.​a​p​k​
百度网盘:https://pan.baidu.com/s/1xb1cUFbxD0SgcrZBnqJB4A?pwd=0000
Github:https://github.com/termux/termux-app/releases/download/v0.119.0-beta.3/termux-app_v0.119.0-beta.3+apt-android-5-github-debug_arm64-v8a.apk
其​他​版​本​可​也​可​前​往​Github下​载​
T​e​r​m​u​x​ ​(​适​用​于​A​n​d​r​o​i​d​ ​5​/​6​,​a​r​m​e​a​b​i​-v​7​a​)​下​载​
文​件​:​t​e​r​m​u​x​-a​p​p​​v​0​.1​1​9​.0​-b​e​t​a​.​3​+a​p​t​-a​n​d​r​o​i​d​-5​-g​i​t​h​u​b​-d​e​b​u​g​​a​r​m​e​a​b​i​-v​7​a​.​a​p​k​
百度网盘:https://pan.baidu.com/s/1nWw5E9Iq0TEjZNdPoksbUw?pwd=0000
Github:https://github.com/termux/termux-app/releases/download/v0.119.0-beta.3/termux-app_v0.119.0-beta.3+apt-android-5-github-debug_armeabi-v7a.apk
其​他​版​本​可​也​可​前​往​Github下​载​
T​e​r​m​u​x​ ​(​适​用​于​A​n​d​r​o​i​d​ ​5​/​6​,​x​8​6​_​6​4​)​下​载​
文​件​:​t​e​r​m​u​x​-a​p​p​​v​0​.1​1​9​.0​-b​e​t​a​.​3​+a​p​t​-a​n​d​r​o​i​d​-5​-g​i​t​h​u​b​-d​e​b​u​g​​x​8​6​_​6​4​.a​p​k​
百度网盘:https://pan.baidu.com/s/1X-5JzUxKXNlIhRQWSk-k-w?pwd=0000
Github:https://github.com/termux/termux-app/releases/download/v0.119.0-beta.3/termux-app_v0.119.0-beta.3+apt-android-5-github-debug_x86_64.apk
其​他​版​本​可​也​可​前​往​Github下​载​
U​b​u​n​t​u​容​器​(​适​用​于​a​r​m​6​4​-v​8​a​)​下​载​
文​件​:​u​b​u​n​t​u​-n​o​b​l​e​-a​a​r​c​h​6​4​-p​d​-v​4​.1​8​.0​.t​a​r​.​x​z​
百度网盘:https://pan.baidu.com/s/1CpuLVOsFQ5z_hp-SnFVekA?pwd=0000
Github:https://github.com/termux/proot-distro/releases/download/v4.18.0/ubuntu-noble-aarch64-pd-v4.18.0.tar.xz
U​b​u​n​t​u​容​器​(​适​用​于​x​8​6​_​6​4​)​下​载​
文​件​:​u​b​u​n​t​u​-n​o​b​l​e​-x​8​6​_​6​4​-p​d​-v​4​.1​8​.0​.t​a​r​.​x​z​
百度网盘:https://pan.baidu.com/s/1RjbBzGzWxhSgKLCQNy7VZA?pwd=0000
Github:https://github.com/termux/proot-distro/releases/download/v4.18.0/ubuntu-noble-x86_64-pd-v4.18.0.tar.xz
U​b​u​n​t​u​容​器​(​适​用​于​a​r​m​e​a​b​i​-v​7​a​)​下​载​
文​件​:​u​b​u​n​t​u​-n​o​b​l​e​-a​r​m​-p​d​-v​4​.1​8​.0​.t​a​r​.​x​z​
百度网盘:https://pan.baidu.com/s/1merhqhqcUPGZIR3_8Vv_Ig?pwd=0000
Github:https://github.com/termux/proot-distro/releases/download/v4.18.0/ubuntu-noble-arm-pd-v4.18.0.tar.xz
M​a​n​i​m​测​试​文​件​下​载​
文​件​:​M​a​n​i​m​ ​可​渲​染​脚​本​.​z​i​p​
百度网盘:https://pan.baidu.com/s/1g1A1sDSbqW3lvwGf5wGPVA?pwd=0000
相关推荐
千里马学框架3 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台3 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone3 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc3 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo3 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077003 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼3 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone3 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen3 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone3 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui