Có sự khác biệt giữa các lệnh PhoneGap và Cordova không?


286

Tôi mới cài đặt Phonegap lần đầu tiên và chỉ duyệt qua các tài liệu. Điều khiến tôi bối rối là một số tài liệu đang sử dụng lệnh "phonegap" và một số "cordova".

Hướng dẫn nền tảng Android:

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

Hướng dẫn giao diện dòng lệnh cho biết:

$ phonegap create hello com.example.hello HelloWorld

Có sự khác biệt giữa hai lệnh đó (dẫn đến các tệp và cấu trúc thư mục khác nhau) hay chúng chỉ là bí danh cho cùng một thứ?



Tham khảo mẫu bài viết Devgeek 2014 này: TL; DR: Nếu bạn không cần sử dụng dịch vụ xây dựng đám mây tại PhoneGap Build, chỉ cần sử dụng các công cụ Cordova CLI, không phải các công cụ PhoneGap.
Dheeraj Vepakomma

Không có sự khác biệt trong cmd nếu bạn tham khảo đối số được trích dẫn. Lý do duy nhất để trích dẫn một đối số trên dòng cmd là nếu nó chứa khoảng trắng hoặc các ký tự nhất định có ý nghĩa với ngôn ngữ đầu cuối. Bạn cũng có thể thoát các ký tự đã nói (bao gồm khoảng trắng) bằng dấu gạch chéo ngược.
ekerner

bất kỳ ai giúp tôi ở đây stackoverflow.com/questions/52873787/ từ
Ali Khan

Câu trả lời:


185

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

Tôi nghĩ rằng url này giải thích những gì bạn cần. Phonegap được xây dựng trên Apache Cordova không có gì khác. Bạn có thể nghĩ về Apache Cordova là công cụ hỗ trợ PhoneGap. Theo thời gian, bản phân phối PhoneGap có thể chứa các công cụ bổ sung và đó là lý do tại sao chúng khác nhau về lệnh Nhưng chúng làm điều tương tự.

EDIT: Thông tin bổ sung được thêm vào như là về sự khác biệt của lệnh và những gì phonegap có thể làm trong khi apache cordova không thể hoặc ngược lại

Tùy chọn dòng lệnh đầu tiên của PhoneGap

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

Tùy chọn Cordova của Apache http://cordova.apache.org/docs/en/3.0.0/guide_cli_index.md.html#The%20Command-line%20Interface

  1. Vì hầu hết các lệnh đều tương tự nhau. Có một vài sự khác biệt (Lưu ý: Không có sự khác biệt về Codebase)

  2. Adobe có thể thêm các tính năng bổ sung vào PhoneGap để không có trong Cordova, vd: Xây dựng các ứng dụng từ xa mà bạn cần phải có tài khoản trên https://build.phoneg.com

  3. Mặc dù đối với các bản dựng cục bộ, phonegap cli sử dụng cordova cli (Liên kết để kiểm tra: https://github.com/phonegap/phonegap-cli/blob/master/lib/phonegap/util/pl platform.js )

    Tên môi trường nền tảng. Ánh xạ:

    'cục bộ' => cordova-cli

    'từ xa' => PhoneGap / Build

Cũng từ kho lưu trữ sau: Các mô-đun yêu cầu cordova là:

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

Mà không bao gồm cordova:

remote build
remote install
remote login,logout
remote run
serve

2
Điều tốt để biết nhưng đây là câu hỏi về sự khác biệt giữa các lệnh cli (nếu có).
Hexodus

@Hexodus Bạn có thể nghĩ Apache Cordova là công cụ hỗ trợ PhoneGap. Theo thời gian, bản phân phối PhoneGap có thể chứa các công cụ bổ sung và đó là lý do tại sao chúng khác nhau về lệnh Nhưng chúng làm điều tương tự.
Abhishek

2
Thanx Abhishek - điều này đã trả lời câu hỏi của tôi. Tôi nghĩ rằng có thể có một cái gì đó nhiều hơn với các lệnh phonegap vs cordova vẫn còn khó hiểu ...
Hexodus

6
Vậy tại sao tài liệu lại khó hiểu về nó? Tôi có thể đọc $ sudo npm install -g phonegap ở đây , nơi tôi tải xuống khoảng cách điện thoại, và sau đó trong tài liệu được liên kết ở đây , trong phần CLI nơi bạn thiết lập ứng dụng mới, họ đang sử dụng cordova như vậy: $ cordova create hello com.example.hello HelloWorldTôi không thể tìm thấy bất kỳ mối quan hệ nào giữa mã được đưa vào trang dl và những trang được cung cấp trong tài liệu của phonegap chỉ sử dụng dòng lệnh cordova (ít nhất là cho phần CLI nơi bạn phải bắt đầu)
Miles M.

1
Các tài liệu thực sự khó hiểu đối với một số phần mở rộng như được đánh dấu bởi Miles. M. Họ yêu cầu bạn cài đặt phonegap bằng npm, nhưng trong các tài liệu sau, gần như tất cả các lệnh đều sử dụng cordova thay vì phonegap.
wmfairuz

78

Trả lời muộn nhưng tôi nghĩ rằng điều này có thể hữu ích.

Có sự khác biệt giữa hai cli, phonegaplà một lệnh gói gọn cordova. Trong createtrường hợp, sự khác biệt duy nhất là một ứng dụng mặc định được ghi đè

Trong một số trường hợp khác, sự khác biệt có ý nghĩa hơn nhiều. Chẳng hạn, phonegap buildđi kèm với chức năng xây dựng từ xa trong khi cordova buildchỉ hỗ trợ các bản dựng cục bộ.

Một hạn chế lớn mà tôi thấy đối với PhoneGap là, AFAIK, bạn chỉ có thể tạo APK phát hành bằng dịch vụ PhoneGap Build . Trên Cordova bạn có thể xây dựng với cordova build android --release.


1
Nhưng những gì về "phonegap local build"?
Andreas Kuckartz

1
Ngay cả với điều đó tôi không nghĩ rằng bạn có thể xây dựng một apk phát hành. phonegap local build androidphonegap build androidlà các lệnh tương tự.
htulipe

2
Dường như nó có thể thực hiện một xây dựng địa phương cho một APK phát hành: chris-allen-lane.com/2012/12/...
donturner

7
Adobe® PhoneGap ™ Build là một dịch vụ web biên dịch các ứng dụng PhoneGap cho bạn từ xa, giúp các gói có thể tải xuống có sẵn trong giao diện web đơn giản tại build.phoneg.com. Nếu bạn sử dụng PhoneGap Build, bạn không cần phải cài đặt và bảo trì các công cụ SDK cục bộ cho một số nền tảng di động và có thể mong đợi cập nhật các dự án một cách suôn sẻ. Điều đó nói rằng, nếu bạn muốn xây dựng APK của riêng mình mà không cần sử dụng bản dựng của Adobe, thì hãy làm theo hướng dẫn nền tảng mục tiêu của bạn tại đây: docs.phonegap.com/en/edge/ trộm
numediaweb

vâng tôi đã lo lắng tôi phải trả tiền bằng cách sử dụng phonegaplệnh. Nghe có vẻ tốt hơn để sử dụngcordova
Connor Leech

23

Từ những gì tôi đã đọc (và vui lòng sửa cho tôi nếu tôi sai):

Phonegap tuyên bố rằng họ đã bắt đầu cố gắng thực hiện điều này nhưng không thể, vì vậy họ đã chuyển nó cho Quỹ phần mềm Apache.

Apache trong sự tuyệt vời của họ (Apache sống lâu) đã sửa chữa nó, phát triển nó và làm cho nó cực kỳ tuyệt vời.

Bây giờ Phonegap đang cố gắng duy trì và nâng cao một bản sao mà họ đã lấy lại, nhưng tiếp tục nhét nó vào.

Vì vậy, theo suy nghĩ của tôi, tôi muốn một nền tảng dev vững chắc và đáng tin cậy được thực hiện bởi các chuyên gia dày dạn mà tôi có thể tin tưởng, thay vì một bản vá trên phiên bản phụ của nói. Do đó Id nói tôi là nhà phát triển Cordova KHÔNG phải là nhà phát triển Phonegap.

Iv cũng đọc rằng trong một nỗ lực tuyệt vọng thứ hai để có được sự phổ biến và kiểm soát các tác phẩm tuyệt vời của Apache, Phonegap hiện đã được bán dưới cờ Adobe. Bạn biết Adobe, họ là những người không làm gì miễn phí và rất tệ trong việc duy trì vòng đời phần mềm đến nỗi các ứng dụng của họ cần thực hiện cập nhật mỗi khi bạn chớp mắt và vì một số lý do, mỗi ứng dụng của họ có kích thước gấp 100 lần bạn mong chờ.

Tôi đoán đó là tóm tắt về nghiên cứu của tôi nếu tôi không đọc nhầm.

Và nếu đúng, thì hãy để tất cả bỏ qua toàn bộ Phonegap vô nghĩa này và chỉ cần gắn bó với Cordova.


2
Đừng làm khó Adobe - họ làm một công việc thực sự tuyệt vời trong việc duy trì phần mềm của họ. Hãy suy nghĩ về Photoshop - nó đã tồn tại từ 24 năm nay và vẫn là tốt nhất trong lĩnh vực này. Phonegap là dịch vụ xây dựng đám mây hơn bất cứ thứ gì khác. Mã dường như khá giống với Cordova - nếu không thì họ không chấp nhận phiên bản cordova mới quá nhanh. Dịch vụ đám mây làm cho quá trình xây dựng thực sự dễ dàng. Đối với tôi là người dùng Creative Cloud, tất cả đều là sự bốc đồng.
Hexodus

2
:) ĐỒNG Ý. Tuy nhiên, Adobe nổi tiếng với các ứng dụng cồng kềnh và được cập nhật quá mức, mà các nhà phát triển đã nắm bắt chúng trong hầu hết 24 năm đó, do đó trang web: dearadobe.com Rất dễ dàng biên dịch / xây dựng các ứng dụng Cordova bằng các phương pháp được thiết kế, vì vậy Đối với tôi, điều duy nhất mà đám mây thêm vào là chi phí. Tuy nhiên tôi biết làm thế nào một số nhà phát triển không muốn học giao diện dòng lệnh và vì vậy tôi có thể hiểu được lợi nhuận và do đó sự tồn tại của đám mây. Tôi đoán những người chơi trẻ và / hoặc xanh sẽ thích sự tiện lợi của nó.
ekerner

1
Những nhà phát triển bất đắc dĩ CLI có thể thở dễ dàng sau đó là Cordova tại là VS 2013 Cập nhật 3 tương thích :) visualstudio.com/explore/cordova-vs
rism

2
Wow rism đó là vô cùng thú vị. MS (trọng tâm cụ thể của nền tảng mẹ) cuối cùng dường như sẽ tham gia cùng với chúng tôi. Kudos cho họ không chỉ sử dụng Cordova và ghi có Apache, mà còn hỗ trợ các nền tảng MS không phải iOS và Android. Tôi hoàn toàn sửng sốt vì điều này. Tôi có thể phải ngừng tẩy chay họ nếu họ giữ thái độ này.
ekerner

13

Dưới đây là những khác biệt mà tôi đã khám phá:

Tôi đang so sánh phonegap 3.3.0-0.18.0 CLI với chức năng được mô tả trong tài liệu cordova 3.3.0 cho CLI đó.

  1. "ls" là một tùy chọn cho "plugin cordova" nhưng không phải cho "plugin phonegap". Bạn phải sử dụng "danh sách" thay thế. ví dụ: "danh sách plugin phonegap"

  2. "Phục vụ" không được ghi lại trong "phonegap -help" nhưng nó tồn tại và nó hoạt động. Nó sẽ không tìm và tải phonegap.js để các trang không bao giờ tải đầy đủ nhưng nó vẫn cung cấp một số giá trị. Tôi không chắc chắn nếu điều này khác với cordova hành vi.

  3. "Thêm nền tảng phonegap" không hoạt động trong phonegap. Bạn phải thực hiện "xây dựng phonegap" để thêm hỗ trợ cho nền tảng.

Lưu ý rằng bạn cũng có thể gặp một số thông báo lỗi khó hiểu trong phonegap trong đó giải pháp được đề xuất đề cập đến việc sử dụng lệnh cordova.


6

Tôi cũng đã nhận thấy rằng cordova có lệnh "phục vụ" mà Phonegap không có. Lệnh này khởi chạy một máy chủ cục bộ trên cổng 8000. Điều này rất thuận tiện để chạy ứng dụng của bạn trong Chrome và sử dụng trình giả lập Ripple.


2
Điều đáng chú ý là phần mở rộng chrome của trình giả lập Ripple đã bị hỏng và hiện là công cụ dòng lệnh Node.js trong Vườn ươm Apache. npm install -g ripple-emulator, sau đó từ trong thư mục dự án của bạn:ripple emulate --path platforms/android/assets/www
razorbeard

Bạn có thể giải thích khi "hỏng", @Synaptix không? Nó dường như đang làm việc cho tôi.
zbest


Cảm ơn vì điều đó. Rõ ràng có nhiều thứ cho Ripple hơn tôi nghĩ.
zbest

Phonegap có GUI máy tính để bàn cho phép bạn thực hiện "phục vụ" đó. Bằng cách tải xuống ứng dụng Phonegap cho Android hoặc iOS, bạn cũng có thể trực tiếp kiểm tra ứng dụng trên thiết bị mà không cần chạy trình giả lập khởi động dài. Ứng dụng Mobile Phonegap kết nối qua wifi với máy chủ cục bộ của bạn trên cổng 3000 và hiển thị ứng dụng của bạn trên thiết bị, mang lại cho bạn cảm giác xem và hiệu suất.
Astrowie

5

cả hai đều giống hệt nhau, ngoại trừ việc phonegap cli có thể giúp bạn xây dựng ứng dụng của mình trên PhoneGap Build. Đề xuất của tôi là sử dụng cordova CLI nếu bạn không sử dụng dịch vụ xây dựng PhoneGap.


4

Lựa chọn đầu tiên này có thể là một điều khó hiểu nhưng nó thực sự rất đơn giản. PhoneGap là sản phẩm thuộc sở hữu của Adobe, hiện bao gồm các dịch vụ xây dựng bổ sung và cuối cùng có thể hoặc không cung cấp các dịch vụ bổ sung và / hoặc thanh toán phí để sử dụng trong tương lai. Cordova được sở hữu và bảo trì bởi Apache và sẽ luôn được duy trì như một dự án nguồn mở. Hiện tại cả hai đều có một API rất giống nhau. Tôi khuyên bạn nên đi với Cordova, trừ khi bạn yêu cầu các dịch vụ xây dựng PhoneGap bổ sung.


1

Ở trên, Abhishek đề cập đến sự khác biệt của dòng lệnh được chỉ định trong hai URL:

  1. Điện thoại: 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

Một điều cần chỉ ra là, kể từ bài đăng này, điện thoại di động trông gần giống với cordova, và có lẽ không phải là hình ảnh chính xác về sự khác biệt của tùy chọn dòng lệnh. Như vậy, tôi đã cài đặt cả hai trên hệ thống của mình để tôi có thể xem xét sự khác biệt.

Đây chỉ là một ít trong số đó. Hy vọng rằng đôi khi chúng được mang lại nhiều hơn. Nếu ai có thông tin tốt hơn, xin vui lòng cho tôi biết.

  1. Việc thêm các nền tảng dường như được thực hiện khác nhau giữa hai lệnh (phonegap sử dụng lệnh "install", cordova sử dụng lệnh "platform add")
  2. Thêm / tạo dự án dường như giống nhau giữa hai lệnh (hỗ trợ tùy chọn dòng lệnh giống nhau)
  3. Rõ ràng, như đã nói, phonegap có thể sử dụng PhoneGap Build, do đó, nó có các tùy chọn tương ứng để kích hoạt bản dựng đó hoặc bản dựng cục bộ
  4. Khá nhiều sự khác biệt đáng kể về dòng lệnh, chỉ đơn giản bằng cách chạy "trợ giúp cordova" và "trợ giúp phonegap" và so sánh hai.

Tôi đoán quan điểm của tôi là tài liệu CLI phonegap được đề cập khá thường xuyên không thực sự dành cho CLI phonegap, nhưng đối với CLI cordova, tại thời điểm này. Xin vui lòng cho tôi biết nếu tôi đang thiếu một cái gì đó. Cảm ơn.


1

Tôi đã tìm thấy sự khác biệt này khiến tôi phải sử dụng một túi hỗn hợp các lệnh phonegap và cordova cli khi xây dựng ứng dụng của mình:

'plugin bổ sung phonegap' không thể xử lý chính xác các tham số dòng lệnh, trong khi 'nền tảng cordova thêm' hoạt động hoàn hảo

Lệnh tôi sử dụng là:

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

Lưu ý tôi đang sử dụng phonegap 3.5


0

Bây giờ, một ngày phonegap và cordova thuộc sở hữu của Adobe. Chỉ có cuộc trò chuyện tên là khác nhau. Để cài đặt chức năng plugin, chúng ta cũng nên sử dụng lệnh tương tự cho phonegap và cordova.

Lệnh: plugin cordova thêm cordova-plugin-photo-library

Đây,

  • cordova - từ khóa cho người khởi xướng
  • plugin - khởi tạo một plugin
  • thư viện ảnh plugin cordova - tên plugin.

Bạn cũng có thể tìm thấy nhiều plugin hơn từ https://cordova.apache.org/docs/en/latest/

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.