An open API service indexing awesome lists of open source software.

https://github.com/dodorare/android-manifest-rs

Android Manifest serializer and deserializer for Rust 🛠
https://github.com/dodorare/android-manifest-rs

android android-manifest rust

Last synced: 12 months ago
JSON representation

Android Manifest serializer and deserializer for Rust 🛠

Awesome Lists containing this project

README

          


Android Manifest

CI Info
Crate Info
API Docs
Crate

[AndroidManifest] serializer and deserializer for Rust. This library will also likely continue to stay up to date with the official AndroidManifest specification as changes happen.

[AndroidManifest]: https://developer.android.com/guide/topics/manifest/manifest-intro

```toml
# Cargo.toml
[dependencies]
android-manifest = "*"
```

Create `AndroidManifest.xml` by yourself:
```rust
let manifest = AndroidManifest {
package: "com.example.toggletest".to_string(),
version_code: Some(1),
version_name: Some("1.0".to_string()),
application: Application {
allow_backup: Some(true.into())),
icon: Some(MipmapOrDrawableResource::mipmap("ic_launcher", None)),
label: Some(StringResourceOrString::resource("app_name", None)),
theme: Some(StyleResource::new("AppTheme", None)),
activity: vec![Activity {
label: Some(StringResourceOrString::resource("app_name", None)),
name: "com.example.toggletest.MainActivity".to_string(),
intent_filter: vec![IntentFilter {
action: vec![Action {
name: Some("android.intent.action.MAIN".to_string()),
}],
category: vec![Category {
name: Some("android.intent.category.LAUNCHER".to_string()),
}],
..Default::default()
}],
..Default::default()
}],
..Default::default()
},
..Default::default()
};
let serialized_manifest = android_manifest::to_string_pretty(&manifest).unwrap();
```

Or parse any `AndroidManifest.xml` file:
```rust
let xml = r#"









"#;
let manifest: AndroidManifest = android_manifest::from_str(xml).unwrap();
```

# License

This project is licensed under Apache License, Version 2.0, ([LICENSE](LICENSE) or http://www.apache.org/licenses/LICENSE-2.0).

### Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in toml-rs by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.