Skip to main content

Android Basics : Quick Start

First of all, basic question: How to learn Android?

  1. “Google” it. (Sorry for the foul language =p)
  2. API & book references.
  3. Ask experienced people.
  4. Think yourself.
  5. Ask in forum or send email.


Ok. Lets continue...

There are 4 basic components in Android application.


Activity Life-cycle
1. Activity
  • Displays a user interface component and respond to system/user initiated.
  • An Application may contain one or more Activities. One Activity is then considered as the main entry point by the system.
  • Each Activity can be invoked from other Applications/Activities.
  • Example:
public class Activity extends ApplicationContext {
   protected void onCreate(Bundle savedState);

   protected void onStart();
   protected void onRestart();
   protected void onResume();
   protected void onPause();
   protected void onStop();
   protected void onDestroy();
}
public class MyActivity extends Activity {}



Different Layout View
2. View
  • The basic building block for user interface components and creation of interactive UI components (buttons, text fields, etc.).
  • Occupies a rectangular area on the screen and is responsible for drawing and event handling (scroll, tap, etc.).





3. Service
  • An application component that runs in the background, not interacting with the user, for an indefinite period of time.
  • Two modes: a long-running service whose lifecycle is independent of the activity that started it; a service bound by other services and activities by its AIDL interface.
  • Example:
public class MyService extends Service {
   public void onCreate();
   public void onDestroy();
   private final IService.Stub mBinder = new   IService.Stub() {
      //your service methods implementation
      Method1();
      Method2();
   }
 
   public IBinder onBind(Intent arg0) {
       return mBinder;
   }
}


Readings:
[1] http://www.androidcompetencycenter.com/2009/01/basics-of-android-part-iii-android-services/
[2] http://mylifewithandroid.blogspot.com/2008/02/double-life-of-service.html




4. Intent
  • An intent is an abstract description of an operation to be performed.
  • Its most significant use is in the launching of Activities, where it can be thought of as the glue between Activities.
  • It is a passive data structure holding an abstract description of an action to be performed.
    • action
    • data
  • Usage
    • Explicit passing: startActivity(Intent); startService(Intent)
    • Broadcast: broadcastIntent – need to declare Intent Filter to receive the event.



Hope this article help those who just started in Android Development. :)

Read more at http://developer.android.com/guide/index.html.

    Comments

    Popular posts from this blog

    225019099301.apps.googleusercontent.com

    Recent activity on my Gmail just revealed that there's this app "Authorized Application (225019099301.apps.googleusercontent.com)" from IP address 54.235.159.144 assessing my Gmail.

    The IP address is from a Amazon server ec2-54-235-159-144.compute-1.amazonaws.com. (IP Lookup).

    And blacklist check (http://whatismyipaddress.com/blacklist-check) shows that the IP is clean too.

    Clicking on the "Manage Account Access" didn't give any information on the application "225019099301.apps.googleusercontent.com".


    After Googling, it appears that the app is Mailbox (source: http://productforums.google.com/forum/#!topic/gmail/9LVW_etXyTE)

    To make things easy, Google should show the applications with their ID.


    Backup MySQL to Azure Storage in 30 Seconds

    Step 1. Disable password prompt for "mysqldump command"mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) when trying to connect 1. Run "vi ~/.my.cnf"
    2. Add the following lines

    [mysqldump]user=mysqluser password=secret
    3. For Bitnami, you'll need to append the following line in "/opt/bitnami/mysql/my.cnf"

    !include ~/.my.cnf
    4. Try running to see if the command works.
    mysqldump --all-databases > /home/bitnami/backups/db-backup.sql



    Step 2(a). Install Azure-CLI Prerequisites: Installing npm.sudo apt-get update sudo apt-get install nodejs sudo apt-get install npm Note: If you facing issue while installing nodejs/npm on Ubuntu 12.04, you can refer to his article for alternative way to install https://rtcamp.com/tutorials/nodejs/node-js-npm-install-ubuntu/, or this http://stackoverflow.com/questions/16302436/install-nodejs-on-ubuntu-12-10#comment32247107_16303380

    Install Azure CLI.npm install azure-cl…

    Generate GoDaddy SSL Certificate (.crt) for Azure Websites (.pfx)

    Step 1: Getting GoDaddy SSL cert.
    Let's say you have a domain name of my_domain.com. You'll first need to generate the the .csr file for GoDaddy with the following command:

    openssl req -new -newkey rsa:2048 -nodes -keyout my_domain.com.key -out my_domain.com.csr


    This gives you 2 files:
    my_domain.com.key - This is the private key
    my_domain.com.csr - This is the Certificate Signing Request


    Copy the content of my_domain.com.csr file to the SSL signing authority (GoDaddy).



    Once approved, GoDaddy give you back a .zip file with the following 2 files:

    18f1c77f369c0b59.crt - This is your cert
    gd_bundle-g2-g1.crt - This is the GoDaddy Certificate Chain


    Step 2: Convert a CERT/PEM certificate to a PFX certificate
    openssl pkcs12 -export -out my_domain.com.pfx -inkey my_domain.com.key -in 18f1c77f369c0b59.crt


    Step 3: Certificate to Upload to Azure.


    Step 4: Assign SSL Bindings.




    Step 5: Done!


    References:

    http://azure.microsoft.com/en-us/documentation/articles/web-sites-configure-ssl-certificate…