Skip to content

Descrição do mecanismo Android

1. Por que o Android-Sde sdk use multi-Processamento para implementar?

O SDK do tempo de execução do Android é implementado usando o multi-Mecanismo de processo. Por multi-Processo, queremos dizer que o applet isodrated do aplicativo host, cada um em execução em um processo de seleração, e os processos não interagem com os dados de passagem uns com os outros através da cruz através de cruz-Comunicação do processo. As principais razões pelas quais multi-O processamento foi escolhido como seguintes.

  1. Para não ocupar a memória do aplicativo host. 1. O sistema aloca a memória para os processos de applet, e os applets não ocupam a memória do processo HO ST; portanto, o aplicativo não precisa funcionar então, então, então
  2. Verifique se a operação segura e estável do aplicativo host. Todo processo, se o processo de applet travar, o aplicativo host ainda poderá continuar sendo executado normalmente.
  3. Desarrar dados mais fáceis. A memória entre os processos é isolada pela natureza; portanto, os dados em um proces nunca serão lidos ou escritos diretamente por outros procases incapazes menos por meio de cruzamento-Comunicação do processo, portanto, não há necessidade de trabalhar sobre a Counteling de dados.

2. Como é multi-Processando implementar?

Como o Android não fornece API para criação dinâmica de processos, usamos a maneira de vincular o processo de ação para a criação de proces, ou seja, especificamente android:process Propriedade para atividade em AndroidManifest.xml , Quando a atividade for iniciada pela primeira vez, o sistema criará um novo processo e o local é o forte onde a ação dentro desse processo.

  1. Para aprimorar a experiência do usuário, é necessário exibir diferentes aparelhos que estão abertos na tarefa na barra de tarefas recentes de diferentes locais, para que o usuário possa ver claramente quais applets estão atualmente abertos e alternar entre eles. , você precisa definir o android:taskAffinity Propriedade para atividade em AndroidManifest.xml Para pressionar a atividade de diferentes processos de applet em diferentes pilhas de tarefas.

3. Como os processos de applet são gerenciados?

  1. O SDK suporta a criação de até 5 processos de applet ao mesmo tempo. Applet é lançado, o processo de applet existente será reutilizado para abrir o applet.
  2. Ao abrir o aplicativo de notícias, ele primeiro verificará se o applet foi encontrado e, em caso afirmativo, ele invocará diretamente o processo correspondente.
  3. A lógica para os processos de criação, reusão ​​e applet up é fazer no processo principal, que os despachante uniformemente.

4. Como os processos de applet e o processo de hostsessessecate entre si?

DOIS-A comunicação de maneira entre o processo de applet e o processo do host é alcançada através da Aidl. Vice, obtenha o objeto de proxy do serviço através do mecanismo do fichário e chama a interface AIDL através do objeto Proxy para alcançar Cross-Comunicação do processo.

5. Como são tratadas as questões de segurança de processo e segurança de thread?

  1. Atualmente, os recursos que precisam estar envolvidos durante a execução do applet são declarados no diário de correção do applet na caixa de areia do aplicativo, e não há operação de dinheiro para os recursos compartilhados globais, portanto, não há processos de problema para o mesmo Recursos do sistema. Para possuir futuras questões de segurança do processo, processo-As maneiras seguras de ler e gravar dados serão usadas durante o desenvolvimento, como bloqueios de usuários para acessar arquivos, compartilhando dados por meio de conteúdo provedor de preferências compartilhadas, etc.
  2. Não há tópico direto-Problema de segurança entre processos, somente quando os processos desferentes <colocam o acesso ao mano do processo principal simultaneamente através da cruz-Comunicação do processo, ou quando os processos lêem e escreviam memória simultaneamente internacional, o SDK resolve threads-Problemas relacionados à segurança no meio por meio de bloqueios, métodos síncronos, conjuntos de classes concorrentes Java, etc. etc. etc.

*** Translated with www.DeepL.com/Translator (free version) ** *