Rozdíl mezi statickým a sdíleným knihovnám v Android NDK?

hlasů
31

Jsem nový Android NDK a nemám pochopit rozdíly mezi statické a sdílené knihovny. Co jsou zač, a když bych vybrat jeden typ nad ostatními?

Položena 09/07/2010 v 15:54
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
51

Pojem sdílená knihovna není perfektní ohledně Android NDK, protože v mnoha případech .so knihovny nejsou skutečně sdíleny mezi aplikacemi. Je lepší klasifikaci knihoven že NDK developerské výstavby, jako statické a dynamické.

Každá aplikace pro Android je aplikace Java, a jediný vstupní bod pro kód NDK se načítá ji jako dynamické knihovny a volat to koryto JNI.

Statické knihovny jsou archivní kompilovaných objektových souborů. Dostanou svázaný v jiných knihovnách okamžiku sestavení. Nepoužité části kódu z statické knihovny jsou odstraněny podle NDK snížit celkovou velikost.

Dynamické knihovny jsou načteny při běhu ze samostatných souborů. Mohou obsahovat statické knihovny, které jsou závislé na načtení nebo více dynamických knihoven.

Takže to, co skutečně potřebují pro vývoj Android je alespoň jedna společná knihovna, která bude volána z kódu v jazyce Java, a souvisí to s závislostí jako statické knihovny přednostně.

Odpovězeno 09/07/2010 v 19:00
zdroj uživatelem

hlasů
1

Nativní sdílené knihovny: The NDK navazuje tyto knihovny, nebo .so soubory z vašeho rodného zdrojového kódu. Nativní statické knihovny: The NDK lze také vytvořit statické knihovny nebo .A soubory, které lze propojit s ostatními knihovnami.

To je v souladu s NDK dokumentace

Odpovězeno 12/04/2017 v 13:51
zdroj uživatelem

hlasů
0

Statické libs - všechny knihovny binární soubory budou zahrnuty jako součást naší spustitelný soubor během procesu propojování. Tak nebudeme potřebovat libs anymore, ale bude to zvýšit velikost naší spustitelného souboru.

Sdílené libs - konečný spustitelný obsahuje pouze odkazy na libs, ale nikoliv samotný kód. To vyžaduje, aby prostředí, ve kterém provozujeme spustitelný soubor má přístup ke všem souborům s knihovnami používaných našeho programu.

Odpovězeno 23/01/2019 v 09:10
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more