Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Hacking Gaia

Αυτή η σελίδα απευθύνεται σε Gaia developers. Αν όμως αναζητάτε πληροφορίες σχετικά με το πώς να δημιουργήσετε μια έκδοση (build) και να εκτελέσετε το Firefox OS, θα πρέπει να συμβουλευθείτε το Building and installing Firefox OS page.

Gaia λέγεται η συλλογή εφαρμογών ιστού (web apps) που αποτελεί το ορατό μέρος του Firefox OS. Ο,τιδήποτε βλέπετε στην οθόνη στο Firefox OS είναι υλοποιημένο με την χρήση ανοικτών τεχνολογιών Ιστού (Open Web technologies), συμπεριλαμβανομένων και την αρχικής οθόνης (home screen) και όλων των προεγκατεστημένων εφαρμογών.

Πως να λάβετε τον πηγαίο κώδικα

Για να λάβετε τον πηγαίο κώδικα του Gaia, μπορείτε να δημιουργήσετε μια διακλάδωση (fork) στο GitHub και στη συνέχεια να κλωνοποιησετε (clone) τη νεα σας διακλαδωση χρησιμοποιωντας το git.

$ git clone https://github.com/mozilla-b2g/gaia.git

Εκτέλεση του Gaia

Μπορείτε να εκτελέσετε το Gaia τόσο στο desktop, μέσω του Firefox, όσο και μέσω μιας συμβατής φορητής συσκευής.

B2G desktop

Το B2G desktop είναι μία εκδοχή (build) για το desktop του περιβάλλοντος εκτέλεσης (runtime) εφαρμογών το οποίο χρησιμοποιείται σε συσκευές Firefox OS και μπορεί να χρησιμοποιηθεί για εκτέλεση του Gaia στον υπολογιστή σας.

Μπορείτε να κατεβάσετε (download) μια πειραματική εκδοχή (nightly build) του B2G desktop από εδώ. Ανάλογα με την έκδοση στην οποία στοχεύετε, ίσως να χρειάζεστε μια συγκεκριμένη έκδοση του latest-mozilla-b2g18. Υπάρχουν εκδοχές για Linux (32 bit καί 64 bit), Mac OS X καί Windows.

Οι πειραματικές εκδοχές συμπεριλαμβάνουν μία πρόσφατη έκδοση του gaia. Μετά τη λήψη του αρχείου, το μόνο που χρειάζεται να κάνετε είναι να το αποσυμπιέσετε σε ένα φάκελο και να τρέξετε το εκτελέσιμο b2g μέσα από τον αποσυμπιεσμένο φάκελο.

$ cd b2g
$ ./b2g

Για να τρέξετε το B2G με μια δική σας έκδοση του Gaia για σκοπούς ανάπτυξης, πρέπει πρώτα να εκδόσετε (build) ένα προφίλ (profile) από το δικό σας αρχείο:

$ cd /path/to/gaia
$ DEBUG=1 DESKTOP=0 make

Αυτό θα δημιουργήσει (generate) ένα υποφάκελο στο φάκελο gaia με όνομα profile. Το μέρος DEBUG εκτελεί το Gaia σαν μια φιλοξενούμενη (hosted) εφαρμογή μέσω ενός ενσωματωμένου (built-in) web server, σε αντίθεση με την προεπιλεγμένη μορφή των "πακεταρισμένων" εφαρμογών που χρειάζονται πακετάρισμα μετά από κάθε αλλαγή. Μπορείτε να βρείτε τη διαδρομή πρός το φάκελο του προφίλ (profile directory) κοιτάζοντας την τελευταία γραμμή της εξόδου (output) μετά την εκτέλεση της πιό πάνω εντολής, θα πρέπει να μοιάζει κάπως έτσι:

Profile Ready: please run [b2g|firefox] -profile /path/to/gaia/profile

Θα μπορούσατε να τρέξετε την έκδοση Desktop του B2G με το νέο σας προφίλ με την ακόλουθη εντολή:

$ ./b2g /path/to/gaia/profile

Μπορείτε να εκδόσετε (build) το δικό σας desktop B2G από τον πηγαίο κώδικα αν το επιθυμείτε.

Χρήση του Gaia στο Firefox

Το Gaia μπορεί επίσης να τρέξει μέσα από το Firefox. Αυτό έχει το πλεονέκτημα ότι κάνει τον κύκλο ανάπτυξης γρήγορο και επιπλέον παρέχει τυποποιημένα εργαλεία ανάπτυξης Ιστού (web development tools) και απαλοιφής σφαλμάτων (debuggers). Δείτε πως να το κάνετε αυτό και για περισσότερες λεπτομέρειες, στο Χρήση του Gaia στο Firefox .

Χρήση του Gaia σε μια συσκευή

Αν διαθέτετε μια συμβατή κινητή συσκευή μπορείτε επίσης να εκτελέσετε το Gaia εγκαθιστώντας σε αυτή το Firefox OS. Δείτε το Προετοιμασία έκδοσης και εγκατάσταση του Firefox OS για περισσότερες λεπτομέρειες και οδηγίες για να το πετύχετε αυτό. Επιπλέον, έχουμε τεκμηρίωση (documentation) για το πως να δοκιμάσετε το Firefox OS.

Δοκιμές μονάδων (Unit tests)

Δείτε το  Δοκιμές μονάδων του Gaia για τεκμηρίωση σχετικά με τη δημιουργία και την εκτέλεση δοκιμών μονάδων του Gaia.

Υποβολή αναφορών προβλημάτων (bugs)

Οι αναφορές για προβλήματα (bugs)υποβάλλονταιστο Bugzilla στη θέση Boot2Gecko > Gaia. Υποβάλλετε μια νέα αναφορά προβλήματος στη θέση του Gaia component (ή ενός από τα sub-components).

Συνεισφορά στο Gaia

Το Mozilla βασίζεται σε συνεισφορές που προέρχονται από την κοινότητα open source για βοήθεια στην ανάπτυξη εφαρμογών Gaia και θα μας άρεσε πολύ να δούμε και τη δική σας συμμετοχή.

Κάποιες πολύ καλές πηγές για να βρείτε προβλήματα (bugs) πάνω στα οποία θα μπορούσατε να αρχίσετε το hacking:

Βασικά στοιχεία συγγραφής κώδικα (coding style)

  • Υπόβαθρο:
  • Σιγουρευθείτε ότι τα αρχεία HTML ξεκινούν με τη δήλωση <!DOCTYPE html> (δηλαδή ως έγγραφα HTML5). Σε περίπτωση που δεν υπάρχει αυτή η δήλωση, ο Internet Explorer 9 και οι πιό πρόσφατες εκδόσεις του, θα τα φορτώνουν σε κατάσταση υψηλής συμβατότητας (compatibility mode).
  • Συμπεριλάβετε τη δήλωση "use strict"; (ακριβώς όπως εμφανίζεται, συμπεριλαμβανομένων και των εισαγωγικών) στην αρχή των αρχείων JavaScript ώστε να βάλετε τον κώδικά σας σε αυστηρή κατάσταση λειτουργίας (strict mode).
  • Χρησιμοποιήστε δύο κενά για να δημιουργήσετε εσοχές στον κώδικα, αντί για tabs.
  • Είναι πολύ σημαντικό να χρησιμοποιείτε line breaks για να διαχωρίσετε τις λογικές ενότητες του κώδικα!
  • Χρησιμοποιήστε το χαρακτήρα "underscore" ως διαχωριστικό όπου υπάρχουν πολλαπλές λέξεις σε ονόματα των αρχείων, kapws_etsi.js.
  • Χρησιμοποιήστε single quotes (') αντί για double quotes (") για αλφαριθμητικά (strings).

Επιπρόσθετοι κανόνες

Λάθος:

if (expression) doSomething();

Σωστό:

if (expression) {
  doSomething();
}

Αν εργάζεστε στην εφαρμογή συστήματος (the system app), συμβουλευθείτε τις οδηγίες που παρέχονται εδώ.

Πρίν την υποβολή ενός patch συστήνουμε να εφαρμόσετε το gjslint επάνω του για να ελέγξετε για τυχόν λάθη στη μορφή του:

gjslint --nojsdoc my_file.js

Υποβολή ενός patch

Για αρχή, υποβάλλετε ή αναθέστε μια αναφορά προβλήματος (bug) στον εαυτό σας στο Bugzilla, θα χρειαστείτε ένα λογαριασμό Bugzilla.

Στη συνέχεια δημιουργήστε μία διακλάδωση (ένα νέο τμήμα) στο δικό σας fork του Gaia:

$ git branch branchname
$ git checkout branchname

Οριστικοποιήστε (commit) τις αλλαγές σας:

$ git add /file/to/add
$ git commit -m "Bug XXXXX - Fix the broken Gaia and save the world"

Προωθήστε (push) το τμήμα σας (branch):

$ git push origin branchname

Υποβάλλετε ένα αίτημα pull πηγαίνοντας στο τμήμα μέσα στο δικό σας fork στο GitHub και εντοπίζοντας το πλήκτρο pull request.

Για να ζητήσετε τον έλεγχο του νέου σας patch, επισυνάπτετε το αίτημα (pull request) στην αναφορά προβλήματος στο Bugzilla παραθέτοντας το URL του αιτήματος pull, και ορίζοντας την ένδειξη έλέγχος (review -"r"- flag) σε "?" και δίνοντας το bugzilla ID ενός από τους  κατόχους τμήματος (module) και συνεργαζόμενους (κάτι πολύ σημαντικό - διαφορετικά πιθανότατα δεν θα δεί κανένας την αναφορά προβλήματος που θα έχετε υποβάλλει). Το Github tweaks for bugzilla extension on AMO μπορεί να βοηθήσει στον αυτοματισμό αυτής της διαδικασίας, επισυνάπτοντας αυτόματα τις πληροφορίες στην αναφορά προβλήματος. Θα πρέπει όμως εσείς να ορίσετε τηνένδειξη (flag) review στο Bugzilla.

Το πρόσωπο που θα κάνει τον έλεγχο ενδέχεται να σας ζητήσει να κάνετε κάποιες αλλαγές -ίσως χρειαστεί να  προσθέσετε το αρχικό commit και να επιβάλλετε την προώθηση (force push) του στον αρχικό κλάδο/αίτημα pull (branch/pull request). Απότη στιγμή που θα γίνει αποδεκτό το τμήμα του κώδικά σας (patch), θα το συγχωνέυσουν (merge) στον κύριο κλάδο (master branch) για εσάς. Θα προτιμούσαν, πρίντοκάνουν αυτό να έχετε συμπτύξει τις αλλαγές σας σε ένα μοναδικό commit, ώστε να μπορεί εύκολα να παρακολουθήσει κανείς τις συνεισφορές σας.

Το πρόσωπο που θα συγχωνέυσει το commit (συνήθως αυτός που έκανετονέλεγχο) θα εισαγάγει ένα r= flag στα σχόλια του commitτης συγχώνευσης.

Επιλογές Make

Υπάρχουν πολλές μή τεκμηριωμένες και μή υποστηριζόμενες μεταβλητές περιβάλλοντος στο Makefile. Μην βασίζεστε σε αυτές καθώς μπορεί να αφαιρεθούν στο μέλλον.

Προεπιλογή

make

Δημιουργήστε ένα προφίλ για πακεταρισμένες εφαρμογές, με δυνατότητα εκκίνησης από το Desktop του B2G και οι οποίες μπορούν να προωθηθούν σε συσκευή.

Debug make

DEBUG=1 make

Το μέρος DEBUG εκτελεί το Gaia ως φιλοξενούμενη εφαρμογή σε ένα ενσωματωμένο web server, σε αντίθεση με τις κατά προεπιλογή πακεταρισμένες εφαρμογές οι οποίες πρέπει να επαναπακεταριστούν μετά από κάθε αλλαγή. Εκκινήστε το προφίλ με την πιό πρόσφατη Firefox Nightly η οποία θα σας δώσει χρήσιμα panels, ειδικά για το B2G στα Firefox Developer Tools.

Προώθηση σε συσκευή

make install-gaia

make reset-gaia

Με το setup adb (Android Debug Bridge), οι παραπάνω εντολές θα προωθήσουν το Gaia στη συσκευή. Η reset-gaia θα εκκαθαρίσει το προφίλ και όλες τις άλλες webapps πριν προωθήσει το νέο αντίγραφο του Gaia.

Επιλεκτική εκδοχή (build)

APP=system make

APP=system make install-gaia

Με ένα ήδη υπάρχον προφίλ, το APP επιτρέπει την επιλογή της εφαρμογής που θα επαναπακεταριστεί, αντί να επαναπακεταριστούν και επαναπροωθηθούν όλες οι εφαρμογές Gaia.

Εικόνες υψηλής ανάλυσης

GAIA_DEV_PIXELS_PER_PX=1.5 make

Κατά το πακετάρισμα της εφαρμογής, να αντικατασταθούν  οι εικόνες με τις αντίστοιχες *@1.5x.(gif|jpg|png) αν αυτές υπάρχουν.

Το Gaia αυτή την στιγμήστοχεύει μόνο στις μορφές HBGA (320x240), qHD (540×960) και WVGA (480×800), χρησιμοποιήστε το GAIA_DEV_PIXELS_PER_PX για να σιγουρευθείτε ότι οι εικόνες εμφανίζονται σωστά σε συσκευές qHD και WVGA. Δείτε το A pixel is not a pixel για περισσότερες πληροφορίες σχετικά με τη διαφορά ανάμεσα σε pixels css και αυτά των φυσικών συσκευών.

Συμπίεση και βελτιστοποίηση Script

GAIA_OPTIMIZE=1 make

Συμπιέστε και βελτιστοποιήστε τον κώδικα javascript των προεγκατεστημένων εφαρμογών για να βελτιώσετε χρόνο εκκίνησης.

Συντομεύσεις προτιμήσεων

NOFTU=1

Απενεργοποίηση της εμφάνισης του οδηγού για νέους χρήστεςκατά την πρώτη χρήση.

REMOTE_DEBUGGER=1

Ενεργοποίησης της αποσφαλμάτωσης με το εργαλείο adb

DEVICE_DEBUG=1

Για τις εκδόσεις > 1.2 του OS, ελέγχει την χρήση αποσφαλμάτωσης webapp του FirefoxOS με τον Διαχειριστή Εφαρμογών (App Manager)

Εκδοχή διανομής και εμπορικής τροποποίησης

GAIA_DISTRIBUTION_DIR=./dir

Διαβάστε το Customization Overview για περισσότερες πληροφορίες.

Επικοινωνία με την ομάδα

Document Tags and Contributors

 Contributors to this page: chrisdavidmills, Simaioforos
 Last updated by: chrisdavidmills,