Na tej stronie opisujemy przydatne ustawienia aplikacji na poziomie modułu build.gradle.kts
. Oprócz przedstawienia przeglądu ważnych właściwości ustawionych w
build.gradle.kts
, dowiedz się, jak:
- Zmień identyfikator aplikacji w przypadku różnych konfiguracji kompilacji.
- Bezpiecznie dostosuj przestrzeń nazw niezależnie od identyfikatora aplikacji.
Ustawianie identyfikatora aplikacji
Każda aplikacja na Androida ma unikalny identyfikator, który wygląda jak lub pakiet Kotlin nazwa, na przykład com.example.mojaaplikacja. Ten identyfikator jednoznacznie identyfikuje aplikację w na urządzeniu i w Sklepie Google Play.
Identyfikator aplikacji jest określany przez właściwość applicationId
w module
build.gradle.kts
, jak pokazano tutaj. Zaktualizuj wartość atrybutu applicationId
, zastępując com.example.myapp
nazwą
identyfikator aplikacji:
Kotlin
android { defaultConfig { applicationId = "com.example.myapp" minSdk = 15 targetSdk = 24 versionCode = 1 versionName = "1.0" } ... }
Odlotowe
android { defaultConfig { applicationId "com.example.myapp" minSdkVersion 15 targetSdkVersion 24 versionCode 1 versionName "1.0" } ... }
Chociaż identyfikator aplikacji wygląda jak tradycyjny pakiet Kotlin lub Java reguły nazewnictwa dla identyfikatora aplikacji, są nieco bardziej restrykcyjne:
- Musi zawierać co najmniej 2 segmenty (1 lub więcej kropek).
- Każdy segment musi zaczynać się od litery.
- Wszystkie znaki muszą być znakami alfanumerycznymi lub podkreśleniami [a–zA–Z0–9_].
Gdy tworzysz nowy projekt na Androidzie:
Studio, applicationId
to
automatycznie przypisywano nazwę pakietu wybraną przez Ciebie podczas konfiguracji. Ty
technicznie może od tego momentu niezależnie włączać obie właściwości, ale
nie jest zalecana.
Podczas ustawiania identyfikatora aplikacji zalecamy wykonanie tych czynności:
- Identyfikator aplikacji pozostaw taki sam jak w przestrzeni nazw. Rozróżnienie między dwóch właściwości może być nieco mylące, ale jeśli nie zmienią się, nie ma się czym przejmować.
- Nie zmieniaj identyfikatora aplikacji po jej opublikowaniu. Jeśli to zrobisz, Sklep Google Play traktuje kolejne przesłane treści jako nową aplikację.
- Wyraźnie zdefiniuj identyfikator aplikacji. Jeśli identyfikator aplikacji nie jest wyraźnie określony
zdefiniowane za pomocą właściwości
applicationId
, automatycznie przyjmuje to samo . Oznacza to, że zmiana przestrzeni nazw powoduje zmianę Identyfikator aplikacji, który zwykle nie jest tym, czego potrzebujesz.
Zmienianie identyfikatora aplikacji na potrzeby testowania
Domyślnie narzędzia do kompilacji stosują identyfikator aplikacji do
test instrumentacji
Plik APK z dołączonym identyfikatorem aplikacji danego wariantu kompilacji
.test
Na przykład testowy plik APK dla pakietu
com.example.myapp.free
wariant kompilacji
ma identyfikator aplikacji
com.example.myapp.free.test
Chociaż nie jest to konieczne, możesz zmienić identyfikator aplikacji przez
definiując właściwość testApplicationId
w tabeli defaultConfig
lub
Blokada: productFlavor
.
Ustawianie przestrzeni nazw
Każdy moduł Androida ma przestrzeń nazw używaną jako Kotlin lub Java
nazwa pakietu dla
wygenerowanych przez siebie klasach R
i BuildConfig
.
Przestrzeń nazw jest zdefiniowana przez właściwość namespace
w tagu
build.gradle.kts
zgodnie z poniższym fragmentem kodu. namespace
jest początkowo ustawiona na nazwę pakietu, którą wybierzesz
utworzyć projekt.
Kotlin
android { namespace = "com.example.myapp" ... }
Odlotowe
android { namespace "com.example.myapp" ... }
Podczas tworzenia aplikacji
w ostatecznej wersji pakietu aplikacji, Android
narzędzia do kompilacji używają przestrzeni nazw jako przestrzeni nazw wygenerowanego przez aplikację komponentu R
klasa, która pozwala uzyskać dostęp do
zasobów aplikacji.
Na przykład w poprzednim pliku kompilacji klasa R
jest tworzona w lokalizacji
com.example.myapp.R
Nazwa ustawiona przez Ciebie dla właściwości namespace
pliku build.gradle.kts
powinna być zawsze taka sama jak nazwa pakietu podstawowego projektu.
aktywność i inny kod aplikacji. Możesz mieć inne podpakiety w
Twojego projektu, ale te pliki muszą zaimportować klasę R
za pomocą
z przestrzeni nazw z właściwości namespace
.
Aby uprościć przepływ pracy, zachowaj swoją przestrzeń nazw identyfikatorów aplikacji.
Zmiana przestrzeni nazw
W większości przypadków należy zachować przestrzeń nazw i identyfikator aplikacji jako są takie same jak domyślnie. Może jednak być konieczna zmiana przestrzeni nazw w podczas reorganizacji kodu lub unikania kolizji z przestrzenią nazw.
W takich przypadkach zmień przestrzeń nazw, aktualizując
właściwość namespace
w pliku build.gradle.kts
modułu niezależnie od
identyfikator aplikacji. Zanim to zrobisz, upewnij się, że identyfikator aplikacji to
bezpośrednio zdefiniowane, tak aby zmiana przestrzeni nazw nie spowodowała
identyfikator aplikacji. Aby uzyskać więcej informacji o tym, jak przestrzeń nazw może wpływać na
Identyfikator aplikacji znajdziesz w artykule Ustawianie identyfikatora aplikacji.
Jeśli namespace
ma różne nazwy
oraz applicationId
, treść narzędzi do kompilacji
identyfikator aplikacji do ostatecznego pliku manifestu na końcu kompilacji.
Jeśli więc sprawdzisz plik AndroidManifest.xml
po kompilacji,
atrybut package
jest ustawiony na
identyfikator aplikacji. Atrybut package
scalonego pliku manifestu wskazuje, gdzie element
Sklep Google Play i platforma Androida identyfikują Twoją aplikację.
Zmień przestrzeń nazw na potrzeby testowania
Domyślna przestrzeń nazw zbiorów źródłowych androidTest
i test
jest główną przestrzenią nazw
z przestrzenią nazw z dodanym na końcu wymiarem .test
. Na przykład, jeśli plik
Właściwość namespace
w pliku build.gradle
to
com.example.myapp
,
Testowa przestrzeń nazw jest domyślnie ustawiona na
com.example.myapp.test
Aby zmienić przestrzeń nazw na potrzeby testowania, użyj
testNamespace
zgodnie z poniższym fragmentem kodu:
Kotlin
android { namespace = "com.example.myapp" testNamespace = "com.example.mytestapp" ... }
Odlotowe
android { namespace "com.example.myapp" testNamespace "com.example.mytestapp" ... }
Uwaga: nie ustawiaj wartości testNamespace
ani
namespace
na tę samą wartość, w przeciwnym razie przestrzeń nazw
kolizje.
Więcej informacji o testowaniu znajdziesz w artykule Testowanie aplikacji na Androidzie.