Czy to możliwe, aby utworzyć wiele celów dla projektu Android jak Xcode Target

Pracowałem z iPhone Xcode Traget , aby stworzyć wiele aplikacji na iPhone ' a z jedną bazą kodu. Moje pytanie, czy jest możliwe, aby utworzyć wiele celów dla projektu Android. Jeśli tak, to czy jest to możliwe z Eclipse?

Edit:

Xcode Target: pojedynczy projekt może zawierać jeden lub więcej celów, z których każdy produkuje jeden produkt (aplikację). To zawsze tylko jeden projekt, w którym możemy wybrać konkretny cel i uruchomić żądaną aplikację

IPhone ma tylko jeden Projekt dla wielu produktów (App1, App2, App3 itp.), Teraz mogę mieć taki sam jak ten, jeden projekt na Androida i wiele produktów (App1, App2, App3 itp.) {]}

Z góry dzięki

Author: Ben Lings, 2012-02-02

4 answers

Po szeroko zakrojonych badaniach zdałem sobie sprawę Android Library Project dostarczy rozwiązanie dla moich wymagań

An Android library project jest projektem rozwojowym, który posiada współdzielony kod źródłowy i zasoby Androida. Inna aplikacja na Androida projekty mogą odwoływać się do projektu biblioteki i, w czasie budowy, zawierać jego skompilowane źródła w ich .pliki apk. Wiele aplikacji projekty mogą odwoływać się do tego samego projektu biblioteki i dowolnych single projekt aplikacji może odwoływać się do wielu projektów bibliotek.

Uwaga: do korzystania z nowego projektu biblioteki potrzebne są narzędzia SDK r14 lub nowsze funkcja, która generuje każdy projekt biblioteki do własnego pliku JAR. Ty można pobrać narzędzia i platformy za pomocą Android SDK i AVD Menedżera, jak opisano w dodawaniu komponentów SDK.

* Jeśli masz kod źródłowy i Zasoby wspólne dla wielu Projekty Android, można przenieść je do projektu biblioteki tak, że jest łatwiejsze w utrzymaniu w różnych aplikacjach i wersjach. Oto kilka typowe scenariusze, w których można było korzystać z projektów bibliotecznych:

• jeśli tworzysz wiele powiązanych aplikacji, które wykorzystują niektóre z tych samych komponentów, przenosisz redundantne komponenty z ich odpowiednich projektów aplikacji i utworzyć pojedynczy, wielokrotnego użytku zestaw te same komponenty w projekcie biblioteki. Jeśli tworzysz aplikacja dostępna zarówno w wersji darmowej jak i płatnej wersje. You move the część aplikacji, która jest wspólna dla obu wersji w bibliotece projekt. Dwa zależne od siebie projekty, z ich różnymi pakietami nazwy, odwoła się do projektu biblioteki i podaje tylko różnica między dwiema wersjami aplikacji.

 10
Author: Vinayak Bevinakatti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-17 07:18:11

Trochę za późno, ale dla tych, którzy wciąż szukają rozwiązania:

Gradle Build System używa wariantu kompilacji i kombinacji smaków produktów do generowania różnych aplikacji ze współdzieloną / wspólną bazą kodu i zasobami.

Zgodnie z Android Developer Reference Site:

System budowania wykorzystuje smaki produktów do tworzenia różnych wersji produktów aplikacji. Każda wersja produktu aplikacji może mieć różne funkcje lub wymagania dotyczące urządzenia. System budowania wykorzystuje również typy kompilacji w celu zastosowania różnych ustawień kompilacji i pakowania do każdej wersji produktu. Każda kombinacja smaku i typu budowy produktu tworzy wariant budowy. System kompilacji generuje inny APK dla każdego wariantu kompilacji aplikacji.

Teraz Można mieć dwa lub więcej smaków produktów np. (płatny smak, darmowy / demo smak) itp. dla jednego projektu z tą samą bazą kodu.

Aby uzyskać więcej informacji zobacz Build Variants & Product Flavors Doc

 9
Author: Qasim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-30 10:05:53

Jest tylko jeden cel budowania w Androidzie w jednym projekcie. Kompatybilność z backwordem jest kontrolowana podczas instalacji za pomocą minSdkVersion, targetSdkVersion i maxSdkVersion w pliku manifest

http://developer.android.com/guide/topics/manifest/uses-sdk-element.html

Również android market upewnij się, że jeśli Twoja aplikacja ma natywny kod i jest zbudowana dla architektury ARM, nie jest widoczna na urządzeniu x86

 -1
Author: Rajdeep Dua,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-02 06:42:56

Możesz kontrolować, jaką wersję ktoś zainstalował i rozpocząć jedną lub drugą aktywność w zależności od tego. Możesz użyć czegoś takiego:

private static boolean version= android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.HONEYCOMB;

A potem zrób coś w stylu:

 public void onCreate(Bundle savedInstanceState){
 Intent startActivity =null;
 if(version)
            startActivityIntent = new Intent( this, newVersionActivity.class );
 else
         startActivityIntent = new Intent( this, oldVersionActivity.class );

 finish();}

Ten przykład pochodzi z wideo Google I / O (min 5~):http://www.google.com/events/io/2011/sessions/android-protips-advanced-topics-for-expert-android-app-developers.html. Więc powinieneś określić minSdkVersion i maxSdkVersion, a następnie kontrolować, co które aktywność na początek.

 -2
Author: jsaye,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-02 07:40:32