Artigo sendo escrito.

Atenção Artigo sendo escrito.

Escrito com base no Readme.md do pacote.

Installing

To start using the package execute:

tns install android-snapshot

This will install the nativescript-dev-android-snapshot package and save it as a dev dependency.

Activating

The plugin’s hooks will be activated by default only in release configuration.

Optionally, this behavior can also be controlled by the TNS_ANDROID_SNAPSHOT environment variable:

  • Set it to 0 to temporarily disable snapshots in release configuration.
  • Set it to 1 to enable snapshots in even debug configuration.

Usage

When the android-snapshot plugin is activated, it will check whether the application is using Angular or not. Depending on that it will install either the tns-core-modules-snapshot package or the nativescript-angular-snapshot package (which includes the tns-core-modules + @angular). The specific version of this package will be determined by the original package version and the V8 version used in the currently installed Android Runtime.

Example: If you have tns-core-modules@2.0.1 and tns-android@2.1 installed (which comes with V8 4.7.80), the android-snapshot plugin will search for and download the tns-core-modules-snapshot@latest-2.0.1-4.7.80 package (if not already manually installed).

Each of these packages has the following structure:

<package_name>-snapshot
├── _embedded_script_.js
├── bundle.records.json
└── snapshots
    ├── arm64-v8a
    │   └── snapshot.blob
    ├── armeabi-v7a
    │   └── snapshot.blob
    └── x86
        └── snapshot.blob

The _embedded_script_.js contains all the contents of the original plugin (and its dependencies) bundled with webpack. This file is required for the Android static binding generator tool. It is thus excluded from the final application package.

Each of the snapshot.blob files contains this exact script precompiled in binary form for the respective architecture. Modifications of the original package (and its dependencies) or of the _embedded_script_.js will have no effect because the new contents will mismatch that already included in the snapshot.blob files.

During platform preparation the android-snapshot plugin will delete all JavaScript files that are in the snapshot package (specified in the bundle.records.json file) and will instrument the Android Runtime to load the correct snapshot.blob file during startup. This will allow all further require(module) calls to be resolved from the modules cache contained within the snapshot binary.

Uninstalling

To remove the android-snapshot package execute:

npm uninstall nativescript-dev-android-snapshot --save-dev

This will also remove any tns-core-modules-snapshot/nativescript-angular-snapshot packages that may be installed and delete all leftover files from the platform’s assets.

Troubleshooting

After plugin removal or between configuration changes it is possible that the CLI will fail to prepare some plugins. This can be resolved by removing and then adding the android platform.

For more information or reporting issues follow this repository: https://github.com/NativeScript/android-snapshot


Carlos Delfino

Escrito por:

Analista de Redes Windows e Linux, Analista de Desenvolvimento em diversas linguagens, incluindo para Microcontroladores, Consultor, mais de 20 anos de experiência no mercado de TICs

Google LinkedIn Digg Reddit StumbleUpon

Atualizado em