Czy istnieje różnica między poleceniami PhoneGap a Cordova?


286

Właśnie zainstalowałem Phonegap po raz pierwszy i po prostu przejrzałem dokumenty. To, co mnie dezorientuje, to fakt, że niektóre dokumenty używają polecenia „phonegap”, a niektóre „cordova”.

Przewodnik po platformie Android:

$ cordova create hello com.example.hello "HelloWorld"

Przewodnik po interfejsie wiersza poleceń mówi:

$ phonegap create hello com.example.hello HelloWorld

Czy istnieje różnica między tymi dwoma poleceniami (powodującymi różne pliki i struktury folderów), czy są to tylko aliasy dla tego samego?



Zapoznaj się z tym artykułem Devgeeks z 2014: TL; DR: Jeśli nie potrzebujesz korzystać z usługi budowania chmury w PhoneGap Build, po prostu skorzystaj z narzędzi CLI Cordova, a nie z PhoneGap.
Dheeraj Vepakomma

Nie ma różnicy w cmd, jeśli odwołujesz się do cytowanego argumentu. Jedynym powodem cytowania argumentu w wierszu cmd jest to, że zawiera spacje lub pewne znaki, które mają znaczenie dla języka terminala. Możesz także uciec od wspomnianych postaci (w tym spacji) za pomocą odwrotnego ukośnika.
ekerner

Odpowiedzi:


185

http://phonegap.com/blog/2012/03/19/phonegap-cordova-and-whate28099s-in-a-name/

Myślę, że ten adres URL wyjaśnia, czego potrzebujesz. Phonegap jest zbudowany na Apache Cordova i niczym innym. Możesz myśleć o Apache Cordova jako o silniku napędzającym PhoneGap. Z czasem dystrybucja PhoneGap może zawierać dodatkowe narzędzia i dlatego różnią się pod względem poleceń, ale robią to samo.

EDYCJA: Dodano dodatkowe informacje o różnicy w poleceniach i o tym, co może robić phonegap, podczas gdy Apache Cordova nie może lub odwrotnie

Pierwsza z linii poleceń PhoneGap

http://docs.phonegap.com/en/edge/guide_cli_index.md.html

Opcje Apache Cordova http://cordova.apache.org/docs/en/3.0.0/guide_cli_index.md.html#The%20Command-line%20Interface

  1. Ponieważ prawie większość poleceń jest podobnych. Jest kilka różnic (uwaga: brak różnicy w Codebase)

  2. Adobe może dodawać dodatkowe funkcje do PhoneGap, aby nie było w Cordova, np .: Zdalne budowanie aplikacji, w tym celu musisz mieć konto na https://build.phonegap.com

  3. Chociaż w lokalnych kompilacjach phonegap cli używa cordova cli (link do sprawdzenia: https://github.com/phonegap/phonegap-cli/blob/master/lib/phonegap/util/platform.js )

    Nazwy środowiska platformy. Mapowanie:

    „local” => cordova-cli

    „remote” => PhoneGap / Build

Również z następującego repozytorium: Moduły wymagające Cordova to:

build
create
install
local install
local plugin add , list , remove
run
mode
platform update
run

Które nie obejmują Cordova:

remote build
remote install
remote login,logout
remote run
serve

2
Dobrze wiedzieć, ale jest to pytanie o różnicę między poleceniami cli (jeśli istnieją).
Heksodus

@Hexodus Możesz myśleć o Apache Cordova jako o silniku napędzającym PhoneGap. Z czasem dystrybucja PhoneGap może zawierać dodatkowe narzędzia i dlatego różnią się pod względem poleceń, ale robią to samo.
Abhishek,

2
Thanx Abhishek - to odpowiedziało na moje pytanie. Pomyślałem, że może być coś więcej z komendami phonegap vs Cordova, które wciąż są mylące ...
Hexodus

6
Dlaczego więc doktor jest tak zagmatwany? Mogę przeczytać $ sudo npm install -g phonegap tutaj , gdzie pobieram przerwę telefoniczną, a następnie w powiązanej dokumentacji tutaj , w sekcji CLI, w której konfigurujesz nową aplikację, używają oni cordova w ten sposób: $ cordova create hello com.example.hello HelloWorldnie mogę znaleźć żadnego związku między kodem podanym w strona dl i te podane w dokumentach phonegap, które używają wyłącznie wiersza poleceń Cordova (przynajmniej dla sekcji CLI, w której należy zacząć)
Miles M.

1
Dokumenty są w pewnym stopniu mylące, jak podkreśla Miles. M. Poprosili cię o zainstalowanie phonegap za pomocą npm, ale w poniższych dokumentach prawie wszystkie polecenia używają cordova zamiast phonegap.
wmfairuz

78

Późna odpowiedź, ale myślę, że to może być przydatne.

Istnieją różnice między dwoma cli, phonegapto polecenie, które zawiera cordova. W createprzypadku, gdy jedyną różnicą jest nadpisana domyślna aplikacja

W niektórych innych przypadkach różnica jest znacznie bardziej znacząca. Na przykład phonegap buildjest wyposażony w funkcję kompilacji zdalnej, podczas gdy cordova buildobsługuje tylko kompilacje lokalne.

Dużym ograniczeniem, które znalazłem dla PhoneGap jest to, że AFAIK, możesz budować wersję APK tylko za pomocą usługi PhoneGap Build . Na Cordova możesz budować cordova build android --release.


1
Ale co z „budową lokalną phonegap”?
Andreas Kuckartz

1
Mimo to nie sądzę, że możesz zbudować apk wydania. phonegap local build androidi phonegap build androidsą tymi samymi poleceniami.
htulipe

2
Wydaje się, że jest to możliwe do przeprowadzenia lokalnego build dla APK wydaniu: chris-allen-lane.com/2012/12/...
donturner

7
Adobe® PhoneGap ™ Build to usługa internetowa, która kompiluje aplikacje PhoneGap zdalnie, udostępniając pakiety do pobrania w prostym interfejsie internetowym na build.phonegap.com. Jeśli korzystasz z PhoneGap Build, nie musisz instalować i utrzymywać lokalnych narzędzi SDK dla kilku platform mobilnych i możesz spodziewać się płynnej aktualizacji projektów. To powiedziawszy, jeśli chcesz zbudować swój własny pakiet APK lokalnie bez korzystania z kompilacji Adobe, postępuj zgodnie z przewodnikiem po platformie docelowej tutaj: docs.phonegap.com/en/edge/…
numediaweb

tak, martwiłem się, że będę musiał zapłacić za pomocą phonegappolecenia. Brzmi lepiej w użyciucordova
Connor Leech

23

Z tego, co przeczytałem (i popraw mnie, jeśli się mylę):

Phonegap twierdzi, że zaczęli to robić, ale nie mogli, więc przekazali je Apache Software Foundation.

Apache w swojej niesamowitości (Long live Apache) naprawił go, rozwinął i sprawił, że był niesamowicie niesamowity.

Teraz Phonegap próbuje zachować i ulepszyć kopię, którą zabrali, ale wciąż ją upycha.

Tak więc, moim zdaniem, chcę solidnej i godnej zaufania platformy deweloperskiej stworzonej przez doświadczonych profesjonalistów, której mogę zaufać, zamiast łatanej wersji podrzędnej. Dlatego mówię, że jestem programistą Cordova, NIE programistą Phonegap.

Iv przeczytał również, że podczas drugiej desperackiej próby zdobycia popularności i kontroli nad wspaniałymi dziełami Apache'a, Phonegap został sprzedany pod flagą Adobe. Znasz Adobe, to ludzie, którzy nic nie robią za darmo i są tak źli w utrzymywaniu cykli życia oprogramowania, że ​​ich aplikacje muszą przeprowadzać aktualizacje za każdym razem, gdy mrugasz, a z jakiegoś powodu każda z ich aplikacji jest około 100 razy większa niż Ty oczekiwałby.

To chyba podsumowanie moich badań, jeśli nie przeczytałem go źle.

A jeśli to prawda, pozwólmy wszystkim odrzucić cały ten nonsens z Phonegap i po prostu trzymać się Cordova.


2
Nie przejmuj się Adobe - wykonują naprawdę niesamowitą robotę, utrzymując swoje oprogramowanie. Pomyśl o Photoshopie - jest dostępny od 24 lat i wciąż jest najlepszy w tej dziedzinie. Phonegap to bardziej usługa budowania chmury niż cokolwiek innego. Kod wydaje się być prawie taki sam jak Cordova - w przeciwnym razie nie odbędą się tak szybko nowej wersji Cordova. Usługa w chmurze sprawia, że ​​proces kompilacji jest naprawdę łatwy. Dla mnie, jako użytkownika Creative Cloud, wszystko jest nieobliczalne.
Heksodus

2
:) DOBRZE. Jednak Adobe jest znany ze swoich rozdętych i nadmiernie zaktualizowanych aplikacji, do których programiści chwytali się przez większość z tych 24 lat, stąd strona: dearadobe.com Bardzo łatwo jest skompilować / zbudować aplikacje Cordova przy użyciu zaprojektowanych metod, aby: mnie jedyną rzeczą, którą dodaje chmura, jest koszt. Wiem jednak, że niektórzy programiści niechętnie uczą się interfejsów wiersza poleceń i dlatego rozumiem opłacalność, a zatem i istnienie chmury. Myślę, że młodzi i / lub zieleni gracze będą cieszyć się jego wygodą.
ekerner

1
Ci niechętni twórcy CLI mogą swobodnie oddychać, ponieważ Cordova jest teraz kompatybilna z aktualizacją VS 2013 Update 3 :) visualstudio.com/explore/cordova-vs
rism

2
Wow, to jest niezwykle interesujące. MS (koncentracja na platformie macierzystej) wydaje się wreszcie dołączać do reszty z nas. Uznanie dla nich za nie tylko zatrudnienie Cordova i uznanie Apache, ale także wsparcie dla platform innych niż MS iOS i Android. Jestem tym całkowicie zaskoczony. Być może będę musiał przestać ich bojkotować, jeśli utrzymają taką postawę.
ekerner

13

Oto różnice, które odkryłem:

Porównuję interfejs CLI phonegap 3.3.0-0.18.0 z funkcjonalnością opisaną w dokumentacji Cordova 3.3.0 dla tego CLI.

  1. „ls” jest opcją dla „wtyczki Cordova”, ale nie dla „wtyczki phonegap”. Zamiast tego musisz użyć „listy”. np .: „lista wtyczek phonegap”

  2. „Podaj” nie jest udokumentowane w „phonegap -help”, ale istnieje i działa. Nie znajdzie i nie załaduje pliku phonegap.js, więc strony nigdy nie zostaną w pełni załadowane, ale nadal zapewniają pewną wartość. Nie jestem pewien, czy jest to inne niż zachowanie Cordova.

  3. „Dodanie platformy telefonu” nie działa w telefonie. Musisz wykonać „kompilację telefonu”, aby dodać obsługę platformy.

Zwróć uwagę, że na telefonie mogą pojawić się mylące komunikaty o błędach, w których sugerowane rozwiązanie odnosi się do użycia polecenia cordova.


6

Zauważyłem również, że Cordova ma polecenie „serwowania”, którego nie ma Phonegap. To polecenie uruchamia lokalny serwer na porcie 8000. Jest to przydatne do uruchamiania aplikacji w Chrome i korzystania z emulatora Ripple.


2
Warto zauważyć, że rozszerzenie chromowanego emulatora Ripple jest zepsute i jest teraz narzędziem wiersza poleceń Node.js w ramach Apache Incubator. npm install -g ripple-emulator, a następnie z wnętrza projektu reż:ripple emulate --path platforms/android/assets/www
razorbeard,

Czy potrafisz wyjaśnić „zepsuty” @Synaptix? Wydaje mi się, że to działa.
zkent


Dziękuję za to. Najwyraźniej Ripple ma więcej niż myślałem.
zkent

Phonegap ma graficzny interfejs użytkownika, który pozwala ci robić to „serwuj”. Pobierając aplikację Phonegap na Androida lub iOS, możesz także szybko przetestować aplikację bezpośrednio na urządzeniu, bez uruchamiania emulatora o długim czasie uruchamiania. Aplikacja Mobile Phonegap łączy się za pośrednictwem Wi-Fi z lokalnym serwerem na porcie 3000 i wyświetla Twoją aplikację na urządzeniu, zapewniając Ci widok i wydajność.
Astrowie

5

oba są identyczne, z tym wyjątkiem, że phonegap cli może pomóc w zbudowaniu aplikacji na PhoneGap Build. Moja propozycja to użycie interfejsu Cordova CLI, jeśli nie korzystasz z usługi kompilacji PhoneGap.


4

Ten pierwszy wybór może być mylący, ale jest naprawdę bardzo prosty. PhoneGap jest produktem firmy Adobe, który obecnie obejmuje dodatkowe usługi kompilacji, i może ostatecznie oferować dodatkowe usługi i / lub pobierać opłaty za korzystanie w przyszłości. Cordova jest własnością i jest zarządzana przez Apache i zawsze będzie utrzymywana jako projekt typu open source. Obecnie oba mają bardzo podobny interfejs API. Polecam skorzystanie z Cordova, chyba że potrzebujesz dodatkowych usług kompilacji PhoneGap.


1

Powyżej Abhishek wspomina o różnicach w linii poleceń określonych w dwóch adresach URL:

  1. PhoneGap: http://docs.phonegap.com/en/edge/guide_cli_index.md.html

  2. Cordova: http://cordova.apache.org/docs/en/3.0.0/guide_cli_index.md.html#The%20Command-line%20Interface

Jedną z rzeczy, na które należy zwrócić uwagę, jest to, że od tego wpisu telefon jest prawie taki sam jak Cordova i prawdopodobnie nie jest dokładnym obrazem różnic opcji linii poleceń. W związku z tym zainstalowałem oba w moim systemie, aby móc zobaczyć różnice.

To tylko kilka z nich. Mam nadzieję, że kiedyś zostaną zsynchronizowane. Jeśli ktoś ma lepsze informacje, proszę mi powiedzieć.

  1. Wydaje się, że dodawanie platform odbywa się inaczej w przypadku obu poleceń (phonegap używa polecenia „zainstaluj”, Cordova używa polecenia „dodaj platformę”)
  2. Dodawanie / tworzenie projektów wydaje się takie samo między dwoma poleceniami (obsługiwane są te same opcje wiersza poleceń)
  3. Oczywiście, jak już wspomniano, phonegap może używać kompilacji PhoneGap, więc ma odpowiednie opcje wyzwalania tej lub lokalnych kompilacji
  4. Sporo innych istotnych różnic w linii poleceń, po prostu uruchamiając „cordova help” i „phonegap help” i porównując oba.

Wydaje mi się, że mam na myśli to, że często wspominana dokumentacja CLI telefonu nie jest tak naprawdę dla CLI telefonu, ale dla Cordova CLI. Poinformuj mnie, jeśli coś mi umknie. Dzięki.


1

Znalazłem tę różnicę, która zmusiła mnie do korzystania z mieszanego zestawu poleceń telefonu i cordova cli podczas tworzenia mojej aplikacji:

„dodatek plug-in phonegap” nie mógł poprawnie obsługiwać parametrów wiersza poleceń, podczas gdy „cordova platform add” działa bezbłędnie

Polecenie, którego używam to:

'cordova plugin add https://github.com/crittercism/PhoneGap.git --variable IOS_APP_ID="[my_license_key]"

Uwaga Używam phonegap 3.5


0

Teraz telefon jest własnością Adobe. Tylko rozmowa z imieniem była inna. Aby zainstalować funkcjonalność wtyczki, powinniśmy użyć tego samego polecenia także dla phonegap i cordova.

Polecenie: wtyczka cordova dodaj cordova-plugin-photo-library

Tutaj,

  • cordova - słowo kluczowe dla inicjatora
  • plugin - zainicjuj plugin
  • biblioteka zdjęć wtyczek Cordova - nazwa wtyczki.

Możesz również znaleźć więcej wtyczek na https://cordova.apache.org/docs/en/latest/

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.