Casa > P > Para Que Serve Um Ficheiro Mk Do Android?

Para que serve um ficheiro MK do Android?

O arquivo Android.mk reside em um subdiretório do seu projeto's jni/ diretório, e descreve suas fontes e bibliotecas compartilhadas para o sistema de construção. É realmente um pequeno fragmento do makefile GNU que o sistema de compilação analisa uma ou mais vezes. O arquivo Android.mk é útil para definir configurações para todo o projeto que o Application.mk, o sistema de compilação e as variáveis do seu ambiente deixam indefinidas. Ele também pode sobrepor as configurações de todo o projeto para módulos específicos.

A sintaxe do Android.mk permite que você agrupe suas fontes em módulos. Um módulo é ou uma biblioteca estática, uma biblioteca compartilhada, ou um executável autônomo. Você pode definir um ou mais módulos em cada arquivo Android.mk, e você pode usar o mesmo arquivo fonte em vários módulos. O sistema de compilação só coloca bibliotecas compartilhadas em seu pacote de aplicativos. Além disso, bibliotecas estáticas podem gerar bibliotecas compartilhadas.

Além das bibliotecas de empacotamento, o sistema de compilação trata de uma variedade de outros detalhes para você. Por exemplo, você não'não precisa listar arquivos de cabeçalho ou dependências explícitas entre os arquivos gerados no seu arquivo Android.mk. O sistema de compilação do NDK calcula estas relações automaticamente para você. Como resultado, você deve ser capaz de se beneficiar do novo suporte à cadeia de ferramentas/plataforma em futuros lançamentos do NDK sem ter que tocar no seu arquivo Android.mk.

A sintaxe deste arquivo é muito próxima da utilizada nos arquivos Android.mk distribuídos com o projeto de código aberto completo do Android.mk. Enquanto a implementação do sistema de compilação que os utiliza é diferente, sua similaridade é uma decisão intencional de design com o objetivo de facilitar a reutilização do código fonte para bibliotecas externas.

Basics

Antes de explorar a sintaxe em detalhes, é útil começar por entender o básico do que um arquivo Android.mk contém. This section uses the Android.mk file in the Hello-JNI sample toward that end, explaining the role that each line in the file plays.

An Android.mk file must begin by defining the LOCAL_PATH variable:

  1. LOCAL_PATH := $(call my-dir) 

This variable indicates the location of the source files in the development tree. Aqui, a função macro my-dir, fornecida pelo sistema de compilação, retorna o caminho do diretório atual (o diretório contendo o próprio arquivo Android.mk).

A próxima linha declara a variável CLEAR_VARS, cujo valor o sistema de compilação fornece.

  1. include $(CLEAR_VARS) 

The CLEAR_VARS variable points to a special GNU Makefile that clears many LOCAL_XXX variables for you, such as LOCAL_MODULE, LOCAL_SRC_FILES, and LOCAL_STATIC_LIBRARIES. Note que isso não esclarece LOCAL_PATH. Esta variável deve manter seu valor porque o sistema analisa todos os arquivos de controle de compilação em um único contexto de execução do GNU Make, onde todas as variáveis são globais. Você deve (re-)declarar esta variável antes de descrever cada módulo.

Next, a variável LOCAL_MODULE armazena o nome do módulo que você deseja construir. Use this variable once per module in your application.

  1. LOCAL_MODULE := hello-jni 

Each module name must be unique and not contain any spaces. O sistema de construção, quando gera o arquivo final da biblioteca compartilhada, automaticamente adiciona o prefixo e sufixo adequado ao nome que você atribui ao LOCAL_MODULE. Por exemplo, o exemplo que aparece acima resulta na geração de uma biblioteca chamada libhello-jni.so.

De Zena

Como encontrar uma raiz quadrada manualmente :: Após uma extração dentária, se ainda houver alguma parte de raiz na tomada, a que pode levar?