Platform-specific TypeScript declarations for NativeScript for accessing native objects
84
Comprehensive Android SDK type definitions with support for multiple API levels (17-29) and AndroidX libraries. Provides native Android object access, memory management, and NativeScript-specific integration.
Multiple Android API level variants for different minimum SDK requirements.
// Default entry point (API level 17)
/// <reference path="./node_modules/tns-platform-declarations/android.d.ts" />
// API level specific variants (13 levels supported)
/// <reference path="./node_modules/tns-platform-declarations/android-17.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android-18.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android-19.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android-20.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android-21.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android-22.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android-23.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android-24.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android-25.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android-26.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android-27.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android-28.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android-29.d.ts" />Usage Examples:
// Use default API level 17
/// <reference path="./node_modules/tns-platform-declarations/android.d.ts" />
// Or specify higher API level for additional features
/// <reference path="./node_modules/tns-platform-declarations/android-24.d.ts" />
const permission = android.Manifest.permission.CAMERA;Essential utility functions for Android development and native object handling.
/**
* Convert a JavaScript number to Android float primitive
* @param num - The number to convert
* @returns Android float value
*/
declare function float(num: number): any;
/**
* Convert a JavaScript number to Android long primitive
* @param num - The number to convert
* @returns Android long value
*/
declare function long(num: number): any;
/**
* Trigger garbage collection in JavaScript
*/
declare var gc: () => void;
/**
* Release the reference to the wrapped native Java object
* @param object - The Java object to release
*/
declare function __releaseNativeCounterpart(object: java.lang.Object): void;Usage Examples:
// Convert numbers to Android primitives
const androidFloat = float(3.14159);
const androidLong = long(1234567890);
// Create and manage Java objects
const javaString = new java.lang.String("Hello Android");
// ... use the object
__releaseNativeCounterpart(javaString); // Release when done
// Trigger garbage collection
gc();Enhanced array constructor for creating typed native arrays.
interface ArrayConstructor {
/**
* Create a typed native array
* @param type - The type of array elements
* @param count - Number of elements
* @returns Native array instance
*/
create(type: any, count: number): any;
}
declare module native {
export class Array<T> {
constructor();
/** Number of elements in the array */
length: number;
/** Array element access by index */
[index: number]: T;
}
}Usage Examples:
// Create native arrays
const intArray = Array.create("int", 10);
const stringArray = Array.create(java.lang.String, 5);
// Use native array wrapper
const nativeArray = new native.Array<string>();
nativeArray[0] = "first item";
console.log(nativeArray.length);Complete Android SDK type definitions providing access to all Android framework classes and constants.
declare module android {
export class Manifest extends java.lang.Object {
public static class: java.lang.Class<android.Manifest>;
public constructor();
}
export module Manifest {
export class permission extends java.lang.Object {
public static class: java.lang.Class<android.Manifest.permission>;
// Core permissions
public static ACCESS_COARSE_LOCATION: string;
public static ACCESS_FINE_LOCATION: string;
public static ACCESS_NETWORK_STATE: string;
public static ACCESS_WIFI_STATE: string;
public static BLUETOOTH: string;
public static BLUETOOTH_ADMIN: string;
public static CAMERA: string;
public static CALL_PHONE: string;
public static CHANGE_NETWORK_STATE: string;
public static CHANGE_WIFI_STATE: string;
public static INTERNET: string;
public static READ_CONTACTS: string;
public static READ_EXTERNAL_STORAGE: string;
public static READ_PHONE_STATE: string;
public static RECORD_AUDIO: string;
public static VIBRATE: string;
public static WAKE_LOCK: string;
public static WRITE_EXTERNAL_STORAGE: string;
// And many more Android permissions...
}
}
}Usage Examples:
// Access Android permissions
const locationPermission = android.Manifest.permission.ACCESS_FINE_LOCATION;
const cameraPermission = android.Manifest.permission.CAMERA;
const internetPermission = android.Manifest.permission.INTERNET;
// Create Android manifest reference
const manifest = new android.Manifest();AndroidX library type definitions for modern Android development with comprehensive compatibility matrix.
// AndroidX declarations are included automatically with each API level
// Available androidx versions: 17, 23, 26, 28, 29
declare module androidx {
// AndroidX support library types are automatically included
// Content varies by androidx version - see compatibility matrix below
}AndroidX Version Compatibility Matrix:
| Android API Level | AndroidX Version | File Size | Key Components |
|---|---|---|---|
| android-17.d.ts | androidx-17.d.ts | ~15MB | Basic support libraries, legacy compatibility |
| android-18.d.ts | androidx-17.d.ts | ~15MB | Same as API 17 |
| android-19.d.ts | androidx-17.d.ts | ~15MB | Same as API 17 |
| android-20.d.ts | androidx-17.d.ts | ~15MB | Same as API 17 |
| android-21.d.ts | androidx-17.d.ts | ~15MB | Same as API 17 |
| android-22.d.ts | androidx-17.d.ts | ~15MB | Same as API 17 |
| android-23.d.ts | androidx-23.d.ts | ~22MB | AppCompat, RecyclerView, CardView |
| android-24.d.ts | androidx-23.d.ts | ~22MB | Same as API 23 |
| android-25.d.ts | androidx-23.d.ts | ~22MB | Same as API 23 |
| android-26.d.ts | androidx-26.d.ts | ~28MB | Architecture Components, Room, ViewModel |
| android-27.d.ts | androidx-26.d.ts | ~28MB | Same as API 26 |
| android-28.d.ts | androidx-28.d.ts | ~34MB | Navigation, WorkManager, CameraX |
| android-29.d.ts | androidx-29.d.ts | ~36MB | Jetpack Compose (early), Biometric |
Usage Examples:
// AndroidX types are available automatically based on API level
/// <reference path="./node_modules/tns-platform-declarations/android-28.d.ts" />
// API 28+ includes advanced AndroidX components
const workRequest = new androidx.work.OneTimeWorkRequest.Builder(MyWorker.class).build();
const navController = androidx.navigation.Navigation.findNavController(activity, R.id.nav_host_fragment);
// API 23+ includes basic AndroidX components
const recyclerView = new androidx.recyclerview.widget.RecyclerView(context);
const cardView = new androidx.cardview.widget.CardView(context);
// All API levels include basic support
const appCompatActivity = new androidx.appcompat.app.AppCompatActivity();Each Android API level entry point follows this structure:
/// <reference path="./android/android-platform-{level}.d.ts" />
/// <reference path="./android/androidx-{version}.d.ts" />
/// <reference path="./android/common.d.ts" />Where:
android-platform-{level}.d.ts contains the complete Android SDK for that API levelandroidx-{version}.d.ts contains AndroidX support library definitionscommon.d.ts includes common declarations and NativeScript widgetsProper memory management is crucial when working with native Android objects:
// Always release native objects when done
const javaObject = new java.lang.Object();
try {
// Use the object...
} finally {
__releaseNativeCounterpart(javaObject);
}
// Trigger garbage collection periodically
gc();skipLibCheck: true for faster compilationInstall with Tessl CLI
npx tessl i tessl/npm-tns-platform-declarationsevals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10