2013-08-08 12 views

Odpowiedz

4

Istnieją urządzenia bez usług Google. W takim przypadku interfejs API Google jest niedostępny. Jeśli nie korzystasz z pakietu SDK Google API, Twoja aplikacja może nadal działać na tych urządzeniach.

E.g. weź pod uwagę Kindle Fire, nie ma zainstalowanego sklepu Play, a także różnych niskobudżetowych tabletów i chińskich telefonów. Niestandardowe kompilacje z kodu open source, takiego jak Cyanogenmod, również nie mają zainstalowanych aplikacji Google (chociaż wielu użytkowników dodaje je ręcznie).

Chociaż sam system Android jest oparty na otwartym kodzie źródłowym, aplikacje Google wymagają od dostawcy uzyskania licencji od Google. Wiem o tym, ponieważ Google poprosił Google o niestandardowe kompilacje, by nie uwzględniały swoich aplikacji. Posiadanie własnego sklepu zamiast Sklepu Play jest atrakcyjne dla niektórych producentów, ponieważ wtedy uzyskują udział w przychodach, zamiast pozwalać Google na uzyskanie wszystkich zysków. Dlatego nie wszystkie urządzenia mają je.

+0

Tak, Kindle Fire może być dobrym powodem! Ale znowu, nigdy nie widziałem odwrotnej porady jak "używaj google api przez cały czas, ale zajmij się sytuacjami XY, kiedy nie możesz tego użyć". Nawet zespół programistów Google nie zaleca korzystania z pakietu SDK Google API częściej niż zwykły. – sandalone

+2

Przypuszczam, że innym czynnikiem może być to, że prawdopodobnie dodaje trochę bata do twojego pliku binarnego, którego można uniknąć, jeśli go nie używasz. –

+0

Dobra obserwacja na urządzeniach bez aplikacji Google. Nie wiedziałem o licencji, ale znowu jest to logiczne :). Nigdy też nie widziałem tanich chińskich urządzeń bez aplikacji Sklep Play. Może do tej pory nie korzystałem z urządzeń dolnego poziomu. – sandalone

1

Jednym z możliwych powodów jest to, dlaczego należy coś dołączyć, jeśli go nie używasz? Kiedy piszesz nową klasę, czy jesteś import całą strukturą Androida? Nie, nie zrobiłbyś tego, ponieważ w najgorszym przypadku może to spowodować problemy w kodzie, a nawet w najlepszym wypadku zajmuje to dodatkowe miejsce w wynikowym pakiecie APK.

Nie jestem pewien, ile dodatkowego miejsca zostanie wykorzystane w pamięci/pamięci masowej, budując aplikację przy użyciu pakietu SDK Google API, ale nie mogę sobie wyobrazić, że jest to 0, aw rozwoju mobilnym nie można sobie pozwolić na naprawdę nie być rozsądnym przy użyciu zasobów.

+1

Optymalizuję twój binarny z Proguard powinien jednak zmniejszyć większość problemów w tym zakresie. –

+1

Może to zmniejszyć problemy z używaniem zasobów, ale jeszcze bardziej pogarsza to złożoność problemu. Jest to kolejna rzecz, która (teoretycznie) mogłaby się zepsuć, dodając do tego rzecz, którą dodałeś, która również może się zepsuć i nie przyniosła ci żadnej korzyści. – sigmabeta

Powiązane problemy