Arquivos vinculados (File Link)
Podem ser códigos, arquivos de dados ou imagens. Estes arquivos são compartilhados entre diferentes projetos e ao atualizar em um projeto todos os demais são atualizados. São compilados como como arquivos embutidos (embed) na projeto.No caso do código é possível utilizar diretivas de compilação para definir código específico de cada plataforma, por exemplo:
#if __ANDROID__
#endif
O mesmo pode ser feito para IOS com __IOS__ . Para ver todas as opções veja Part 4 - Dealing with Multiple Platforms.
Projetos compartilhados (Native Shared)
Muito parecido com os arquivos vinculados, mas permite maior organização dos arquivos a serem compartilhados no projeto ao invés de ficar os adicionando em diferentes projetos um a um. Este projeto não gera nenhum artefato específico.Projeto de Classe Portável (Native Portable)
Geram um arquivo dll que é compartilhado entre os projetos específicos.Nas propriedades de projeto é possível definir quais as plataformas alvos do projeto, limitando dessa formas as funcionalidades disponíveis a serem utilizadas.
Uma estratégia utilizada neste tipo de projeto, quando é necessário utiliza código específico de plataforma é definir uma interface na classe portável e implementa-la nos projetos específicos.