Jak działa kompilator systemu Android? Czy usuwa kompilację komentarzy w kodzie Java i plikach Androida XML?Co dzieje się z komentarzami po kompilacji plików Java w systemie Android?
Odpowiedz
Komentarze w plikach Java są usuwane lub ignorowane, gdy są wkompilowane w pliki klas. Pliki klas nie są przeznaczone do czytania przez ludzi - są zoptymalizowane pod kątem wydajnego działania na maszynie wirtualnej. Jeśli komentarze miałyby pozostać, spowodowałyby po prostu, że pliki klas byłyby większe niż wymagane i bez żadnych dodatkowych korzyści (tj. Kompilator i maszyny wirtualne nie rozumieją komentarzy, więc dlaczego je uwzględniać)
Co do Pliki XML, komentarze są zwykle zachowywane. Podczas gdy skompilowany plik klasy ma tylko jeden cel (uruchamianie na maszynie wirtualnej), plik XML może służyć wielu celom. Na przykład możesz załadować plik XML do swojej aplikacji i nim manipulować. W zależności od wykorzystania pliku XML w aplikacji może być wymagane przechowywanie tam komentarzy - w rzeczywistości aplikacja może szukać komentarzy. Ponieważ pliki XML mogą mieć szeroki zakres zastosowań, komentarze nie są usuwane z plików XML na wypadek, gdyby były wymagane do innych celów.
Dzięki! Rozumiem. :) Być może muszę usunąć niektóre z moich komentarzy na temat XML przed eksportowaniem mojej aplikacji ze względów bezpieczeństwa. – Arci
Zdecydowanie zaleca się usunięcie komentarzy z XML, jeśli obawiasz się o konsekwencje dla bezpieczeństwa. Jeśli masz dużo komentarzy, spowoduje to również, że aplikacja będzie działać wolniej, ponieważ musi pomijać wszystkie komentarze podczas odczytu pliku XML. Warto pamiętać, że pliki XML są celowo zaprojektowane tak, aby były czytelne dla człowieka :-) – wattostudios
Dzięki! Zamierzam już usunąć moje komentarze. – Arci
Komentarze nie są obecne w kodu bajtowego/.class wersji file..comments są ignorowane przez kompilator w czasie kompilacji ..
Kompilator działa w sposób, który konwertuje wszystkie Wysokie Poziom Język kodu do zrozumiałego kodu maszyny Kod ... wszystko od razu .. nie linia po linii jak interpreter .. w przypadku Androida .. kompilator konwertuje pliki źródłowe .java do swoich plików kodu bajtowego/.class ... a następnie do plików .dex (Dalvik Executables). Wszystkie aplikacje w systemie Android działają na wirtualnej maszynie zwanej Dalvik Virtual Machine, która potrzebuje plików .dex.
Spróbuj otworzyć plik apk podobny do zip .. usin g dowolny archiwizator .. zobaczyłbyś tam plik classes.dex ..
Jeśli chodzi o pliki xml, są one używane przez aplikację tylko wtedy, gdy wyświetlasz coś na ekranie (np. renderowane) ... więc w momencie wyświetlania aktywności ... odpowiedni plik xml służy do konstruowania interfejsu użytkownika. Proces ten nazywa się pompowaniem!
EDYCJA: [Ale 1 punkt teraz pamiętam w związku z tym, że .. aplikacje systemowe, które są obecne w telefonie z systemem Android .. takie jak wszystkie Google dostarczone aplikacje (Gmail, mapy itp.) .. kontakty, telefon. apk etc..wszystkie są to apki systemowe ... obecne w katalogu/system/app/.. mogą lub nie mogą zawierać plików .dex w nich ..
jeśli zawierają .dex wewnątrz plików apk (tak jak każda normalna aplikacja, którą tworzymy). ROM jest nazywany odszyfrowanym ROM (oprogramowanie układowe systemu operacyjnego Android) .. ale z kolei powoduje wolniejsze uruchamianie, gdy pamięć ROM jest instalowana po raz pierwszy z powodu kopiowania wszystkie pliki .dex z systemowych plików .apk do pamięci podręcznej dalvik., ponieważ wszystkie pliki .dex apków systemu są potrzebne przy uruchamianiu systemu/rozruchu ..
Ale jeśli ROM jest odekscytowany ... wszystkie pliki .dex systemu .apk nie są obecne w pliku .apk, ale jako osobny plik w katalogu/system/app /. Z rozszerzeniem .odex
Dla wszystkich aplikacji, które ty i ja opracowujesz (aplikacje niesystemowe) ... tylko aplikacje w sklepie gier .. to zawierają .dex wewnątrz pliku .apk]
EDYCJA: wiem, że nie jest to bardzo związane z pracą lub pytanie ... ale chciałem tylko wspomnieć o różnicy umieszczania plików .dex dla aplikacji sys i non-sys! :)
Mam nadzieję, że pomogło! :)
- 1. Co dzieje się z zadaniem po anulowaniu?
- 2. Co dzieje się z kodem JavaScript po kompilacji aplikacji za pomocą Titanium Mobile
- 3. Co dzieje się po przechwyceniu pakietu?
- 4. Co dzieje się w BeginProcessRequest()?
- 5. Co się dzieje z LOST String obiektów
- 6. Co się dzieje w __libc_start_main?
- 7. Co dzieje się z kodem po przekierowaniu javascript (ustawienie window.location.href)?
- 8. Co dzieje się z bazą danych Sqlite po usunięciu aplikacji?
- 9. Co dzieje się z deskryptorami plików w Pythonie 3, gdy kończy się .close()?
- 10. Co dzieje się z atrybutem view.frame.size po CGAffineTransform (Rotate)?
- 11. Co dokładnie dzieje się po usunięciu zadania z ostatnich czasów?
- 12. Co dzieje się z indeksem po zrzuceniu tabeli?
- 13. Co dzieje się z unique_ptr po std :: move()?
- 14. Co dzieje się z kodem po pliku history.back()?
- 15. Co dzieje się z usługą JS ServiceWorker po zamknięciu karty
- 16. Co się tutaj dzieje z purecsami?
- 17. Co dzieje się z wyłączoną obsługą przerwań?
- 18. Co dzieje się z zewnętrzną funkcją inline?
- 19. Co dzieje się z niezwiązanymi literałami JavaScript?
- 20. Przypisywanie zmiennej, co tak naprawdę się dzieje, Java
- 21. Co się dzieje, gdy dostawcy typu zmieniają się w F #?
- 22. Co dzieje się z tą tablicą bajtów?
- 23. Usługa odtwarzania Java wydaje się odtworzyć usunięte pliki. Co się dzieje?
- 24. Co tu dzieje się z zakresem JavaScript?
- 25. Android - Co się dzieje, gdy urządzenie jest odblokowane?
- 26. Problem z kodowaniem plików kompilatora Java kompilacji
- 27. Wiosna - @Transactional - Co dzieje się w tle?
- 28. co dzieje się na niższych poziomach po wywołaniu systemu fork?
- 29. EventHandler: Co się dzieje w tym kodzie?
- 30. Co dzieje się w tym oświadczeniu zwrotu?
komentarze zostają zignorowane przez kompilator i nie są w wynikowym kodzie bajtu lub kodzie maszynowym –