Amigo, existem tablets de 10 polegadas, tablets de 7 polegadas conheço somente esses tamanhos para android, e quanto a sua aplicação, vc usar xml no android é a mesma coisa que vc usar xml em qualquer aplicação java, o android tbm tem o sax e o dom para vc poder manipular o xml, mais vc pode criar um banco de dados para armazenar essas informações locais, e depois sincronizar isso com um banco de dados web usando webservice, no seu lugar com certeza criaria um banco de dados para guardar essas informações, muito mais pratico do que trabalhar com xml, se quiser trabalhar com banco de dados no android da uma olhada no sqlLite, pois vc precisara saber sobre ele se quiser trabalhar com banco de dados no android, vc tbm se quiser não precisa criar um botão para sincronizar pode fazer isso de forma automatica pois o android tem um esquema chamado de Broadcastreceiver que vc pode usar para saber quando tem uma conexão com a internet, como funciona o Broadcastreceiver: o android envia para todas as aplicações instaladas no seu aparelho uma mensagem de acordo com o evento ocorrido, por exemplo se vc quiser iniciar uma aplicação logo apos o boot do android é possivel, basta vc criar uma classe que extends de Broadcastreceiver e implementar o método onReceiver() onde na implementação desse método vc chama uma classe que inicia sua aplicação, no seu caso vc criaria uma classe que extends de Broadcastreceiver e pegaria o evento de conexao com a internet, vou mostrar como vc faz isso:
Classe estendendo de Broadcastreceiver e implementando o metodo onReceiver(Context context,Intent intent):
public class ConnectivityReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
boolean toReturnEstadoConexao = verificaConexao(context);
if (toReturnEstadoConexao==true) {
/* Faz alguma coisa, no seu caso é sincronizar com o banco de dados na web**/
}else{
/* Faz alguma coisa**/
}
}
private boolean verificaConexao(Context context){
boolean toReturn = false;
try{
/*Pega informações da rede**/
NetworkInfo info = (NetworkInfo) ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
if (info != null) {
if (info.getState().equals(State.CONNECTED)) { // se vc esta conectado a internet ele vai retornar true
toReturn = true;
}else if (info.getState().equals(State.DISCONNECTED)){ // se vc não esta conectado a internet ele vai retornar false
toReturn = false;
}
}else{
return toReturn;
}
}catch (Exception e) {
/*trata exception**/
}
return toReturn;
}
Depois que fizer sua classe vc vai mapear essa classe AndroidManifest.xml da seguinte forma:
<receiver android:name=".ConnectivityReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
Antes vc coloca a permissão para acesso a internet no arquivo AndroidManifest.xml, fazendo isso toda vez que houver algum evento na rede a classe ConnectivityReceiver será chamada ai é só vc colocar sua regra de negocio. qualquer duvida estamos ai.