🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.java
11 messages
11 total messages Started by Borneq Mon, 06 Jul 2015 05:28
Jakie narzędzie kompiluje na Dalvik?
#154175
Author: Borneq
Date: Mon, 06 Jul 2015 05:28
1 lines
837 bytes
Jakieś z SDK, ale nie mogę znaleźć nigdzie opisu
Re: Jakie narzędzie kompiluje na Dalvik?
#154176
Author: Kamil
Date: Tue, 07 Jul 2015 06:57
5 lines
1637 bytes
W dniu poniedziałek, 6 lipca 2015 07:28:34 UTC+2 użytkownik Borneq napisał:
> Jakieś z SDK, ale nie mogę znaleźć nigdzie opisu

Dalvik jest maszyną wirtualną dla systemu Android. Kod napisany w Javie można kompilować przy użyciu Android SDK (https://developer.android.com/sdk/installing/index.html).
Na stronie https://developer.android.com, w sekcji "Develop" znajdziesz opis wszystkiego co będzie potrzebne do zbudowania projektu.
Re: Jakie narzędzie kompiluje na Dalvik?
#154177
Author: Borneq
Date: Tue, 07 Jul 2015 10:34
10 lines
1668 bytes
W dniu 2015-07-07 o 08:57, Kamil pisze:
> W dniu poniedziałek, 6 lipca 2015 07:28:34 UTC+2 użytkownik Borneq napisał:
>> Jakieś z SDK, ale nie mogę znaleźć nigdzie opisu
>
> Dalvik maszyną wirtualną dla systemu Android. Kod napisany w Javie można kompilować przy użyciu Android SDK (https://developer.android.com/sdk/installing/index.html).
> Na stronie https://developer.android.com, w sekcji "Develop" znajdziesz opis wszystkiego co będzie potrzebne do zbudowania projektu.
>
Czy kompiluje Javę czy pliki klas już skompilowane? Pytam się, bo chyba 
można do projektu dołączyć jara z klasami. Z drugiej strony, często taki 
jar nie wchodzi do apki bo jest już w smartfonie.
Re: Jakie narzędzie kompiluje na Dalvik?
#154178
Author: Kamil
Date: Tue, 07 Jul 2015 14:23
16 lines
2704 bytes
W dniu wtorek, 7 lipca 2015 12:34:06 UTC+2 użytkownik Borneq napisał:
> W dniu 2015-07-07 o 08:57, Kamil pisze:
> > W dniu poniedziałek, 6 lipca 2015 07:28:34 UTC+2 użytkownik Borneq napisał:
> >> Jakieś z SDK, ale nie mogę znaleźć nigdzie opisu
> >
> > Dalvik maszyną wirtualną dla systemu Android. Kod napisany w Javie można kompilować przy użyciu Android SDK (https://developer.android.com/sdk/installing/index.html).
> > Na stronie https://developer.android.com, w sekcji "Develop" znajdziesz opis wszystkiego co będzie potrzebne do zbudowania projektu.
> >
> Czy kompiluje Javę czy pliki klas już skompilowane? Pytam się, bo chyba 
> można do projektu dołączyć jara z klasami. Z drugiej strony, często taki 
> jar nie wchodzi do apki bo jest już w smartfonie.

Nie za bardzo rozumiem pytanie, ale postaram się odpowiedzieć:
kompilacja obejmuje kod napisany w Javie. Efektem tego procesu są pliki wynikowe (*.class), które już nie są kompilowane. Jeżeli chcesz użyć skompilowanych klas możesz dołączyć plik *.jar, który je zawiera jako zależność dla budowanego projektu. 

A tak w ogóle, to w czym tak na prawdę tkwi problem? Pytam, ponieważ nie potrafię określić celu Twojego pytania. Może mógłbyś przedstawisz zarys sytuacji, w jakiej jesteś, jaki jest problem i jakiego outputu oczekujesz?
Re: Jakie narzędzie kompiluje na Dalvik?
#154180
Author: Pit
Date: Tue, 07 Jul 2015 14:42
16 lines
1971 bytes
Dnia 07.07.2015 Borneq <borneq@antyspam.hidden.pl> napisał/a:
> Czy kompiluje Javę czy pliki klas już skompilowane? Pytam się, bo chyba 
> można do projektu dołączyć jara z klasami. Z drugiej strony, często taki 
> jar nie wchodzi do apki bo jest już w smartfonie.

Można i tak i tak. Można kompilować kod źródłowy w Javie a można zrobić
rekompilację bytecode z gotowych plików *.class (skompilowanych na
konwencjonalną VM Javy) na Dalvika. Przy kompilacji ze źródeł w Javie i tak
proces jest dwuetapowy, czyli najpierw na podstawie plików *.java powstają
pliki *.class a potem z plików *.class (java bytecode) a potem z nich
powstają *.dex lub *.odex (dalvik bytecode).
Swoją drogą w najnowszych Androidach Dalvik został zastąpiony przez ART
(który dla "starych" aplikacji rekompiluje dalvik bytecode na kod natywny
więc kompatybilność wsteczna jest zachowana, apki zrobione na Dalvika działają
też na ART ale w drugą stronę już to nie działa, do uruchamiania apek
skompilowanych na ART trzeba mieć Androida co najmniej w wersji 4.4).
Re: Jakie narzędzie kompiluje na Dalvik?
#154179
Author: Borneq
Date: Tue, 07 Jul 2015 15:12
7 lines
1590 bytes
W dniu 2015-07-07 o 16:23, Kamil pisze:
> A tak w ogóle, to w czym tak na prawdę tkwi problem? Pytam, ponieważ nie potrafię określić celu Twojego pytania. Może mógłbyś przedstawisz zarys sytuacji, w jakiej jesteś, jaki jest problem i jakiego outputu oczekujesz?

To związane z pojawiającym się błędem "Conversion to Dalvik format 
failed with error 1", pytanie, które narzędzie za to odpowiada?
Ale to chyba błąd Andmore, bo gdy wróciłem do ADT, błąd, przynajmniej 
dla poprawnych projektów, przestał się pojawiać.
Re: Jakie narzędzie kompiluje na Dalvik?
#154181
Author: Arivald
Date: Tue, 07 Jul 2015 19:47
41 lines
2699 bytes
On 2015-07-07 12:34, Borneq wrote:
> W dniu 2015-07-07 o 08:57, Kamil pisze:
>> W dniu poniedziałek, 6 lipca 2015 07:28:34 UTC+2 użytkownik Borneq
>> napisał:
>>> Jakieś z SDK, ale nie mogę znaleźć nigdzie opisu
>>
>> Dalvik maszyną wirtualną dla systemu Android. Kod napisany w Javie
>> można kompilować przy użyciu Android SDK
>> (https://developer.android.com/sdk/installing/index.html).
>> Na stronie https://developer.android.com, w sekcji "Develop"
>> znajdziesz opis wszystkiego co będzie potrzebne do zbudowania projektu.
>>
> Czy kompiluje Javę czy pliki klas już skompilowane? Pytam się, bo chyba
> można do projektu dołączyć jara z klasami.

Java kompiluje do .class, a potem program z androidowego SDK, dx, pakuje 
je i konwertuje do .dex. A po instalacji na Lollipopie, dexy są 
kompilowane dla ART.

Można spokojnie dołączyć jary, zostaną przepakowane i skonwertowane do 
.dex.

Dodatkowo można dołączać binarne biblioteki .so (jak dllki), ale tu już 
więcej zabawy.

 > Z drugiej strony, często taki jar nie wchodzi do apki bo jest już w 
smartfonie.

Zapewne appache http próbowałeś ;-)

Tak, pewne package bibliotek już dołączonych do systemu nie są 
wkompilowywane w dexa. Ale te biblioteki są w SDK, w odpowiednich 
wersjach, nie trzeba ich dołączać wcale. Prubując je dołączać narażasz 
się tylko na problemy.

Za to można odpowiednim narzędziem zmienić package wewnątrz jara, i 
używać nowszej wersji danej biblioteki, tyle że z innego package (np nie 
org.apache.http.client tylko my.apache.http.client).

-- 
Arivald
Re: Jakie narzędzie kompiluje na Dalvik?
#154182
Author: Borneq
Date: Tue, 07 Jul 2015 21:38
14 lines
1648 bytes
W dniu 2015-07-07 o 21:47, Arivald pisze:
> Java kompiluje do .class, a potem program z androidowego SDK, dx, pakuje
> je i konwertuje do .dex. A po instalacji na Lollipopie, dexy są
> kompilowane dla ART.

Co to ART? Jeszcze inne bajtkody?

> Dodatkowo można dołączać binarne biblioteki .so (jak dllki), ale tu już
> więcej zabawy.

No właśnie, na Androidzie nic nie robiłem z JNI. A tymczasem w AndEngine 
na githubie jest parę plików w .c i .cpp. Dodatkowo linuxowe .mk i .sh. 
Do tej pory działałem pod Windows z Eclipse, teraz musiał bym postawić 
całe środowisko pod Linuxem i nie wiem jak dołączać .so do .apk
Re: Jakie narzędzie kompiluje na Dalvik?
#154183
Author: Pit
Date: Tue, 07 Jul 2015 22:05
28 lines
2314 bytes
Dnia 07.07.2015 Borneq <borneq@antyspam.hidden.pl> napisał/a:
> W dniu 2015-07-07 o 21:47, Arivald pisze:
>> Java kompiluje do .class, a potem program z androidowego SDK, dx, pakuje
>> je i konwertuje do .dex. A po instalacji na Lollipopie, dexy są
>> kompilowane dla ART.
>
> Co to ART? Jeszcze inne bajtkody?

Tu masz info:
http://source.android.com/devices/tech/dalvik/index.html
Generalnie to jest natywne RT (a nie wirtualne jak Dalvik), aplikacja nie
jest uruchamiana na maszynie wirtualnej, tylko jest kompilowana do
natywnego kodu.

>> Dodatkowo można dołączać binarne biblioteki .so (jak dllki), ale tu już
>> więcej zabawy.
>
> No właśnie, na Androidzie nic nie robiłem z JNI. A tymczasem w AndEngine 
> na githubie jest parę plików w .c i .cpp. Dodatkowo linuxowe .mk i .sh. 
> Do tej pory działałem pod Windows z Eclipse, teraz musiał bym postawić 
> całe środowisko pod Linuxem i nie wiem jak dołączać .so do .apk

Tu nawet nie chodzi o JNI (choć to też można), można po prostu produkować
kod natywny na daną architekturę w celu zwiększenia wydajności (albo
zaimplementowania czegoś, czego się nie da zrobić inaczej, na przykład
obsługa jakiegoś nietypowego urządzenia podłączonego przez USB). Służy do
tego Android NDK:
https://developer.android.com/tools/sdk/ndk/index.html
Re: Jakie narzędzie kompiluje na Dalvik?
#154184
Author: Arivald
Date: Wed, 08 Jul 2015 04:34
35 lines
2222 bytes
On 2015-07-07 23:38, Borneq wrote:
> W dniu 2015-07-07 o 21:47, Arivald pisze:
>> Java kompiluje do .class, a potem program z androidowego SDK, dx, pakuje
>> je i konwertuje do .dex. A po instalacji na Lollipopie, dexy są
>> kompilowane dla ART.
>
> Co to ART? Jeszcze inne bajtkody?
>

https://pl.wikipedia.org/wiki/Android_Runtime


>> Dodatkowo można dołączać binarne biblioteki .so (jak dllki), ale tu już
>> więcej zabawy.
>
> No właśnie, na Androidzie nic nie robiłem z JNI. A tymczasem w AndEngine
> na githubie jest parę plików w .c i .cpp. Dodatkowo linuxowe .mk i .sh.

A to raczej wymaga Android NDK (native development kit).
Z NDK nie bawiłem, nie wiem czy tu development zależy od systemu 
(win/lin/ios) czy nie, ale make i shella można spokojnie zainstalować 
pod Winows.

https://developer.android.com/ndk/index.html


> Do tej pory działałem pod Windows z Eclipse, teraz musiał bym postawić
> całe środowisko pod Linuxem i nie wiem jak dołączać .so do .apk
>

To "jak" jest opisane w wielu miejscach w sieci. Linux nie jest wymagany.


-- 
Arivald
Re: Jakie narzędzie kompiluje na Dalvik?
#154185
Author: Borneq
Date: Wed, 08 Jul 2015 10:16
11 lines
1625 bytes
W dniu 2015-07-08 o 06:34, Arivald pisze:
> A to raczej wymaga Android NDK (native development kit).
> Z NDK nie bawiłem, nie wiem czy tu development zależy od systemu
> (win/lin/ios) czy nie, ale make i shella można spokojnie zainstalować
> pod Winows.
>
> https://developer.android.com/ndk/index.html

To super, pod VirtualBoxem mam problem z USB3 a pod VMWare Playerem jest 
taka mała rozdzielczość ekranu, że nie daje się zainstalować Kubuntu.
make i shell da się zainstalować, ale jak skompilować do .so i dodać do apk?
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads