Google tab tom tsim kho modular los ua ke Soong rau Android

Google tab tom tsim ib qhov system tsim Soong, tsim los hloov cov ntawv qub tsim rau Android platform, raws li kev siv cov khoom siv. Soong qhia siv cov lus tshaj tawm yooj yim piav qhia cov cai rau assembling modules, muab hauv cov ntaub ntawv nrog qhov txuas ntxiv “.bp” (blueprints). Cov ntaub ntawv hom yog nyob ze rau JSON thiab, yog tias ua tau, rov ua cov syntax thiab semantics ntawm cov ntaub ntawv sib dhos Npauj Npaim. Cov cai tau sau rau hauv Go thiab faib raws li Apache 2.0 daim ntawv tso cai.

Soong tsim cov ntaub ntawv tsis txhawb cov nqe lus raws li kev cai thiab cov kab lus hais, tab sis tsuas yog piav qhia txog cov qauv tsim, cov qauv thiab cov kev vam khom siv thaum tsim. Cov ntaub ntawv yuav tsum tau ua yog piav qhia siv lub qhov ncauj qhov ntswg thiab muab tso rau hauv cov pob khoom, txhua qhov yog ib qho ntawm cov ntaub ntawv uas muaj feem cuam tshuam nrog. Nws yog ua tau los txhais cov variables. Cov khoom sib txawv thiab cov khoom raug ntaus nruj me ntsis (hom ntawm qhov sib txawv yog xaiv dynamically raws li thawj qhov haujlwm, thiab rau cov khoom statically nyob ntawm seb hom module). Cov ntsiab lus nyuaj ntawm kev sib dhos logic raug hloov mus rau cov neeg ua haujlwm, sau hauv Go lus.

Soong intertwines nrog ib qhov project loj Hneev Taw, nyob rau hauv uas lub meta-assembly system tsis khi rau Android tab tom tsim, uas, raws li cov ntaub ntawv nrog cov lus piav qhia module, tsim cov ntawv sau ua ke. Ninja (ib qho hloov pauv rau kev ua), piav qhia cov lus txib uas yuav tsum tau khiav los tsim thiab kev vam khom. Hloov chaw siv cov kev cai nyuaj lossis ib hom lus tshwj xeeb los txheeb xyuas cov laj thawj tsim, Blueprint siv cov neeg ua haujlwm tshwj xeeb hauv cov lus Go (Soong yog qhov tseem ceeb ntawm cov neeg ua haujlwm zoo sib xws rau Android).

Txoj hauv kev no tso cai rau cov phiaj xwm loj thiab ntau yam, xws li Android, siv cov ntsiab lus nyuaj ntawm kev sib dhos logic hauv cov lej hauv cov lus programming qib siab, thaum tswj hwm lub peev xwm hloov pauv rau cov qauv cuam tshuam nrog lub koom haum sib dhos thiab cov qauv siv cov lus tshaj tawm yooj yim. . Piv txwv li, nyob rau hauv Soong, xaiv cov compiler chij yog ua los ntawm tus tuav lwj .go, thiab daim ntawv thov kev teeb tsa tshwj xeeb rau kho vajtse architectures yog ua los ntawm tus tuav art.go, tab sis txuas cov ntaub ntawv nrog code yog nqa tawm hauv cov ntaub ntawv ".bp".

cc_library {
...
srcs: ["generic.cpp"],
arch: {
caj npab: {
srcs: ["arm.cpp"],
},
x 86 :ua.
srcs: ["x86.cpp"],
},
},
}

Tau qhov twg los: opennet.ru

Ntxiv ib saib