1 page.title=Backup automtico para aplicativos 2 page.tags=backup, previewresources, androidm 3 page.keywords=backup, autobackup, preview 4 page.image=images/cards/card-auto-backup_2x.png 5 @jd:body 6 7 <div id="qv-wrapper"> 8 <div id="qv"> 9 <h2>Neste documento</h2> 10 <ol> 11 <li><a href="#overview">Viso geral</a></li> 12 <li><a href="#configuring">Configurar backup de dados</a></li> 13 <li><a href="#testing">Testar configurao de backup</a></li> 14 <li><a href="#issues">Problemas conhecidos</a></li> 15 </ol> 16 </div> 17 </div> 18 19 <p> 20 Frenquentemente, os usurios investem muito tempo e esforo para criar dados e configurar preferncias 21 nos aplicativos. Preservar esses dados para os usurios caso substituam um dispositivo quebrado ou atualizem-se para um novo 22 importante para garantir uma tima experincia de usurio. Dispositivos que executam o sistema Android M Preview 23 ajudam a garantir uma boa experincia para os usurios nessas circunstncias realizando o backup dos dados do aplicativo 24 automaticamente no Google Drive. Os dados do aplicativo so restaurados automaticamente se um usurio alterar ou atualizar um 25 dispositivo. 26 </p> 27 28 <p> 29 Os backups automticos esto ativos para todos os aplicativos instalados nos dispositivos que executam o Android M Preview. Nenhum 30 cdigo adicional de aplicativo necessrio. O sistema fornece aos usurios a habilidade de deciso 31 sobre os backups automticos de dados. Tambm possvel limitar quais dados do aplicativo devem ter o backup. 32 </p> 33 34 <p> 35 Este documento descreve o novo comportamento do sistema e como especificar quais dados tero backup 36 para o aplicativo. 37 </p> 38 39 <h2 id="overview">Viso geral</h2> 40 41 <p> 42 O recurso de backup automtico preserva os dados que o aplicativo cria em um dispositivo de usurio enviando-os 43 conta do Google Drive do usurio e criptografando-os. No h cobranas para voc ou para o usurio 44 em relao ao armazenamento de dados e os dados salvos no contam para a cota do Drive pessoal do usurio. Durante 45 o perodo do M Preview, os usurios podem armazenar at 25 MB por aplicativo do Android. 46 </p> 47 48 <p> 49 Os backups automticos ocorrem a cada 24 horas, quando o dispositivo est ocioso, carregando e conectado 50 a uma rede Wi-Fi. Quando esses requisitos so atendidos, o servio Backup Manager envia todos os dados de backup 51 disponveis nuvem. Quando um usurio transita para um novo dispositivo, ou desinstala e reinstala 52 o aplicativo com backup realizado, uma operao de restaurao copia os dados de backup para o diretrio de dados 53 do aplicativo recm-instalado. 54 </p> 55 56 <p class="note"> 57 <strong>Observao:</strong> se o usurio usar o 58 <a href="{@docRoot}google/backup/index.html">servio de Backup do Android</a> de legado, este novo comportamento 59 no se aplicar aos trabalhos de comportamento de backup existentes com o normal. 60 </p> 61 62 63 <h3 id="auto-exclude">Arquivos de dados excludos automaticamente</h3> 64 65 <p> 66 Nem todos os dados do aplicativo devem ter backup, como arquivos temporrios e de armazenamento em cach. Portanto, o servio de backup automtico 67 exclui determinados arquivos de dados por padro: 68 </p> 69 70 <ul> 71 <li>Arquivos em diretrios identificados pelos mtodos {@link android.content.Context#getCacheDir 72 getCacheDir()} e {@link android.content.ContextWrapper#getCodeCacheDir getCodeCacheDir()} 73 . 74 </li> 75 76 <li>Arquivos localizados no armazenamento externo, a no ser que estejam no diretrio identificado pelo mtodo 77 {@link android.content.Context#getExternalFilesDir getExternalFilesDir()} 78 . 79 </li> 80 81 <li>Arquivos localizados no diretrio identificado pelo mtodo 82 {@link android.content.Context#getNoBackupFilesDir getNoBackupFilesDir()}. 83 </li> 84 </ul> 85 86 <h2 id="configuring">Configurar backup de dados</h2> 87 88 <p> 89 Os dados criados por qualquer aplicativo instalado em um dispositivo M Preview tm backup, exceto 90 os arquivos excludos automaticamente listados na seo anterior. possvel limitar e configurar 91 quais dados tero backup no seu aplicativo usando as configuraes no manifesto do aplicativo. 92 </p> 93 94 <h3 id="include-exclude">Incluir ou excluir dados</h3> 95 96 <p> 97 Dependendo de quais dados o aplicativo precisar e do modo que forem salvos, voc precisar definir 98 regras especficas para incluir ou excluir determinados arquivos ou diretrios. O servio de backup automtico suporta 99 a configurao dessas regras de backup por meio do uso de um arquivo de configurao XML e do 100 manifesto do aplicativo. No manifesto do aplicativo, possvel especificar o arquivo de configurao de esquema de backup como exibido 101 no seguinte exemplo: 102 </p> 103 104 <pre> 105 <?xml version="1.0" encoding="utf-8"?> 106 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 107 xmlns:tools="http://schemas.android.com/tools" 108 package="com.my.appexample"> 109 <uses-sdk android:minSdkVersion="MNC"/> 110 <uses-sdk android:targetSdkVersion="MNC"/> 111 <app ... 112 <strong> android:fullBackupContent="@xml/mybackupscheme"></strong> 113 </app> 114 ... 115 </manifest> 116 </pre> 117 118 <p> 119 Neste cdigo de exemplo, o atributo <code>android:fullBackupContent</code> especifica um arquivo XML, 120 localizado no diretrio <code>res/xml/</code> do projeto de desenvolvimento do aplicativo, chamado 121 <code>mybackupscheme.xml</code>. Este arquivo de configurao inclui as regras de quais arquivos tero 122 backup. O seguinte cdigo de exemplo mostra um arquivo de configurao que exclui um arquivo especfico 123 dos backups: 124 </p> 125 126 <pre> 127 <?xml version="1.0" encoding="utf-8"?> 128 <full-backup-content> 129 <exclude domain="database" path="device_info.db"/> 130 </full-backup-content> 131 </pre> 132 133 <p> 134 Esta configurao de backup de exemplo exclui do backup somente um arquivo especfico do banco de dados. 135 Todos os outros arquivos tero backup. 136 </p> 137 138 <h4>Sintaxe da configurao de backup</h4> 139 140 <p> 141 A configurao do servio de backup permite que voc especifique quais arquivos incluir ou excluir do 142 backup. A sintaxe para o arquivo XML de configurao de backup de dados a seguinte: 143 </p> 144 145 <pre> 146 <full-backup-content> 147 <include domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string" /> 148 <exclude domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string" /> 149 </full-backup-content> 150 </pre> 151 152 <p> 153 Os seguintes elementos e atributos permitem que voc especifique os arquivos que sero includos ou excludos 154 do backup: 155 </p> 156 157 <ul> 158 <li> 159 <code><include></code>. Use este elemento se quiser especificar um conjunto de recursos 160 para o backup, em vez de fazer o sistema realizar o backup de todos os dados no aplicativo por padro. Ao especificar 161 uma tag <code><include></code>, o sistema realiza apenas o backup <em>dos recursos especificados</em> 162 com este elemento. 163 </li> 164 165 <li> 166 <code><exclude></code>. Use este elemento para especificar um conjunto de recursos que ser excludo 167 do backup. O sistema realiza o backup de todos os dados no aplicativo, exceto os recursos especificados 168 com este elemento. 169 </li> 170 171 <li> 172 <code>domain.</code> O tipo de recurso que deseja excluir ou incluir no backup. Os valores vlidos 173 que podem ser especificados para este atributo incluem: 174 </li> 175 176 <li style="list-style: none"> 177 <ul> 178 <li> 179 <code>root</code>. Especifica que o recurso est no diretrio raiz do aplicativo. 180 </li> 181 182 <li> 183 <code>file</code>. Corresponde ao recurso no diretrio retornado 184 pelo mtodo {@link android.content.Context#getFilesDir getFilesDir()}. 185 </li> 186 187 <li> 188 <code>database</code>. Corresponde ao banco de dados retornado 189 pelo mtodo {@link android.content.Context#getDatabasePath getDatabasePath()} ou usando 190 a classe {@link android.database.sqlite.SQLiteOpenHelper}. 191 </li> 192 193 <li> 194 <code>sharedpref</code>. Corresponde a um objeto {@link android.content.SharedPreferences} 195 retornado pelo mtodo {@link android.content.Context#getSharedPreferences getSharedPreferences()} 196 . 197 </li> 198 199 <li> 200 <code>external</code>. Especifica que o recurso est no armazenamento externo e corresponde 201 a um arquivo no diretrio retornado pelo mtodo 202 {@link android.content.Context#getExternalFilesDir getExternalFilesDir()}. 203 </li> 204 205 <li> 206 <code>path</code>. O caminho de arquivo para um recurso que deseja excluir ou incluir 207 no backup. 208 </li> 209 </ul> 210 </li> 211 </ul> 212 213 214 <h3 id="prohibit">Proibir backup de dados</h3> 215 216 <p> 217 possvel optar por evitar backups automticos de quaisquer dados do aplicativo configurando 218 o atributo <code>android:allowBackup</code> para <code>false</code> no elemento do aplicativo 219 do manifesto. Esta configurao ilustrada no seguinte cdigo de exemplo: 220 </p> 221 222 <pre> 223 <?xml version="1.0" encoding="utf-8"?> 224 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 225 xmlns:tools="http://schemas.android.com/tools" 226 package="com.my.appexample"> 227 <uses-sdk android:minSdkVersion="MNC"/> 228 <uses-sdk android:targetSdkVersion="MNC"/> 229 <app ... 230 <strong> android:allowBackup="false"></strong> 231 </app> 232 ... 233 </manifest> 234 </pre> 235 236 237 <h2 id="testing">Testar configurao de backup</h2> 238 239 <p> 240 Ao criar uma configurao de backup, deve-se test-la para garantir que o aplicativo 241 salva os dados e que eles podem ser restaurados corretamente. 242 </p> 243 244 245 <h4>Ativar registro de backup</h4> 246 247 <p> 248 Para ajudar a determinar como o recurso de backup analisa o arquivo XML, ative o registro 249 antes de realizar um backup de teste: 250 </p> 251 252 <pre class="noprettyprint"> 253 $ adb shell setprop log.tag.BackupXmlParserLogging VERBOSE 254 </pre> 255 256 <h4>Teste de backup</h4> 257 258 <p>Para executar um backup manualmente, primeiro deve-se inicializar o Backup Manager chamando o seguinte 259 comando: 260 </p> 261 262 <pre class="noprettyprint"> 263 $ adb shell bmgr run 264 </pre> 265 266 <p> 267 Em seguida, realiza-se o backup manualmente do aplicativo usando o seguinte comando, especificando o nome 268 do pacote para o aplicativo como o parmetro <code><PACKAGE></code>: 269 </p> 270 271 <pre class="noprettyprint"> 272 $ adb shell bmgr fullbackup <PACKAGE></pre> 273 274 275 <h4>Teste de restaurao</h4> 276 277 <p> 278 Para iniciar manualmente uma restaurao aps o backup dos dados do aplicativo, chame o seguinte comando, 279 especificando o nome do pacote para o aplicativo como o parmetro <code><PACKAGE></code>: 280 </p> 281 282 <pre class="noprettyprint"> 283 $ adb shell bmgr restore <PACKAGE> 284 </pre> 285 286 <p class="warning"> 287 <b>Aviso:</b> esta ao impede o aplicativo de apagar os dados antes de realizar 288 a operao de restaurao. 289 </p> 290 291 <p> 292 Para iniciar o processo de restaurao do aplicativo, deve-se desinstalar e reinstal-lo. Os dados 293 do aplicativo so restaurados automaticamente a partir da nuvem quando a instalao do aplicativo for concluda. 294 </p> 295 296 297 <h4>Resoluo de problemas de backups</h4> 298 299 <p> 300 Caso ocorra problemas, possvel apagar os dados de backup e os metadados associados desativando o backup 301 e reativando-o em <strong>Settings (Configuraes) > Backup</strong>, redefinindo o dispositivo para as especificaes de fbrica, ou 302 chamando este comando: 303 </p> 304 305 <pre>$ adb shell bmgr wipe <TRANSPORT> <PACKAGE></pre> 306 307 <p> 308 O valor <code><TRANSPORT></code> deve ser prefixado por <code>com.google.android.gms</code>. 309 Para obter uma lista de transportes, chame o seguinte comando: 310 </p> 311 312 <pre>$ adb shell bmgr list transports</pre> 313 314 <h2 id="issues">Problemas conhecidos</h2> 315 316 <p>A seguir esto os problemas conhecidos com o servio de backup automtico:</p> 317 318 <ul> 319 <li><strong>Google Cloud Messaging</strong> - 320 Para aplicativos que usam o Google Cloud Messaging para notificaes push, h um problema conhecido 321 onde o backup do ID de registro retornado pelo registro do Google Cloud Messaging pode 322 desencadear notificaes push para o aplicativo restaurado. importante consultar a API para obter um novo ID de registro 323 aps a instalao em um novo dispositivo, o que no deve ser o caso se o ID de registro antigo 324 tiver backup. Para evitar isto, exclua o ID de registro do conjunto de arquivos 325 de backup. 326 </li> 327 </ul> 328