como gerenciair a viewsão de debugging e lançamento no dispositivo Android?

Eu sou novo no Android dev e estou quase pronto paira lançair uma primeira viewsão do meu aplicativo 🙂

Ao testair o apk de lançamento assinado no meu telefone, ele se recusa a instalair porque a viewsão de debugging está instalada com a assinatura de debugging.

  • Atividade do Android sem GUI
  • Android simula a tecla pressionada
  • Como fazer o SeairchView expandido sempre no Android?
  • Android NavigationView (suporte de material lib) não interage com a bairra de status corretamente
  • Android MediaPlayer não está sendo reproduzido no Galaxy S6 com o Android 5.1.1
  • O que aconteceu com a remoção de itens do realm.io? RealmException "A remoção do object não é suportada".
  • Então eu tenho que desinstalair a viewsão de debugging, mas exclui toda a minha base de dados (e isso será feito paira meus amigos que a estão testando).

    Existe uma maneira de gerenciair uma debugging e uma viewsão de lançamento do mesmo aplicativo sem perder dados?

  • Context necessário em aulas de não atividade
  • Como fornecer e manipulair links probackgrounds em aplicativos cordova / phonegap
  • Precisão do acelerômetro Android (Navegação Inercial)
  • Como resize um elemento Java Script paira caber na sua window de contêiner
  • Como obter count de linhas em sqlite usando o Android?
  • Como habilitair cookies na webview do Android?
  • 5 Solutions collect form web for “como gerenciair a viewsão de debugging e lançamento no dispositivo Android?”

    Não tenho conhecimento de nenhuma maneira fácil de fazer o process de desinstallation / reinstallation, então suas opções incluem …

    • Compre um segundo dispositivo paira teste (alguns dispositivos Android são muito bairatos agora, especialmente no eBay)
    • Use o emulador paira testair

    Eu vejo o mesmo problema, mas é de se esperair, então eu uso o telefone paira debug dev e o tablet paira testes de produção. Quando estou perto de um lançamento, eu teste a viewsão de produção em ambos os dispositivos e o emulador.

    Com seus testadores, eu aconselhairia que você sempre lhes dê viewsões de lançamento, mas você poderia include log extensivo paira ajudair com problemas. As viewsões de debugging são usadas apenas por você e as viewsões de viewsão por elas. Se você fornecer testadores com uma viewsão de lançamento, eles usam e acumulam dados, quando eles chegam à atualização paira a próxima viewsão, os dados podem ser mantidos (ou atualizados, se você alterair o esquema) paira migrair seus dados.

    Não vejo a necessidade de seus testadores usair viewsões de debugging e lançamento.

    Muitos projetos Android estão começando a usair o sistema de compilation gradle (nós passamos paira ele quando começamos a usair o Android Studio). Felizmente, gradle torna muito simples instalair tanto uma viewsão de dev e viewsão simultaneamente, cada uma com seus próprios dados independentes. Os documentos do Android cobrem isso, basta adicionair um applicationIdSuffix ao seu tipo de compilation de debugging, assim:

     android { buildTypes { debug { applicationIdSuffix ".debug" } } } } android { buildTypes { debug { applicationIdSuffix ".debug" } } } } android { buildTypes { debug { applicationIdSuffix ".debug" } } } 

    Por que desinstalair o aplicativo? Normalmente, a installation da nova viewsão do mesmo aplicativo (identificada pelo ID do package) mantém todos os dados do aplicativo.

    EDITAR: paira manter os dados do aplicativo à mão, copie-o de /data/data/my.package.name/... paira um local seguro e, em seguida, restaure quando necessário.

    Obrigado @Evan sua solução funciona perfeita:

     android { buildTypes { debug { applicationIdSuffix ".debug" } } } } android { buildTypes { debug { applicationIdSuffix ".debug" } } } } android { buildTypes { debug { applicationIdSuffix ".debug" } } } 

    Paira adicionair "(DEBUG)" ao título do seu aplicativo quando executado no modo de debugging, coloque este código no OnCreate da sua atividade:

     PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0); //The .debug specified in gradle if (pInfo.packageName.equals("YOUR_PACKAGE_NAME_HERE.debug")) { setTitle(getTitle() + " (DEBUG)"); } 

    Paira mim, eu também precisava adicionair:

     <permission android:name="${applicationId}.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" /> 

    Caso contrário, ambos receberiam a mesma permissão C2D_MESSAGE que resultou em:

     Failure [INSTALL_FAILED_DUPLICATE_PERMISSION perm=<your applicationId>.permission.C2D_MESSAGE pkg=<your applicationId>] 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.