Ukryte funkcje programowania na Androida?

121

Dziwię się, że w serii ukrytych funkcji nie ma jeszcze wpisu o ukrytych funkcjach Androida , który śledzę od jakiegoś czasu.

Seria Ukryte funkcje jest świetna dla osób, które są nowicjuszami w określonym języku. Pokazuje liny i kilka cennych sztuczek w jednym miejscu. Myślę, że to wspaniały pomysł. Nawet eksperci czasami znajdują sztuczki, o których nigdy nie słyszeli.

Rozpoczynam tworzenie Androida i chciałbym usłyszeć o jego ukrytych funkcjach, wskazówkach, sztuczkach i pułapkach.

Więc tu idzie: jakie są ukryte funkcje z Androidem ?

Artem Russakovskii
źródło

Odpowiedzi:

105

Mam nadzieję, że nie ma zbyt wielu ukrytych, ukrytych funkcji - ale oto niektóre z mniej znanych i nieintuicyjnych funkcji dostępnych na Androida, które z pewnością ułatwią Ci życie i poprawią aplikacje.

  • Cały kod źródłowy platformy i wszystkie natywne aplikacje inne niż Google są dostępne do przeglądania, pobierania, wypożyczania lub kradzieży z projektu Android Open Source .
  • Korzystając ze struktury zasobów , tworzenie zlokalizowanych wersji aplikacji jest tak proste, jak dodanie nowego podfolderu z adnotacjami (np. Wartości-fr), który zawiera plik XML z ciągami znaków w innym języku (np. Francuski). Android wybierze dla Ciebie odpowiedni folder w czasie wykonywania.
    • Ta sama struktura zasobów umożliwia korzystanie z alternatywnych układów dla różnych konfiguracji sprzętowych, gęstości pikseli ekranu i urządzeń wejściowych po prostu przez upuszczenie ich w nazwanym folderze.
  • Od Androida 1.6 Twoja aplikacja może generować wyniki, które pojawią się w wynikach wyszukiwania w oknie szybkiego wyszukiwania na ekranie głównym. Nazywa się to niestandardowymi sugestiami wyszukiwania .
  • Korzystanie z intencji i filtrów intencji Twoje aplikacje mogą wysyłać i obsługiwać anonimowe żądania wykonania akcji (np. Aplikacja Where może zażądać rezerwacji stolika z aplikacji Open Table ).
    • Mogą zażądać, aby nieznana aplikacja zakończyła działanie, bez konieczności sprawdzania, które aplikacje mogą spełnić to żądanie
    • Twoja aplikacja może realizować żądania z nieznanych aplikacji w celu wykonania działań bez konieczności wiedzieć, które aplikacje będą wysyłać żądania. Zagraj w to prawo i możesz utworzyć `` domyślną '' aplikację na Twitterze, aplikację do rezerwacji itp.
  • Korzystając z alarmów , możesz ustawić aplikację tak, aby wykonywała zadania o określonych porach, nawet jeśli aplikacja nie jest uruchomiona.
    • Możesz zaoszczędzić dużo czasu pracy na baterii, używając metody setInexactRepeating do planowania regularnych zdarzeń (takich jak odpytywanie serwera lub aktualizacje). Synchronizuje alarmy z wielu aplikacji w tym samym czasie, a nie doraźnie.
  • Korzystając ze struktury Preferencji , możesz tworzyć ekrany ustawień dla swoich aplikacji w tym samym stylu, co ustawienia systemowe. Możesz nawet włączyć ekrany ustawień systemu (np. Bezpieczeństwo i Lokalizacja) do hierarchii ustawień aplikacji.
  • Korzystając z interfejsów API AudioTrack i AudioRecord , można przesyłać strumieniowo dane audio bezpośrednio zi do buforów audio PCM.
Reto Meier
źródło
35

Te narzędzia w katalogu tools / SDK zasługują na wzmiankę:

  • nasz projektant był szczególnie pod wrażeniem możliwości draw9patchzaprojektowania rozciągliwych przycisków. Dał mi stamtąd zasoby i zmieniłem kolor tła na 9-patch do rysowania, a teraz mamy niestandardowy przycisk, zaokrąglone rogi itp. Rozciągnięte, aby pasowały do ​​tekstu.
  • ddms, który jest również zintegrowany z wtyczką Eclipse. Jest niesamowicie potężny, ale używam go do robienia zrzutów ekranu.
  • adb- wchodzić w interakcję z urządzeniem lub emulatorem z poziomu wiersza poleceń. Używam tego do śledzenia dzienników z mojego urządzenia w oknie terminala na moim pulpicie, chociaż uznałem to za przydatne do instalowania i odinstalowywania aplikacji, które działają nieprawidłowo.
  • sqlite3 - świetne do interakcji z zainstalowaną bazą danych i wypróbowywania zapytań.
  • apkbuilder, zipalign, aapt- doskonale nadaje się do prowadzenia bez głowy buduje
  • monkey do testowania aplikacji.

Chciałbym również wyróżnić trzy projektowanie pod kątem wydajności , responsywności i bezproblemowości , ale chciałbym również dodać czwarte kodowanie żywotności (baterii) .

Chociaż Javadoc może być nieco rzadki w czasach, to pomaga końca nie mieć źródło właśnie tam dla ciebie patrzeć.

Bardzo przydatne jest również posiadanie wielu przykładowych aplikacji napisanych przez pracowników Google do tworzenia, sprawdzania, a następnie sprawdzania, jak to zrobili.

Jamesh
źródło
1
Brakowało Ci innego fajnego układu narzędzia.
100rabh
Innym dobrym, którego używam przez cały czas, jest przeglądarka hierarchii.
Artem Russakovskii
25

Wtedy chyba zacznę.


Myślę, że fajną ukrytą funkcją są najlepsze praktyki w dokumentacji Androida. Zawiera wiele świetnych wskazówek dotyczących projektowania responsywnych i szybkich aplikacji.

Sekcje sprawdzonych metod to:

  • Obsługa wielu ekranów (wiele rozmiarów i rozdzielczości)
  • Wytyczne dotyczące interfejsu użytkownika
    • Projektowanie ikon
    • Projektowanie widżetów aplikacji
    • Projektowanie działań i zadań
    • Wygląd menu
  • Projektowanie pod kątem wydajności
  • Projektowanie pod kątem responsywności
  • Projektowanie pod kątem płynności

Inną ukrytą funkcją jest to, że te dokumenty są dostępne w trybie offline jako część pakietu SDK. Na początku ładowałem kilka stron każdego dnia na poranną podróż pociągiem, ale nie musiałem już tego robić po tym, jak znalazłem je w katalogu SDK.


Jeśli używasz Eclipse, zauważysz, że nie formatuje on plików XML zbyt dobrze, a kiedy to robi, jest bardzo niespójny (czasami dzieli atrybuty według nowych linii, czasami nie). Aby to naprawić, możesz nacisnąć Ctrl-Shift-F (automatyczne formatowanie). Reguły używane przez Ctrl-Shift-F znajdują się w Okno-> Preferencje-> XML-> Pliki XML-> Edytor.

Artem Russakovskii
źródło
1
Ta ostatnia z pewnością będzie częścią mojej pracy. To mnie denerwowało przez ostatni tydzień ... Dzięki!
Mikle
14

Android obsługuje pliki XML <shape>, które mogą być używane jako rysunki podobne do SVG. Niestety nie ma dla nich dokumentacji. Oto najlepsze informacje, jakie udało mi się znaleźć:

http://escomic.net/217

Timmmm
źródło
4
Istnieje również idunnolol.com/android/drawables.html z pełną dokumentacją dotyczącą wszystkich funkcji XML dla kształtów. Kształty mogą być bardzo ważne w przypadku okrągłego tła Courner, które zmieniają kolor po kliknięciu lub tworzy gradienty zdefiniowane w XML zamiast niestandardowych rysunków tła.
Janusz
czy można dodać kilka kształtów do jednego dokumentu xml. np. kilka okręgów i prostokątów?
skyfoot
13

Jeśli chodzi o sprawdzone metody, warto zapoznać się ze stylem kodowania Androida:

http://source.android.com/source/code-style.html

a także kod zaćmienia i importuje elementy formatujące (android-formatting.xml, android.importorder), które znajdują się w kodzie źródłowym platformy w trakcie opracowywania / ide / eclipse

dljava
źródło
2
Jest zbyt wiele kółek do przeskoczenia, aby pobrać kod tylko dla programu formatującego Eclipse, więc znajdź go tutaj: google.com/codesearch/p?hl=en#CRBM04-7BoA/ide/eclipse/ ...
idbrii
7

hierarchyviewer w / tools pozwala na debugowanie / analizę układu widoku: wypełnienie, pozycjonowanie, hierarchię widoku itp.

Kilka razy zaoszczędziło mi to czasu, gdy próbowałem dowiedzieć się, dlaczego wszystko jest ułożone tak, jak jest.

Ivo van der Wijk
źródło