Olá
Pelo que eu saiba o mais importante no android é o dalvik que é a maquina virtual que roda nele, e o código Java que roda no android tem umas "modificações" no bytecode (não na linguagem) diminuindo o tamanho do código necessário para rodar. A escolha do Java foi só para ter uma linguagem "independente" poderia ser qualquer outra, mas a escolha deve ter sido mais pela quantidade de programadores, então respondendo sua duvida toda a otimização de memória não é feita no sdk do Java.
Galera,
Posso pensar em dois motivos:
1. Ampliar a audiencia de desenvolvedores, ja' que cada vez menos
--
-alex
http://www.ventonegro.org/
Você pode programar em C/C++ para o Android, apenas não tem um framework, e pelo que entendi, tem dificuldades para visual...
http://benno.id.au/blog/2007/11/13/android-native-apps
att.
2009/6/29 Alex Queiroz <asan...@gmail.com>
--
Guilherme BR {
Linux ID: #437053
www.guilhermerezende.com
}
On 6/29/09, Gianni <nasus....@gmail.com> wrote:
> Bom, acabei de voltar do 'Google Developer Day' onde vi uma palestra sobre o
> SDK do Android. Foi falado que é possiv;el sim desenvolver applicações
> 'nativas' em C. Porém depois foi explicado que essas applicações, apesar de
> serem escritas em C, são compiladas p/ o mesmo bytecode do Java/Dalvik.
> Achei um lixo e desanimei totalmente.
>
Eu acho que houve um mal-entendido. ja' que uma das razoes de
criarem o NDK e' para permitir criacao de aplicacoes de processamento
digital de sinais ou jogos 3D. Nao haveria ganho algum compilando o
codigo C para bytecode.
--
-alex
http://www.ventonegro.org/
Então, eu tbm acho já que não me parece fazer sentido, mas vejo o que
diz o site:
"Please note that the NDK does not enable you to develop native-only
applications. Android's primary runtime remains the Dalvik virtual
machine."
http://developer.android.com/sdk/ndk/1.5_r1/index.html#overview
Outra coisa: ficou BEM claro na palestra que ao compilar uma
applicação p/ Android em C/C++, vc gera um '.so' que é executado no
sand-box do Dalvik. Ou seja, de uma forma ou outra, não é o que eu
chamaria de app nativa em C/C++. Já o site do google-groups diz que
se pode sim desenvolver executaveis.
Única certeza que tenho é que tá mal explicado... :-)
Aproveitando o link que você passou,
The Android NDK provides tools that allow Android application developers to embed components that make use of native code in their Android applications.
Android applications run in the Dalvik virtual machine. The NDK allows developers to implement parts of their applications using native-code languages such as C and C++. This can provide benefits to certain classes of applications, in the form of reuse of existing code and in some cases increased speed.
O NDK é o JNI para Android. O que está mal explicado nisso.2009/6/29 Gianni <nasus....@gmail.com>:
>
>
> On Jun 29, 2009, at 6:24 PM, Alex Queiroz wrote:
>>
>> Eu acho que houve um mal-entendido. ja' que uma das razoes de
>> criarem o NDK e' para permitir criacao de aplicacoes de processamento
>> digital de sinais ou jogos 3D. Nao haveria ganho algum compilando o
>> codigo C para bytecode.
>
> Então, eu tbm acho já que não me parece fazer sentido, mas vejo o que
> diz o site:
>
> "Please note that the NDK does not enable you to develop native-only
> applications. Android's primary runtime remains the Dalvik virtual
> machine."
> http://developer.android.com/sdk/ndk/1.5_r1/index.html#overview
>
Isso só quer dizer que você não pode desenvolver uma aplicação
completa usando código nativo, só componentes na forma de "shared
objects".
> Outra coisa: ficou BEM claro na palestra que ao compilar uma
> applicação p/ Android em C/C++, vc gera um '.so' que é executado no
> sand-box do Dalvik. Ou seja, de uma forma ou outra, não é o que eu
> chamaria de app nativa em C/C++. Já o site do google-groups diz que
> se pode sim desenvolver executaveis.
>
Então ficou BEM claro que á gerada uma biblioteca nativa que vai
ser carregada dinamicamente pela máquina virtual Java do Android.
--
-alex
http://www.ventonegro.org/