LinuxParty
No necesita un teléfono en un primer momento, ya que se puede escribir y probar el código en un emulador de Linux en su PC. Esta es una introducción de dos partes para conseguir una aplicación básica y comenzar a aprender acerca de la API de Android. En este tutorial se asume que tiene ya alguna familiaridad básica con Java, XML, y los conceptos básicos de programación, pero incluso si usted es débil en todos ellos, siéntase libre de continuar.
Entorno de desarrollo y los primeros pasos
Una nota sobre las versiones: la versión más reciente de Android es 4.2 (Jelly Bean), como se puede ver en esta tabla de Wikipedia. Pero siempre es mejor programar para las versiones anteriores también, 4.0 (Ice Cream Sandwich) o 2.3 (Gingerbread), especialmente como Android es totalmente compatible hacia delante (por lo que el código 2.3 se ejecutará en 4,2), pero no siempre es retrocompatible con versiones anteriores. El código aquí debería funcionar en cualquier versión 4.0 o 2.3.
Programar Android en Linux, con Eclipse y PhoneGap
La forma más rápida para llegar a su entorno de desarrollo conjunto, es descargar el paquete de Android. Usted también necesitará JDK 6 (no sólo JRE), tenga en cuenta que Android no es compatible con gcj
. Si ya dispone de Eclipse, o si desea utilizar otro IDE, puede configurarlo para Android, como se describe aquí.
Ahora, cree un proyecto denominado "Cuenta atrás" ya sea usando Eclipse, [ 2 ], o desde la línea de comandos . Puse el BuildSDK a 4.0.3 y SDK mínimo de 2.2, y (en Eclipse) utilicé la plantilla BlankActivity.
Mi primer proyecto Android: Layout
Para nuestro primer programa, lo que vamos a hacer es mostrar un temporizador de cuenta atrás de 10 segundos cuando se haga clic en un botón. Antes de escribir el código, vamos a crear la interfaz -lo que el usuario verá cuando empieza la aplicación-. Abre res/layout/activity_countdown.xml
para crear un diseño de XML, utilizando el editor gráfico de Eclipse, o un editor de texto / XML, e introduce lo siguiente:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/time_display_box" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="60dp" android:text="@string/_00_30" android:textAppearance="?android:attr/textAppearanceLarge"/> <Button android:id="@+id/startbutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/time_display_box" android:layout_centerHorizontal="true" android:layout_marginTop="41dp" android:text="@string/start" /> </RelativeLayout>
Tenga en cuenta las referencias a @string/start
y @string/__00_30
. Estos valores se almacenan en res/values/strings.xml
:
<string name="start">Start</string> <string name="_00_30">00:30</string>
Esto ilustra la manera estándar de referirse a los recursos de Android. Es recomendable usar referencias de cadenas en lugar de cadenas de difícil codificación.
Mi primer proyecto Android: Código
A continuación, abra el archivo CountdownActivity.java en su editor, dispuesto a escribir algo de código. Ya debe tener un código auxiliar de método onCreate() generado. onCreate()
siempre es llamado cuando se crea la primera actividad, así que vas a hacer a menudo esta instalación y aplicación de inicio. (Eclipse también pudo haber creado un trozo de método onCreateOptionsMenu (), que lo ignoramos por el momento.) Introduzca este código:
public class CountdownActivity extends Activity { private static final int MILLIS_PER_SECOND = 1000; private static final int SECONDS_TO_COUNTDOWN = 30; private TextView countdownDisplay; private CountDownTimer timer; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_countdown); countdownDisplay = (TextView) findViewById(R.id.time_display_box); Button startButton = (Button) findViewById(R.id.startbutton); startButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { try { showTimer(SECONDS_TO_COUNTDOWN * MILLIS_PER_SECOND); } catch (NumberFormatException e) { // method ignores invalid (non-integer) input and waits // for something it can use } } }); } }
Se dará cuenta que esto hace de este un sorprendentemente fácil primer proyecto: la API de Android incluye un countDownTimer que puede utilizar. Hemos creado este, y la pantalla de cuenta atrás, como variables miembro privadas. En onCreate()
utilizaremos el método setContentView
para tomar nuestra layout XML. La sintaxis R.foo.bar
es una manera estándar de referirse a los recursos Android XML en el código, por lo que verá un montón de ellos.
findViewById
es otro método que vamos a usar mucho, aquí, toma la pantalla y el botón Inicio de la disposición XML. Para que el botón funcione, se necesita una OnClickListener. Esta es una interfaz, por lo que debe tener subclases. Podríamos crear una nueva clase MyButton para hacer esto, pero esto es demasiado para un solo botón. En cambio, lo hacemos online, la creación de un nuevo OnClickListener y su método onClick()
. Ahora, simplemente llama showTimer()
sobre el número de milisegundos que queremos usar (en la actualidad no modificable).
Entonces, ¿qué hace showTimer()
?
private void showTimer(int countdownMillis) { if(timer != null) { timer.cancel(); } timer = new CountDownTimer(countdownMillis, MILLIS_PER_SECOND) { @Override public void onTick(long millisUntilFinished) { countdownDisplay.setText("counting down: " + millisUntilFinished / MILLIS_PER_SECOND); } @Override public void onFinish() { countdownDisplay.setText("KABOOM!"); } }.start(); }
La clase countDownTimer hace casi todo el trabajo por nosotros, lo cual es bueno. Sólo en caso de que ya haya un temporizador, comenzamos por cancelarlo si existe. Entonces creamos un nuevo temporizador, ajustar el número de milisegundos para la cuenta atrás (parámetros de la showTimer()
) y los milisegundos por intervalo de conteo. Este intervalo es la frecuencia con la onTick()
es despedido de devolución de llamada.
CountDownTimer es otra clase abstracta, y los métodos __onTick()__ y __onFinish()__ deben aplicarse cuando sea una subclase. Nosotros anulamos onTick()
para disminuir la pantalla de cuenta atrás por un segundo en cada tic-tac, y anular onFinish()
para establecer un mensaje de la pantalla una vez que finalice la cuenta atrás. Por último, start()
establece el temporizador en marcha.
Si selecciona "Ejecutar" en Eclipse, puede optar por ejecutar esto como una aplicación para Android, y un emulador automáticamente genera y ejecuta para usted.
Felicitaciones, usted ha escrito su primera aplicación para Android! En la segunda parte de esta serie, vamos a tener una mirada más cercana a la estructura de una aplicación para Android, y hacer algunas mejoras en el contador de tiempo para introducir un tiempo de cuenta atrás, un botón de Stop, y las opciones de menú. También podremos ejecutarlo en un teléfono físico más que el emulador de software.
-
Android
- Google comienza a añadir funciones de bloqueo antirrobo a los teléfonos Android
- Cómo conectar Linux y Android y por qué deberías hacerlo
- Scrcpy: muestra y controla tu dispositivo Google Android a través del escritorio Linux
- Cómo instalar y utilizar Android Debug Bridge (adb) en Linux
- Eliminar el software espía de su teléfono puede resultar complicado. Estas son tus mejores opciones
- Android 14 Preview 1 está disponible, prohibirá oficialmente la instalación de aplicaciones antiguas
- Android 13 puede ejecutar Windows 10, 11 y distros Linux en el móvil.
- Samsung puede descontinuar los teléfonos inteligentes Galaxy Note de gama alta
- El nuevo procesador Snapdragon 888 de Qualcomm impulsará los buques insignia de Android de 2021
- Google lanza Android Enterprise Essentials dirigido a pymes
- Google quiere que Android use el kernel regular de Linux
- HarmonyOS: el Sistema Operativo de Huawei, compatible y que podrá ejecutar apps de Android
- Google bloquea Huawei por orden de Trump, no sólo Google también Intel, Qualcomm y otros grandes fabricantes «ULTIMA HORA: EE.UU. Retrasa su veto 3 meses»
- Hacking con tu móvil smartphone android
- Fallo en Android permite secuestrar el móvil con sólo una foto