2011-12-01 21 views
6

Mam zamiar napisać moją pierwszą aplikację na Androida. Jest to dość prosta aplikacja, która nie korzysta z żadnych specjalnych funkcji, poza możliwością planowania powiadomień i odczytu/zapisu plików graficznych do lokalnej pamięci urządzenia. Dotarcie do jak najszerszego grona odbiorców jest moim priorytetem. Jeśli wybiorę system Android 1.5, czy aplikacja będzie działać poprawnie aż do ICS? Czy powinienem kierować reklamy na system Android 2.1, który wydaje się być nową podstawą używanych telefonów?Jaką wersję Androida obrać?

Ponieważ aplikacja jest dość podstawowa, jeśli wybieram docelowy ICS, czy działa na wersjach z powrotem do wersji 2.1? Może to głupie pytanie.

+0

Czy otrzymujesz dodatkowe punkty za pytania kończące się jako słabe? Jest to bardzo szczegółowe pytanie dotyczące technicznych możliwości platformy i nie dotyczy opinii. W skrócie - jeśli celujesz w Androida 2.1, będzie działać w nowszej wersji. Dlaczego to może wywołać debatę? Aby udowodnić, że nie zobaczy odpowiedzi poniżej. Podejrzewam, że większość nowych urządzeń z Androidem będzie musiała odpowiedzieć na wersję tego pytania - nie chodzi tu o liczbę urządzeń, czy też powinieneś kierować na platformę x lub y, ale będzie działał na 3,4,5, jeśli jest zbudowany dla 2. – Chanoch

Odpowiedz

6

W tym miejscu sugerowałbym, aby cel był co najmniej 1,6. Wcześniej nie było obsługi wielu ekranów. Ponieważ obecnie istnieją setki lub więcej urządzeń o różnych rozmiarach i gęstościach, Twoja aplikacja nie będzie dobrze wyglądać we wszystkich, jeśli nie wykorzystasz niektórych funkcji dodanych w wersji 1.6.

można znaleźć tabelę z których wersje OS są najbardziej aktywne tutaj: http://developer.android.com/resources/dashboard/platform-versions.html

na podstawie aktualnej tabeli, jeśli cel 2,1 Pokochasz więc pokrycie 97,7% urządzeniami podłączonymi do Android Market w ciągu ostatnie 2 tygodnie.

1

Wiele funkcjonalności Android jest przeniesiona do starszych wydań przez Google (takich jak fragments)

Jeśli używasz tylko proste rzeczy (które były przez jakiś czas, potem sugerowałoby najniższy idziesz jest v1.6- to jest, gdy wielu rozmiarach ekranu zaczęła być obsługiwana

9

Istnieje wiele czynników do rozważenia. publiczność

1. Cel

1.5 dzisiaj nie ma większego znaczenia i nie polecam ludziom, aby go celować, chyba że naprawdę potrzebowali. Odkrywczość aplikacji wynosi dziś 0,9% dla tych urządzeń, zgodnie z current Market statistics.

Z punktu widzenia odbiorców 1,5 nie ma znaczenia.

1,6 wynosi dziś około 1,4%, co jest nieco więcej, ale wciąż ślad. Tylko przez ten argument nie jest to ważne.

Istnieje również bardzo ważny problem: Twoja technologia dla docelowych odbiorców. Są to rynki niszowe. Na przykład, istnieje kilka urządzeń iDEN w wersji 1.5, a obsługa ciastek staje się bardzo ważna w kontaktach z tymi użytkownikami.

Nie należy zakładać, że ponieważ urządzenie w USA jest zaktualizowane w wersji 2.1, to jest gdzie indziej. Motorola, na przykład, ma straszną historię wspierania urządzeń w innych krajach. Zobacz na przykład trend #MOTOFAIL.

Należy również wziąć pod uwagę cel krajowy. Ludzie, którzy mają mniej pieniędzy, częściej mają urządzenia pre-Eclair i małe urządzenia eclair/froyo. Powinieneś wziąć to pod uwagę i zrównoważyć swoje potrzeby API. Ale nie znalazłem tego, by to miało znaczenie, dzisiaj. Ma to duże znaczenie w biedniejszych krajach, które wciąż są zalane 1,5 urządzeniem, ale nawet to się zmienia (znowu osobiste doświadczenie).

Wreszcie istnieje czysty czynnik rentowności. Z mojego osobistego doświadczenia wynika, że ​​użytkownicy w wersjach 1.5 i 1.6 znacznie rzadziej płacą i obsługują aplikację. Mam aplikację na modelu freemium. Mam 4 razy (proporcjonalnie, oczywiście) więcej użytkowników darmowej aplikacji niż w płatnej aplikacji.

2. funkcje API i łatwość rozwoju

Nie polecam kierowania 1.5 ze względu na jego dziwactw układu. Jeśli pracowałeś z nim wystarczająco dobrze, zauważyłeś, że istnieją niedoskonałości z układem i dostępnością do rysowania. Pierwsza aplikacja foursquare (tylko przykład, na który patrzyłem dzisiaj, w Google Code) ma wiele wierszy, które wyjaśniają te problemy. Moim skromnym zdaniem, nie jest to tego warte.

Dobrą rzeczą jest to, że 1,6 zyskujesz dostęp do wielu bardzo ważnych bibliotek, głównie fragmentów i ładowarek, które zostały przeniesionych z powrotem do 1,6 i sprawi, że twoje życie znacznie łatwiejsze. Nie tracisz zbyt wiele, jednocześnie wspierając wszystkie starsze urządzenia.

To jest główny powód, dla którego ludzie dziś ustanawiają 1.6 jako minimum API.

Zawsze gdy miksujesz potrzeby, musisz przeczytać przeczytać multiple API strategies.

A teraz drobne problemy. Jeśli Twój projekt jest zbyt duży, możesz zastanowić się, czy warto kierować urządzenie bez funkcji app2sd, która została wprowadzona w Froyo/2.2/api-8. Uważam jednak, że tak nie jest. I są jeszcze inne drobne problemy, których teraz nie pamiętam.

Jednak 1.6 nie jest świętym graalem. Jeśli celujesz w 1.6, znajdziesz małe niedogodności. Wystarczy powiedzieć bardzo mały przykład, nie sądzę, powiedzmy, onKeyLongPress() is available on pre-2.0 devices. To samo z Service.onStartCommand i wieloma flagami usług (api 5 i wyżej). Na przykład, lubię polegać na START_FLAG_REDELIVERY lub START_STICKY. Tak więc, chociaż można użyć programu ładującego w wersji 1.6, potrzebuję innych funkcji uzupełniających braki w wersji 1.6. Większość tych funkcji nie jest dostępna dla wersji 1.6 AFAIK.

To tylko jeden z małych problemów. Są rozproszone, co utrudnia ich realizację.

Lepsze interfejsy API zapewniają mniej czasu na wprowadzenie na rynek i szybszą wydajność.

3. Opracowanie strategii

Osobiście zrobiłbym następujące (ja faktycznie robi to teraz): opracowanie na urządzeniu niższym poziomie (1,6), a gdy czujesz potrzebę zaimplementuj coś, czego nie ma, zmień swój cel na wyższy API, aby uzyskać jego "odczucie". To pomaga, gdy już wiesz, co zaimplementować.

Jeśli nie wiesz, co możesz zaimplementować (oczywiście pod kątem kodu), wybierz najwyższy interfejs API (zazwyczaj 2.3), aby móc przeglądać funkcje uzupełniania kodu. Wiem, że to trochę przypomina "próbę i błąd", ale nie wiem, czy istnieje bardziej praktyczny sposób na nauczenie się tego.

4. Rozdrobnienie

Ponieważ wiem, że to będzie generować komentarze f-słowo, wziąć pod uwagę, że, przynajmniej moim zdaniem, nie jest dużo o fragmentacji, ale o wiele więcej o nauce API i znając twój cel i rynek. Fragmentacja jest drugorzędna w stosunku do tej dyskusji, więc myślę, że lepiej unikniemy tej gorącej debaty.

Technicznie widać różnice w witrynie API Difference.

Tak, uważam, że to całkiem dobry przegląd.

Dodatek: Co bym zrobił dzisiaj (edycji)

Generalnie wszystko jest równe i dla ogólnej aplikacji, bym min przy API 7/eclair. To wciąż 97% urządzeń dostępnych obecnie na rynku, a jednocześnie oferuje funkcje dla bogatych aplikacji i łatwego rozwoju, a jednocześnie zwiększa produktywność, skracając czas wprowadzania produktów na rynek, jednocześnie zapewniając pewną zyskowność.

+0

. gdybyś zapytał mnie, jakie API będę obsługiwał co najmniej dzisiaj, wszystko inne będzie równe i dla ogólnej aplikacji, powiedziałbym API 7/Eclair. – davidcesarino

+3

Bardzo ładne napisz. Gdybym mógł przenieść mój znacznik wyboru do twojej odpowiedzi, zrobiłbym to. – FoamyGuy

3

FYI, wersja 2.2 i 2.3 to obecnie ponad 90% urządzeń z systemem Android.

Jeśli wybieram system Android w wersji 1.5, czy aplikacja gwarantuje, że działa dobrze, aż do usługi ICS?

Tak

powinienem kierować Android 2.1, który wydaje się być nowa linia bazowa dla zwykłych telefonów w użyciu?

Myślę, że w porządku.

Ponieważ aplikacja jest dość podstawowa, jeśli wybieram docelowy ICS, czy działa na wersjach z powrotem do wersji 2.1?

To też jest w porządku.

Moim zdaniem, nie martw się o to i po prostu zacznij rozwijać swoją pierwszą aplikację z 2.2, ponieważ obejmie ona 90% obecnych i przyszłych urządzeń w jakikolwiek sposób. Nie sądzę, że będziesz miał problem z wersją docelową. To jedna z najłatwiejszych części programowania Androida.

Powiązane problemy