Come utilizzare i tipi di build (debug vs release) per impostare diversi stili e nomi di app?

background

Su Android Studio, puoi avere diversi tipi di build, ciascuno con la propria configuration, simile ai sapori del prodotto (come mostrato qui )

Il problema

Vorrei che each volta che avessi installato la mia applicazione da qualche parte, saprei immediatamente quale tipo era – rilascio o debug, solo guardandolo.

  • LinearLayout $ LayoutParams non può essere lanciato in android.support.v4.widget.DrawerLayout $ LayoutParams
  • Creazione di un progetto di libreria Android
  • Ricevi informazioni specifiche di contatto da URI restituiti da Intent.ACTION_PICK
  • Appunti di appunti di Android App Like Circle Menu
  • Imansible accedere alla cartella dati in Esplora file di DDMS utilizzando un Nexus One!
  • Gestione della cache con RXJava
  • Per questo, penso di poter utilizzare il file build.gradle:

    buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { debuggable true } } 

    La cosa è che non so cosa mettere lì. Voglio che il nome dell'applicazione sia diverso (e tuttavia presenta la string nei file delle stringhe, come è tradotta) e voglio impostare lo stile di un'applicazione diversa (ad esempio, il colore della barra delle azioni) .

    Ho scoperto che posso usare "resValue" ( qui trovata qui ), ma per qualche motivo, non import quello che faccio, non compila:

    • Se la risorsa è già stata dichiarata (come nel nome app, che viene tradotto), dice che la risorsa è duplicata
    • Se la risorsa non è stata dichiarata, non posso raggiungerla tramite codice / xml.

    La domanda

    Come faccio a utilizzare diversi valori di risorsa per i tipi di build, anche se esistono già?

  • come distriggersre l'opzione di pasta in EditText android
  • Come faccio a utilizzare Stagefright dalla row di command?
  • Phonegap + Jquery mobile su Android: Pagine HTML multiple non funzionano Javascript
  • Errore "GCM" di Android: "NotRegistered"
  • Servizio di riconoscimento vocale di Google per la ricerca vocale
  • Android AlarmManager - RTC_WAKEUP vs ELAPSED_REALTIME_WAKEUP
  • 2 Solutions collect form web for “Come utilizzare i tipi di build (debug vs release) per impostare diversi stili e nomi di app?”

    Come faccio a utilizzare diversi valori di risorsa per i tipi di build, anche se esistono già?

    Esistono già nelle sorgenti main . Aggiungi altre sorgenti per i tuoi altri tipi di interessi di build, in cui ignorate le risorse desiderate.

    Ad esempio, in questo progetto di esempio , ho una sourceet main e una sorgente di debug . Entrambe hanno la app_name string app_name in res/values/strings.xml , ma con valori diversi. In una creazione di debug , verrà utilizzata la versione di sorgente di debug della risorsa; in qualsiasi altro tipo di build (es. release ), la sorgente di debug viene ignorata interamente e viene utilizzata la versione main source.

    Notare che non ho una sourceet di release . In particolare quando si esegue l'overriding delle risorse, questo è perfetto: è sufficiente un sourceet per un tipo di build quando si desidera modificare qualcosa per quel tipo di build, non per each tipo di build che si utilizza.

    In File | Struttura del progetto | app | Sapori che abbiamo:

     Version Name: 1.3 

    In file di risorse Strings abbiamo:

     <string name="app_name">MyAppTitle</string> 

    In "onCreate" della class MainActivity:

     ... //add version to application title int versionCode = BuildConfig.VERSION_CODE; // unused in my application String versionName = BuildConfig.VERSION_NAME; this.setTitle(this.getTitle() + " v"+ versionName); ... 

    Il risultato è "MyAppTitle v1.3"

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.