2.3 KiB
2.3 KiB
App Optimisation, Testing & Deployment
Check Memory Usage
abd shell dumpsys meminfo <package_name>- Check if memory size increased since launch
- Number of objects that have been created
- Database information
- Terminology:
- Native Heap: memory used by the process itself
- Dalvik Heap: memory allocated by DalvikVM
- Dalvik Other: memory used for JIT
- Pss total: all connections to the main device memory thread
- Private dirty: actual amount of RAM the app is using on the heap since the app started
Code Optimisation
- Minimise object creation
- Make a method static if there is no need to modify the state of an object
- Make any constants
static final Intis 2x faster thanfloat- Use enhanced for loops (for-each instead of regular for loops)
App Testing
- Generally, developing tests is done before developing code
Unit Tests
- Build unit tests to verify the logic of specific code in the app
- Local tests
- run on the local Java VM
- Instrumented tests
- run based on the Android dependencies
- Can use
mockitoorrobolectricto isolate a unit from its dependencies
UI Tests
-
Test an entire sequence of events, user interface, end-to-end testing on emulators & devices
-
Tools:
AndroidJUnitRunner&Espresso API& UI Automator -
Modify
build.gradledependencies{ androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' } -
Espresso records UI interactions and can use these to run a repeatable test automatically
Monkey (stress test)
- Runs on an emulator and generates pseudo-random streams of user events (clicks, touches, gestures and system-level events)
$ adb shell monkey [options] <event-count>
$ adb shell monkey -p your.package.name -v 500
APK Generation
- Use a good / unique package name
[org/com].[company].[product].[component]
- Build
->Generate Signed APK
Shrink Code & Resources (Proguard)
buildTypes {
release {
minifyEnable true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Can try proguard-android-optimize.txt for more code shrinking
