Desenvolvimento de software para Android é o processo pelo qual um novo aplicativo é criado para o sistema operacionalAndroid. Aplicativos são geralmente desenvolvidos na linguagem de programaçãoJava usando o Androidsoftware development kit (SDK), mas outros ambientes de desenvolvimento estão também disponíveis.
Desdejulho de2013, mais de um milhão de aplicativos foram desenvolvidos para Android,[2] com mais de bilhões de downloads.[3][4] Uma pesquisa em Junho indicou que mais de 67% dos desenvolvedores usaram a plataforma, no tempo da publicação.[5]
Desenvolvimento de software para Android | |
---|---|
Lançamento | novembro de2009 (15 anos) |
Idioma(s) | Inglês |
Escrito em | Java |
Sistema operacional | Multiplataforma |
Gênero(s) | SDK,IDE |
Página oficial | developer |
OKit de Desenvolvimento de Software (SDK) do Android inclui uma lista compreensiva de ferramentas de desenvolvimento. É incluído umdebugger,bibliotecas, umemulador baseado emQEMU, documentação, códigos de exemplo e tutoriais. As plataformas suportadas para o desenvolvimento incluemsistemas operacionais baseados emLinux,Mac OS X 10.5.8 ou superior eWindows XP ou superior.[6]
Até o final de 2014, oambiente de desenvolvimento integrado (IDE) oficial era oEclipse, utilizando opluginAndroid Development Tools (ADT). Em 2015,Android Studio, feito pelaGoogle e com IntelliJ é a IDE oficial.[6]
Aplicativos de Android consistem em arquivos do formato.apk e são armazenados no diretório/data/app
do sistema operacional. Esta pasta é acessível somente aousuário root por razões de segurança.
O projeto "helloworldapp" usando o Android Studio para criar um aplicativo móvel com a linguagem de programaçãoKotlin, que irá exibir na tela a mensagem "Oi Mundo!".[7]
O código do arquivoMainActivity.kt
define olayout de visualização do aplicativo e, em seguida localiza um TextView com o id "textView" e define seu texto/conteúdo a ser exibido como a frase "Oi Mundo!"...[7]
packagecom.example.helloworldappimportandroidx.appcompat.app.AppCompatActivityimportandroid.os.Bundleimportandroid.widget.TextViewclassMainActivity:AppCompatActivity(){overridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)valtextView=findViewById(R.id.textView)textView.text="Oi Mundo!"}}
O código do arquivoactivity_main.xml
define o layout no formatoXML, onde configura um TextView com o id "textView" e define seu texto/conteúdo como "Oi Mundo!"...[7]
<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Oi Mundo!"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent"/></androidx.constraintlayout.widget.ConstraintLayout>
OAndroid Debug Bridge (ADB) é um kit de ferramentas incluso no Android SDK. Consiste de programas tanto de cliente quanto de servidor que comunicam entre si. O ADB é tipicamente acessado através dainterface de linha de comando, apesar de que existem inúmerasinterfaces gráficas de usuário para controlar o ADB.O formato usual de comandos no ADB é tipicamente:
adb [-d|-e|-s <númeroSerial>] <comando>
O Native Development Kit (NDK) é um conjunto de ferramentas disponibilizadas pelo Google que permite que códigos desenvolvidos emlinguagem de programação C/C++ sejam reaproveitados no desenvolvimentos de projetos para dispositivos Android.[8]
Esta ferramenta deve ser utilizada por programadores experientes pois aumenta a complexidade do código. Em contrapartida, permite que códigos complexos, bem testados e validados em outros dispositivos, possam ser integrados no Android, evitando retrabalho.
Também é utilizado quando o desempenho é primordial, como em simuladores físicos, jogos ou programas gráficos.
Antigamente o NDK só podia ser utilizado por linha de comando ou no Eclipse. Hoje é possível utilizar o Android Studio e o Gradle para desenvolver os projetos.[8]
Basicamente o NDK permite que você inclua todos seu código nativo em C/C++ e também utilize as bibliotecas padrão do C/C++.
O código nativo é colocado em um pasta, normalmente chamada de JNI. Já na parte do código Android em Java, é feita a chamada de método responsável por carregar a biblioteca nativa:
System.loadLibrary("library");
Também na parte Java, devem ser criados métodos que representarão os métodos nativos. Utiliza-se a palavra chave "native", como no exemplo:
publicnativevoidmethodA();publicnativeintmethodB(Stringstr,intb);
Finalmente, deve ser criado um arquivo emlinguagem C que fará a ligação dos métodos acima citados com os métodos nativos. Utiliza-se a técnica de JNI para alcançar este objetivo. Segue um simple exemplo:
JNIEXPORTvoidJNICALLJava_br_com_package_JavaClass_methodA(JNIEnv*env,jobjectinstance){c_methodA();}JNIEXPORTjintJNICALLJava_br_com_package_JavaClass_methodB(JNIEnv*env,jobjectinstance,jstringstr,jintb){constchar*c_str=(*env)->GetStringUTFChars(env,str,0);intret=c_methodB(c_str,b);(*env)->ReleaseStringUTFChars(env,str,c_str);returnret;}
Note que nas linhas 3 e 10 são feitas as chamadas para os métodos nativos C.