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ść.
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