npx cap add android creates android/, an ordinary Gradle 19,597 project of the kind Android Studio 234 makes:
tree -L 2 --dirsfirst -I 'build|*.pro|gradlew*' androidandroid ├── app │ ├── src │ ├── build.gradle │ └── capacitor.build.gradle ├── capacitor-cordova-android-plugins │ ├── src │ ├── build.gradle │ └── cordova.variables.gradle ├── gradle │ └── wrapper ├── build.gradle ├── capacitor.settings.gradle ├── gradle.properties ├── settings.gradle └── variables.gradle
app/src/main holds AndroidManifest.xml, res/ (icons and splash images), assets/, and java/com/example/booknest/, a package path built from the appId. The files split into two groups:
Yours, committed to Git 1,932 . MainActivity.java (one line: public class MainActivity extends BridgeActivity {}), the manifest, both build.gradle files, gradle.properties and variables.gradle (minSdkVersion = 24, compile and target SDK 36) are generated once, then yours (Native Projects as Source).
Rewritten by every cap sync. assets/public/ (a copy of dist/ plus cordova.js stubs), the capacitor.config.json and capacitor.plugins.json beside it, capacitor.settings.gradle and capacitor.build.gradle (headed DO NOT EDIT THIS FILE!), and the capacitor-cordova-android-plugins module for Cordova 129 plugins (Migrating from Cordova).
The native runtime itself compiles from node_modules/@capacitor/android, so a fresh clone builds only after npm 2,036 install.