Diferència entre revisions de la pàgina «Android»
m |
|||
(Hi ha 26 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 1: | Línia 1: | ||
+ | <nowiki>#FpInfor #Dam #DamMp08 #DamMp08Uf1 #DamMp08Uf01</nowiki> | ||
+ | |||
+ | |||
+ | == Introducció == | ||
Android és un sistema basat en Linux però que no és de codi obert. Només té certs mòduls que ho son. | Android és un sistema basat en Linux però que no és de codi obert. Només té certs mòduls que ho son. | ||
− | |||
Alguns conceptes: | Alguns conceptes: | ||
* Activity | * Activity | ||
Línia 8: | Línia 11: | ||
* Layout | * Layout | ||
* Resources | * Resources | ||
+ | |||
+ | Articles relacionats: | ||
+ | * [[Java: introducció ràpida]] | ||
+ | * [[JsonXat]] : xat per mòbil/web/altres amb web services | ||
+ | |||
+ | Si algun dia feu una aplicació i cobreu per ella, [http://www.xatakandroid.com/play-store/como-se-declaran-en-hacienda-la-venta-de-aplicaciones-en-google-play llegiu això atentament per pagar els impostos correctament]. | ||
<br> | <br> | ||
== Instal·lació == | == Instal·lació == | ||
− | Instal·lem l'entorn de desenvolupament ADT (Android Developer Kit): | + | |
+ | === Android SDK: Treballant en Java === | ||
+ | Instal·lem l'entorn de desenvolupament ADT (Android Developer Kit) per treballar en JAVA: | ||
* http://developer.android.com/sdk/index.html | * http://developer.android.com/sdk/index.html | ||
* Al bundle ve l'Eclipse amb totes les eines. | * Al bundle ve l'Eclipse amb totes les eines. | ||
Línia 20: | Línia 31: | ||
*: normalment endollant-ho sol detectar-se sense problemes. | *: normalment endollant-ho sol detectar-se sense problemes. | ||
+ | === Cordova/PhoneGap: Treballant en JavaScript === | ||
+ | Apache Cordova/PhoneGap: | ||
+ | * Podem treballar en HTML, CSS i JAVASCRIPT, facilita molt el desenvolupament. | ||
+ | * Compilem després per diverses plataformes (Android, iOS) | ||
+ | * Està basat en Node.js. Has de descarregar la darrera versió: | ||
+ | ** http://nodejs.org/download/ | ||
+ | ** En Linux podeu descarregar les fonts (sources) i fer ''configure'', ''make'', ''make install'' per instal·lar-ho. | ||
+ | * Tutorial d'instal·lació Apache Cordova: http://cordova.apache.org/docs/en/3.3.0/guide_cli_index.md.html#The%20Command-Line%20Interface | ||
+ | * Un bon tutorial amb moltes coses variades: | ||
+ | ** http://coenraets.org/blog/cordova-phonegap-3-tutorial/ | ||
+ | * Per fer diverses pantalles amb "efecte deslizante": | ||
+ | ** http://coenraets.org/blog/2013/03/hardware-accelerated-page-transitions-for-mobile-web-apps-phonegap-apps/ | ||
+ | * Per veure la consola de depuració: http://blog.koalite.com/2012/09/depurar-phonegapcordova-en-android-con-adb/ | ||
+ | *:<pre>$ adb logcat Cordova:D DroidGap:D CordovaLog:D *:S</pre> | ||
<br> | <br> | ||
Línia 25: | Línia 50: | ||
* File -> New -> Android Application Project | * File -> New -> Android Application Project | ||
* Layout amb Widgets:<pre>res -> layout -> activity_main.xml</pre> | * Layout amb Widgets:<pre>res -> layout -> activity_main.xml</pre> | ||
− | * | + | * Proposta d'exercici: afegeix un ''Button'' i un ''Label''. |
− | * | + | * Canvia'ls el seu ID (el què després ens caldrà per localitzar-los des del codi). |
+ | * Prova: donem al Play (Run) i triem el dispositiu (virtual o real) sobre el què executar. | ||
+ | * Localitza com connectar aquests elements al codi a través de l'<u>arxiu de ''Resources''</u> : '''R.id.<id_del_recurs>''' | ||
+ | * Afegeix el codi pertinent (onButtonClickListener) per tal que al prémer el botó, puguem canviar el text del label. | ||
+ | ** http://developer.android.com/reference/android/widget/Button.html | ||
+ | * Tornem a donar al Play (Run) i triem el dispositiu (virtual o real) sobre el què executar. | ||
+ | |||
+ | <br> | ||
+ | |||
+ | == Activity Life Cycle == | ||
+ | Una aplicació Android (Activity) té diferents estats controlats pel Sistema Operatiu Android: | ||
+ | |||
+ | [[Imatge:activity_lifecycle.png|500px]] [[Imatge:Android-Activity-Lifecycle.png|dreta|500px]] | ||
+ | |||
+ | * Paused: una altra ''activity'' de més prioritat passa al ''foreground''. | ||
+ | * Stopped: es sol arribar quan es canvia d'activitat. | ||
+ | * Kill: el SO mata una ''activity'' si necessita la RAM per una altra. | ||
+ | |||
+ | Cada cop que es canvia d'estat es crida a la ''callback'' pertinent: onCreate(), onStop(), onPause(), etc. | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === Toasts === | ||
+ | Un '''''Toast''''' és un "missatge flotant" que dura uns pocs instants i que ens pot ajudar a tenir informació de com va la nostra aplicació. | ||
+ | * http://developer.android.com/guide/topics/ui/notifiers/toasts.html | ||
+ | * Posa-hi un toast en cadascun dels canvis de la teva aplicació per veure com es va canviant d'un a l'altre. | ||
+ | |||
<br> | <br> | ||
Línia 37: | Línia 88: | ||
* Anar al layout (res->layout) i afegir un WebView | * Anar al layout (res->layout) i afegir un WebView | ||
* Donar permís a l'aplicació per accedir a Internet (android_manifest.xml) | * Donar permís a l'aplicació per accedir a Internet (android_manifest.xml) | ||
− | * Activar JavaScript. | + | * Configurar WebView a onCreate(): |
− | * Afegir la web inicial amb el mètode | + | *# Activar JavaScript. |
− | * Obrir els links dins la pròpia WebView (setWebViewClient). | + | *# Afegir la web inicial amb el '''mètode ''loadUrl'''''. |
+ | *#* Podem crear un string a res -> values -> strings.xml | ||
+ | *#* El cridarem després al codi de MainActivity.java mitjançant: R.string.nom_atribut | ||
+ | *# Obrir els links dins la pròpia WebView (setWebViewClient). | ||
Ja podem compilar i córrer l'aplicació. | Ja podem compilar i córrer l'aplicació. |
Revisió de 21:44, 3 ago 2018
#FpInfor #Dam #DamMp08 #DamMp08Uf1 #DamMp08Uf01
Contingut
Introducció[modifica]
Android és un sistema basat en Linux però que no és de codi obert. Només té certs mòduls que ho son.
Alguns conceptes:
- Activity
- Manifest
- App LifeCycle
- Layout
- Resources
Articles relacionats:
- Java: introducció ràpida
- JsonXat : xat per mòbil/web/altres amb web services
Si algun dia feu una aplicació i cobreu per ella, llegiu això atentament per pagar els impostos correctament.
Instal·lació[modifica]
Android SDK: Treballant en Java[modifica]
Instal·lem l'entorn de desenvolupament ADT (Android Developer Kit) per treballar en JAVA:
- http://developer.android.com/sdk/index.html
- Al bundle ve l'Eclipse amb totes les eines.
- Carregar les diferentes versions (APIs) a Window -> Android SDK Manager
- Crear una VM per fer proves: Window -> Android Virtual Device Manager
- Per posar a punt un device real: http://developer.android.com/tools/device.html
- normalment endollant-ho sol detectar-se sense problemes.
Cordova/PhoneGap: Treballant en JavaScript[modifica]
Apache Cordova/PhoneGap:
- Podem treballar en HTML, CSS i JAVASCRIPT, facilita molt el desenvolupament.
- Compilem després per diverses plataformes (Android, iOS)
- Està basat en Node.js. Has de descarregar la darrera versió:
- http://nodejs.org/download/
- En Linux podeu descarregar les fonts (sources) i fer configure, make, make install per instal·lar-ho.
- Tutorial d'instal·lació Apache Cordova: http://cordova.apache.org/docs/en/3.3.0/guide_cli_index.md.html#The%20Command-Line%20Interface
- Un bon tutorial amb moltes coses variades:
- Per fer diverses pantalles amb "efecte deslizante":
- Per veure la consola de depuració: http://blog.koalite.com/2012/09/depurar-phonegapcordova-en-android-con-adb/
$ adb logcat Cordova:D DroidGap:D CordovaLog:D *:S
Primera aplicació: hello world[modifica]
- File -> New -> Android Application Project
- Layout amb Widgets:
res -> layout -> activity_main.xml
- Proposta d'exercici: afegeix un Button i un Label.
- Canvia'ls el seu ID (el què després ens caldrà per localitzar-los des del codi).
- Prova: donem al Play (Run) i triem el dispositiu (virtual o real) sobre el què executar.
- Localitza com connectar aquests elements al codi a través de l'arxiu de Resources : R.id.<id_del_recurs>
- Afegeix el codi pertinent (onButtonClickListener) per tal que al prémer el botó, puguem canviar el text del label.
- Tornem a donar al Play (Run) i triem el dispositiu (virtual o real) sobre el què executar.
Activity Life Cycle[modifica]
Una aplicació Android (Activity) té diferents estats controlats pel Sistema Operatiu Android:
- Paused: una altra activity de més prioritat passa al foreground.
- Stopped: es sol arribar quan es canvia d'activitat.
- Kill: el SO mata una activity si necessita la RAM per una altra.
Cada cop que es canvia d'estat es crida a la callback pertinent: onCreate(), onStop(), onPause(), etc.
Toasts[modifica]
Un Toast és un "missatge flotant" que dura uns pocs instants i que ens pot ajudar a tenir informació de com va la nostra aplicació.
- http://developer.android.com/guide/topics/ui/notifiers/toasts.html
- Posa-hi un toast en cadascun dels canvis de la teva aplicació per veure com es va canviant d'un a l'altre.
Web App[modifica]
Crearem una aplicació tonta amb un browser incrustat (WebView) per visualitzar una web i navegar. D'aquesta manera podem realitzar una aplicació sencera a la web, el que facilita el manteniment en els clients. És clar que això només ho podem fer per aplicacions senzilles i que estiguin ben adaptades al tamany dels dispositius mòbils.
Utilitzarem el WebView. Seguirem les passes indicades aquí:
http://developer.android.com/guide/webapps/webview.html
- Anar al layout (res->layout) i afegir un WebView
- Donar permís a l'aplicació per accedir a Internet (android_manifest.xml)
- Configurar WebView a onCreate():
- Activar JavaScript.
- Afegir la web inicial amb el mètode loadUrl.
- Podem crear un string a res -> values -> strings.xml
- El cridarem després al codi de MainActivity.java mitjançant: R.string.nom_atribut
- Obrir els links dins la pròpia WebView (setWebViewClient).
Ja podem compilar i córrer l'aplicació.
Coses[modifica]
Alguns links interessants per començar amb Android:
Android per PCs i tablets i similars: http://www.android-x86.org/download
Ubuntu per Android: http://www.ubuntu.com/devices/android
Rotate screen: http://discuz-android.blogspot.com/2008/01/change-android-screen-landscapeportrait.html
Screen sizes: http://stackoverflow.com/questions/6166677/android-screen-size-hdpi-ldpi-mdpi