SlideShare ist ein Scribd-Unternehmen logo
1 von 152
Downloaden Sie, um offline zu lesen
发
          术
Jollen’s Consulting
       业


                       ,
           发,



                           发   ,
                      : www.jollen.org/consulting
www.jollen.org/consulting
             Jollen Chen <jollen@jollen.org>


            Embedded Linux           师       Embedded Linux      Linux 动
            经        时        Openmoko          华区                   过
   Openmoko                      对

   Android OS            术               Android     设       务

                         Openmoko        华区              湾                         联

    -Android      师          学           画发          师                     联   -

    发            参           Android 发   画

        长    Android porting (s3c244x/s3c64x0) Linux 动           发         Linux

    设            术

     Jollen           - www.jollen.org/blog

     Jollen           - www.jollen.org/consulting
时间
       点
经   变动               将            电




Android     Copyright (c) 2009 Jollen’s Consulting        . www.jollen.org/consulting
发
          	
 
                       拟
                	
                       	
  	
  	
 
                	
             	
         	
  	
 
                      	
           	
  协          设




Android           Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
拟
             拟
                  	
 




Android   Copyright (c) 2009 Jollen’s Consulting       . www.jollen.org/consulting
power management RAM
  console Android gadget Android kernel
  debug Android IPC
          git.android.com         patch
    Openmoko              对ARMv4                             Neo
  FreeRunner




Android             Copyright (c) 2009 Jollen’s Consulting          . www.jollen.org/consulting
Eclipse           发环

          target device              环
          Android                                     发   执

                       Eclipse
            拟   (AVD)




Android          Copyright (c) 2009 Jollen’s Consulting       . www.jollen.org/consulting
Eclipse             发环

            target device                 环
                 Android SDK tools/            录
          DDMS




Android              Copyright (c) 2009 Jollen’s Consulting         . www.jollen.org/consulting
设                              径
          http://www.eclipse.org/downloads/




Android              Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
类别




Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
类别




Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
执                                   选




Android       Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android         Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
类别

      package com.moko.hello;

      import   com.moko.hello.R;
      import   android.app.Activity;
      import   android.os.Bundle;
      import   android.widget.TextView;

      public class HelloMoko extends Activity {
          /** Called when the activity is first created. */
          @Override
          public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);

               setContentView(R.layout.main);
      
   }
      }




Android              Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
public class HelloMoko extends Activity {
          /** Called when the activity is first created. */
          @Override
          public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);


              setContentView(R.layout.main);
      
   }
      }


          onCreate()               View




Android               Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
动
                 视
           过View        UI
          Activity foreground执




Android              Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
执        Activity         画                  Activity盖
 时       Activity                paused
 Activity    统 亿                时    会                      kill
     执         Activity    画                      Activity
 时        Activity           stopped               当 统
          时             Activity会                 统




Android            Copyright (c) 2009 Jollen’s Consulting          . www.jollen.org/consulting
Android         Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
android:autoLink 属
     动将              点     URL


       过   autoLink     属               将       属         设
     web




Android          Copyright (c) 2009 Jollen’s Consulting             . www.jollen.org/consulting
<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     >
 <TextView
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:text="Jollen's Blog - http://www.jollen.org/blog"
     android:autoLink="web"
     />
 </LinearLayout>




Android             Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
public class HelloMoko extends Activity {
          /** Called when the activity is first created. */
          @Override
          public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);


              TextView tv = new TextView(this);
              tv.setText("Hello Moko");
              setContentView(tv);


      
   }
      }


               写

Android               Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android         Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
类别
     R.java          Android Development Kit                    动


          R.layout    类别           UI                    类别
     R.layout类别                 main                       Android




Android                Copyright (c) 2009 Jollen’s Consulting        . www.jollen.org/consulting
执
          统       kernel
       个apk                                                       个
  process 执
    Android                                  个                 Linux
  process
          Android 统           process
            Android                              决

  统       决




Android               Copyright (c) 2009 Jollen’s Consulting           . www.jollen.org/consulting
类别
      package com.moko.hello;

      import android.app.Service;
      import android.content.Intent;
      import android.os.IBinder;

      public class MokoService extends Service {
      
      
   @Override
      
   public IBinder onBind(Intent arg0) {
      
   
   // TODO Auto-generated method stub
      
   
   return null;
      
   }
      
      
   @Override
      
   public void onStart(Intent intent, int startId) {
      
   
   super.onStart(intent, startId);

      
   }
      }


Android              Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
类别
          没   UI
          Service   个background process
       Service      separated process      执
        这      Service UI Activity
     个process 执            个          process
     执
       Android                       Activity        启动
     Service




Android             Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
义
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
       package="com.moko.player"
       android:versionCode="1"
       android:versionName="1.0.0">
     <application android:icon="@drawable/icon" android:label="@string/app_name">
         <activity android:name=".MokoPlayer"
                    android:label="@string/app_name">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
         <service android:name=".MokoService">
         
<intent-filter>
         

   <action android:name="com.moko.player.START_MUSIC" />
         

   <category android:name="android.intent.category.DEFAULT" />
         
</intent-filter>
         </service>
     </application>
 </manifest>


Android              Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
启动
 public class MokoPlayer extends Activity {
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);

          startService(new Intent ("com.moko.player.START_MUSIC"));
      }
 }




Android              Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
public class MokoService extends Service {

 
    @Override
 
    public IBinder onBind(Intent intent) {
 
    
   // TODO Auto-generated method stub
 
    
   return null;
 
    }
 
 
    @Override
 
    public void onStart(Intent intent, int startId) {
 
    
 
    }
 
 
    @Override
 
    public void onDestroy() {
 
    
 
    }
 }




Android              Copyright (c) 2009 Jollen’s Consulting         . www.jollen.org/consulting
设                       点
          Activity / Service
          main.xml
          View
          AndroidManifest.xml -              Android
          Intent / BroadcastReceiver




Android               Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android         Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
UI
    View          UI    处                 event
    Android              UI从

           view tree
                       写                              过 XML
layout                                              view tree




Android            Copyright (c) 2009 Jollen’s Consulting         . www.jollen.org/consulting
Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
foreground process
      visible process
      service process
      background process
      empty process




Android            Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Source: Android SDK
android.widget.DatePicker                    android.widget.TimePicker




Android          Copyright (c) 2009 Jollen’s Consulting      . www.jollen.org/consulting
android.widget.Spinner                       android.widget.AutoCompl
                                                  eteTextView




Android          Copyright (c) 2009 Jollen’s Consulting      . www.jollen.org/consulting
android.widget.Button
     android.widget.EditText
     android.widget.CheckBoxa                   android.widget.ImageButton
     ndroid.widget.RadioButton




Android          Copyright (c) 2009 Jollen’s Consulting     . www.jollen.org/consulting
android.widget.Gallery                        android.widget.ImageSwitcher




Android           Copyright (c) 2009 Jollen’s Consulting      . www.jollen.org/consulting
android.widget.ListView                       android.widget.GridView




Android           Copyright (c) 2009 Jollen’s Consulting      . www.jollen.org/consulting
android.widget.LinearLayout
  (Horizontal)                                    (Vertical)




Android          Copyright (c) 2009 Jollen’s Consulting        . www.jollen.org/consulting
android.widget.RelativeLayout                    android.widget.TableLayout




Android         Copyright (c) 2009 Jollen’s Consulting      . www.jollen.org/consulting
Android         Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
public class HelloMoko extends Activity {
          /** Called when the activity is first created. */
          @Override
          public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);


              setContentView(R.layout.main);
      
   }


    当Activity                setContentView()
       将        UI R.layout.main         视
       R.layout.main       个TextView
      义 main.xml

Android               Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
<TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/hello"
            />




          'android:layout_width' - View
          'android:layout_height' - View
          'android:text' - TextView




Android               Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
战                         	
 
 <?xml version="1.0" encoding="utf-8"?>

 <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent">

 
    <TableRow>
 
    
    <TextView
 
    
        android:layout_width="fill_parent"
 
    
        android:layout_height="wrap_content"
 
    
        android:text="www.jollen.org"
 
    
        android:padding="3dip"
 
    
        android:autoLink="web" />
 
    
    <TextView
 
    
        android:layout_width="fill_parent"
 
    
        android:layout_height="wrap_content"
 
    
        android:text="www.google.com"
 
    
        android:autoLink="web" />
 
    </TableRow>

 </TableLayout>




Android                Copyright (c) 2009 Jollen’s Consulting     . www.jollen.org/consulting
package com.moko.layout;

 import com.moko.layout.R;

 import android.app.Activity;
 import android.os.Bundle;

 public class HelloLayout extends Activity {
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
     }
 }




Android             Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
变
          从                               对            dialog
                        widget
      对




Android       Copyright (c) 2009 Jollen’s Consulting            . www.jollen.org/consulting
变
          Apple   iPhone                             萤             touch

  screen

          统        点            click



                  萤

          设           经         统              环          当




Android                   Copyright (c) 2009 Jollen’s Consulting           . www.jollen.org/consulting
变
     Android                                                 萤
                    设         Android


          Android                                 经

     经          过         点              统



            选单      Menu
            对           Dialog
                          Toast

Android                 Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
TextView      Widget
      Android                    Widget
      Android Cupcake            App Widget API
   这      个                 实




Android          Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android             res/ 录                         个menu/
     录                    options_menu.xml




Android                   Copyright (c) 2009 Jollen’s Consulting      . www.jollen.org/consulting
Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
<menu xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:id="@+id/new_message"
           android:title="New Message" />
     <item android:id="@+id/quit"
           android:title="Quit" />
 </menu>




Android          Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
onCreateOptionsMenu()
  MenuInflater类别将            义          选单
               个类别 Menu               MenuInflater
          import这   个




Android             Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
实
 public boolean onCreateOptionsMenu(Menu menu) {
     MenuInflater inflater = getMenuInflater();
     inflater.inflate(R.menu.options_menu, menu);
     return true;
 }




Android       Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
处
           过onOptionsItemSelected()
          当              时 Android                           压
          选           类别         MenuItem
                义     选单UI会                    R类别




Android             Copyright (c) 2009 Jollen’s Consulting       . www.jollen.org/consulting
处                                        断
 import android.view.MenuItem;

      public boolean onOptionsItemSelected(MenuItem item) {
       
 return true;
       }




Android          Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
package com.moko.hellomenu;

 public final class R {
     public static final class attr {
     }
     public static final class drawable {
         public static final int icon=0x7f020000;
     }
     public static final class id {
         public static final int new_message=0x7f060000;
         public static final int quit=0x7f060001;
     }
     public static final class layout {
         public static final int main=0x7f030000;
     }
     public static final class menu {
         public static final int options_menu=0x7f050000;
     }
     public static final class string {
         public static final int app_name=0x7f040001;
         public static final int hello=0x7f040000;
     }
 }


Android              Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
选
           MenuItem    getItemId()                         选
          ID
                                           压       选




Android           Copyright (c) 2009 Jollen’s Consulting       . www.jollen.org/consulting
处
      public boolean onOptionsItemSelected(MenuItem item) {
      
 int item_id = item.getItemId();
      
      
 switch (item_id){
      
 
    case R.id.new_message: break;
      
 
    case R.id.quit: break;
      
 
    default: return false;
      
 }
      
 return true;
      }




Android             Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Toast   Android                              类别
          时 import android.widget.Toast
                 选单                     将
   onOptionsItemSelected()                  数实




Android            Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
public boolean onOptionsItemSelected(MenuItem item) {
      
   int item_id = item.getItemId();
      
      
   switch (item_id){
      
   
   case R.id.new_message:
                  Toast.makeText(
                          this,
                          "Please enter your message."
                                  + " Your message is at max 255 characters.",
                          Toast.LENGTH_LONG).show();
      
   
   
   break;
      
   
   case R.id.quit:
                  Toast.makeText(
                          this,
                          "Going to quit.",
                          Toast.LENGTH_LONG).show();    

   
      
   
   
   break;
      
   
   default: return false;
      
   }




Android              Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
对
          个                                 对
              过对                                       对
              询                             Yes/No
              询                      选
                    单选                          选
                   状
              状                         处




Android                Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android       对
  android.app.Dialog
     实             Dialog       AlertDialog
          对
          AlertDialog对                     询
               询




Android            Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Menu
              “New Message”选
          对    询                “Yes/No”




Android        Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
实

  onOptionsItemSelected()            断
  R.id.new_message          时          UI                个对




Android         Copyright (c) 2009 Jollen’s Consulting        . www.jollen.org/consulting
实
 public boolean onOptionsItemSelected(MenuItem item) {
     
 int item_id = item.getItemId();
     
     
 switch (item_id){
     
 
     case R.id.new_message:
 
         
         AlertDialog.Builder builder = new AlertDialog.Builder(this);
 
         
 
         
         builder.setMessage("Also post your message to Twitter?");
 
         
         builder.setCancelable(false);
 
         
 
         
         builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
 
         
         
   public void onClick(DialogInterface dialog, int id) {
 
         
         
   }
 
         
         });
 
         
 
         
         builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
 
         
         
   public void onClick(DialogInterface dialog, int id) {
 
         
         
   }
 
         
         });
 
         
 
         
         AlertDialog alert = builder.create();
 
         
         alert.show();
     
 
     
     break;
     
 
     case R.id.quit:
                 Toast.makeText(
                          this,
                          "Going to quit.",
                          Toast.LENGTH_LONG).show();   
    
     
     
 
     
     break;
     
 
     default: return false;
     
 }
     
 return true;
     }

Android                       Copyright (c) 2009 Jollen’s Consulting                  . www.jollen.org/consulting
实                          点
          AlertDialog.builder                dialog
   builder    这       个                  对          内



      设   dialog builder                    -
   builder.setMessage()
      设   对                                 -
   builder.setCancelable()




Android            Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
实                          点
            dialog builder      对                        个
      Yes    No   -builder.setPositiveButton()
   builder.setNegativeButton()
            dialog builder             AlertDialog

   AlertDialog              对                 -builder.create()
      将AlertDialog             UI     -alert.show()




Android              Copyright (c) 2009 Jollen’s Consulting       . www.jollen.org/consulting
Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
处
          builder.setPositiveButton()                              个
              Yes                      参数
                  个参数
                  个参数                click listener


          个                      个click listener               当
      压       时     click listener
   android.content.DialogInterface类别                           click
   listener




Android               Copyright (c) 2009 Jollen’s Consulting           . www.jollen.org/consulting
Android     Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Intent            类          Notification
            Android     统        达         Intent
          Intent将                                 处
                    电      ...              个
                           达




Android                 Copyright (c) 2009 Jollen’s Consulting     . www.jollen.org/consulting
Web
           电
           voice mail
           启Google map

           启Street View




Android             Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
处          启动
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
       package="com.moko.hello"
       android:versionCode="1"
       android:versionName="1.0.0">
     <application android:icon="@drawable/icon" android:label="@string/app_name">
         <activity android:name=".HelloMoko"
                    android:label="@string/app_name">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
     </application>
 </manifest>




Android              Copyright (c) 2009 Jollen’s Consulting    . www.jollen.org/consulting
startService(Intent service) -                Intent 启动Service
            voice mail
            启Google map

            启Street View




Android               Copyright (c) 2009 Jollen’s Consulting     . www.jollen.org/consulting
public class MokoPlayer extends Activity {
      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);


          startService(new Intent ("com.moko.player.START_MUSIC"));
      }
 }




          电       丢   android.intent.action.DIAL




Android                Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Intent    action    data
      android.intent.action.VIEW - tel:0988082


Android            Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
电            号
 import   android.app.Activity;
 import   android.os.Bundle;
 import   android.content.Intent;
 import   android.net.Uri;

 public class MokoPlayer extends Activity {
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);

          Intent dial = new Intent();

          dial.setAction("android.intent.action.VIEW");
          dial.setData(Uri.parse("tel:0988082134"));
          startActivity(dial);
      }
 }




Android                Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
电         号

             dial.setData(Uri.parse("mailto:jollen@jollen.org"));
             dial.setData(Uri.parse("http://www.jollen.org"));




          Android




Android              Copyright (c) 2009 Jollen’s Consulting       . www.jollen.org/consulting
个         Intent                   个动
    action                        动             动
     Intent 动                        义              内       义


     Android       Intent                     实             内
 动




Android            Copyright (c) 2009 Jollen’s Consulting       . www.jollen.org/consulting
Intent action         这个Intent                动
                    动             处                 action
          笔
              Uri              写




Android              Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
ACTION_CALL: 号
     ACTION_GET_CONTENT:启动内 选
     ACTION_SET_WALLPAPER:设 Wallpaper




Android        Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android内      Intent action
         Activity Action:启动Activity action
         Broadcast Action: 过        处      action

     activity action:                 启动Activity




Android                 Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
实          动 号

   public class HelloIntentDialer extends Activity {
       /** Called when the activity is first created. */
       @Override
       public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.main);

              Intent dial = new Intent();
              dial.setAction("android.intent.action.CALL");
              dial.setData(Uri.parse("tel:119"));
              startActivity(dial);
          }
   }




Android                Copyright (c) 2009 Jollen’s Consulting       . www.jollen.org/consulting
<?xml version="1.0" encoding="utf-8"?>
   <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         package="com.moko.hellointentdialer"
         android:versionCode="1"
         android:versionName="1.0">
       <application android:icon="@drawable/icon" android:label="@string/app_name">
           <activity android:name=".HelloIntentDialer"
                      android:label="@string/app_name">
               <intent-filter>
                   <action android:name="android.intent.action.MAIN" />
                   <category android:name="android.intent.category.LAUNCHER" />
               </intent-filter>
           </activity>
       </application>
       <uses-sdk android:minSdkVersion="3" />
       <uses-permission android:name="android.permission.CALL_PHONE" />
   </manifest>




Android              Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
实       个
          执
          个
                            选            个

      实       选




Android           Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
1.     action ACTION_GET_CONTENT Intent
  Intent intent = new Intent(Intent.ACTION_GET_CONTENT);

  2.设     Intent mime type             设    Intent mime type      声
  intent.setType("audio/*");

  3.    内 选                  Intent
  startActivity(Intent.createChooser(intent, "Select music"));




Android                  Copyright (c) 2009 Jollen’s Consulting       . www.jollen.org/consulting
写                           	
 
      属                     写




          数写

               	
             	
  	
         	
 


                           类别                                 义
                          数



Android              Copyright (c) 2009 Jollen’s Consulting       . www.jollen.org/consulting
执       画   	
 




Android             Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
public class HelloIntentWallpaper extends Activity implements
 View.OnClickListener {
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);

          Button button = (Button)findViewById(R.id.set_wallpaper);
          button.setOnClickListener(this);
      }

      public void onClick(View v) {
          Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
          startActivity(Intent.createChooser(intent, "Select Wallpaper"));
      }
 }




Android               Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    
   <TextView
    
       android:layout_width="fill_parent"
    
       android:layout_height="wrap_content"
    
       android:text="@string/hello"
    
       />
        <Button android:id="@+id/set_wallpaper"
            android:layout_width="wrap_content"
    android:layout_height="wrap_content"
            android:text="@string/set_wallpaper">
            <requestFocus />
        </Button>
    </LinearLayout>




Android               Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
设                            处            	
 



Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
UI                 处             View           处
                     个
      View               类别                               动
           Android        设
      event listener                   处      UI




Android              Copyright (c) 2009 Jollen’s Consulting         . www.jollen.org/consulting
Android                                   UI           处
                学           View                UI         类别     个
   View                  Android                 册          个


          个                            个                   数 callback
   method       这个               数 callback method
                             处




Android               Copyright (c) 2009 Jollen’s Consulting            . www.jollen.org/consulting
touch               动              当

  View    处                             时
  Android         册View.OnClickListener


     当    touch        发         时 Android
                             数




Android            Copyright (c) 2009 Jollen’s Consulting       . www.jollen.org/consulting
View.OnClickListener          click listener
          这    UI   Click动
     当          对View           Click         时              画
          UI        Android                会          这个
  View.OnClickListener                     数
     View.OnClickListerner                     数 OnClick()




Android             Copyright (c) 2009 Jollen’s Consulting         . www.jollen.org/consulting
实




          个            实                                Acitivty类
   别      实   View.OnClickListener

Android             Copyright (c) 2009 Jollen’s Consulting          . www.jollen.org/consulting
个View                 册     个event listener
      当Android                   click
   event listener    callback method
          Button类别                                      处
                        时                     Button类别
   setOnClickListener()                    册click listener




Android              Copyright (c) 2009 Jollen’s Consulting         . www.jollen.org/consulting
实
     public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);

              Button button = (Button)findViewById(R.id.btn);
              button.setOnClickListener(this);
          }




Android                Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
实
     public void onClick(View v) {
          Toast.makeText(
                  this,
                  "Yes.",
                  Toast.LENGTH_LONG).show();
      }




Android            Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
AppWidgetProviderInfo

               Widget               layout

             XML

          AppWidgetProvider

      View layout




Android             Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
AppWidgetProviderInfo

          AppWidgetProvider

            义basic method

           interfacing with App Widgets

           当Widget              启动                       删   时会
          broadcast

      View layout


Android             Copyright (c) 2009 Jollen’s Consulting        . www.jollen.org/consulting
AppWidgetProviderInfo

          AppWidgetProvider

      View layout

            义App Widget            layout

               XML




Android             Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
<receiver android:name="ExampleAppWidgetProvider" >
     <intent-filter>
         <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
     </intent-filter>
     <meta-data android:name="android.appwidget.provider"
                android:resource="@xml/example_appwidget_info" />
 </receiver>




          AndroidManifest.xml




Android               Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
     android:minWidth="240dp" <!-- density-independent pixels -->
     android:minHeight="72dp"
     android:initialLayout="@layout/example_appwidget"
     android:configure="com.example.android.ExampleAppWidgetConfigure" >
 </appwidget-provider>




          <appwidget-provider>              义


             res/xml/




Android             Copyright (c) 2009 Jollen’s Consulting             . www.jollen.org/consulting
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
     android:minWidth="240dp" <!-- density-independent pixels -->
     android:minHeight="72dp"
     android:updatePeriodMillis="86400000" <!-- once per day -->
     android:initialLayout="@layout/example_appwidget"
     android:configure="com.example.android.ExampleAppWidgetConfigure" >
 </appwidget-provider>




          App widget                                    timely information


                时间




Android                Copyright (c) 2009 Jollen’s Consulting               . www.jollen.org/consulting
widget

                                                      Source: Android Dev Guide
Android   Copyright (c) 2009 Jollen’s Consulting       . www.jollen.org/consulting
实
 public class ExampleAppWidgetProvider extends AppWidgetProvider {

     public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
         final int N = appWidgetIds.length;

          // Perform this loop procedure for each App Widget that belongs to this provider
          for (int i=0; i<N; i++) {
              int appWidgetId = appWidgetIds[i];

              // Create an Intent to launch ExampleActivity
              Intent intent = new Intent(context, ExampleActivity.class);
              PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

             // Get the layout for the App Widget and attach an on-click listener to the button
             RemoteViews views = new RemoteViews(context.getPackageName(),
 R.layout.appwidget_provider_layout);
             views.setOnClickPendingIntent(R.id.button, pendingIntent);

              // Tell the AppWidgetManager to perform an update on the current App Widget
              appWidgetManager.updateAppWidget(appWidgetId, views);
          }
     }
 }




Android                   Copyright (c) 2009 Jollen’s Consulting         . www.jollen.org/consulting
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.android.app.myapp" >
     <uses-permission android:name="android.permission.RECEIVE_SMS" />
 </manifest>




                    装时            installer




Android           Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
widget

                                                   Source: Android Dev Guide
Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Source: Android Dev Guide



      Landscape Orientation


Android               Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
设                                  	
 
          决   widget

          选                frame

                       阴    设




                               设

Android                Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
PNG-24


     设      transparent background


      8-bit color




Android             Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
设
          	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 



Android                           Copyright (c) 2009 Jollen’s Consulting                           . www.jollen.org/consulting
样
          长       别                     样

                                                       对
              样

              还




Android           Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
样
                                                       义
          样

          个                            义        个样

                                个样




Android       Copyright (c) 2009 Jollen’s Consulting       . www.jollen.org/consulting
义样




Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
<?xml version="1.0" encoding="utf-8"?>
          <resources>
              <style name="myText">
                  <item name="android:textSize">18sp</item>
                  <item name="android:textColor">#880</item>
              </style>
          </resources>




Android               Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
样

  <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      >
  <TextView
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:text="Hello, this is HelloStyles."
      style="@style/myText"
      />
  </LinearLayout>




Android            Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
执




Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
个萤

      从
              个

          个

          个




Android           Copyright (c) 2009 Jollen’s Consulting        . www.jollen.org/consulting
设                   视

          <?xml version="1.0" encoding="utf-8"?>
          <resources>
              <style name="myTheme">
              
 <item name="android:windowNoTitle">true</item>
              </style>
          </resources>




Android                Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
<?xml version="1.0" encoding="utf-8"?>
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.moko.hellotheme"
        android:versionCode="1"
        android:versionName="1.0.0">
      <application android:icon="@drawable/icon" android:label="@string/app_name"
      
      android:theme="@style/myTheme">
          <activity android:name=".HelloTheme"
                     android:label="@string/app_name">
              <intent-filter>
                  <action android:name="android.intent.action.MAIN" />
                  <category android:name="android.intent.category.LAUNCHER" />
              </intent-filter>
          </activity>
      </application>
  </manifest>




Android              Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
执




Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
package com.moko.hellotheme;

    import android.app.Activity;
    import android.os.Bundle;

    public class HelloTheme extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            /* setTheme(R.style.myTheme); */
            setContentView(R.layout.main);
        }
    }




Android              Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
动画



 <?xml version="1.0" encoding="utf-8"?>
 <!-- Copyright (C) 2007 The Android Open Source Project

       Licensed under the Apache License, Version 2.0 (the "License");
       you may not use this file except in compliance with the License.
       You may obtain a copy of the License at

            http://www.apache.org/licenses/LICENSE-2.0

       Unless required by applicable law or agreed to in writing, software
       distributed under the License is distributed on an "AS IS" BASIS,
       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
       See the License for the specific language governing permissions and
       limitations under the License.
 -->

 <translate xmlns:android="http://schemas.android.com/apk/res/android"
 android:fromXDelta="0" android:toXDelta="10" android:duration="1000"
 android:interpolator="@anim/cycle_7" />



Android                     Copyright (c) 2009 Jollen’s Consulting                . www.jollen.org/consulting
<?xml version="1.0" encoding="utf-8"?>
     <!-- Copyright (C) 2007 The Android Open Source Project

           Licensed under the Apache License, Version 2.0 (the "License");
           you may not use this file except in compliance with the License.
           You may obtain a copy of the License at

                http://www.apache.org/licenses/LICENSE-2.0

           Unless required by applicable law or agreed to in writing, software
           distributed under the License is distributed on an "AS IS" BASIS,
           WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
           See the License for the specific language governing permissions and
           limitations under the License.
     -->

     <cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
     android:cycles="7" />




Android                Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
<?xml version="1.0" encoding="utf-8"?>

          <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:padding="10dip"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content">

              <TextView
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:layout_marginBottom="10dip"
                  android:text="@string/animation_1_instructions"
              />

              <EditText android:id="@+id/pw"
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:clickable="true"
                  android:singleLine="true"
                  android:password="true"
              />

              <Button android:id="@+id/login"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="@string/googlelogin_login"
              />

          </LinearLayout>


Android                 Copyright (c) 2009 Jollen’s Consulting             . www.jollen.org/consulting
package com.example.android.apis.view;

     import com.example.android.apis.R;

     import   android.app.Activity;
     import   android.os.Bundle;
     import   android.view.View;
     import   android.view.animation.Animation;
     import   android.view.animation.AnimationUtils;

     public class Animation1 extends Activity implements View.OnClickListener {

          @Override
          public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.animation_1);

              View loginButton = findViewById(R.id.login);
              loginButton.setOnClickListener(this);
          }

          public void onClick(View v) {
              Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake);
              findViewById(R.id.pw).startAnimation(shake);
          }

     }

Android                 Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
执




Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
将

              动
                  边                边             义
          区                             区内




Android       Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
Android   Copyright (c) 2009 Jollen’s Consulting   . www.jollen.org/consulting
<?xml version="1.0" encoding="utf-8"?>
          <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              >
          <Button
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="small world"
              android:textSize="12sp"
              android:background="@drawable/arrow"
              />
          <Button
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="big world"
              android:textSize="24sp"
              android:background="@drawable/arrow"
              />
          <Button
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="super world"
              android:textSize="48sp"
              android:background="@drawable/arrow"
              />
          </LinearLayout>

Android                    Copyright (c) 2009 Jollen’s Consulting         . www.jollen.org/consulting
www.jollen.org/consulting

Weitere ähnliche Inhalte

Andere mochten auch

What is Network Security?
What is Network Security?What is Network Security?
What is Network Security?Faith Zeller
 
ICCV2009: MAP Inference in Discrete Models: Part 5
ICCV2009: MAP Inference in Discrete Models: Part 5ICCV2009: MAP Inference in Discrete Models: Part 5
ICCV2009: MAP Inference in Discrete Models: Part 5zukun
 
Intoduction to Network Security NS1
Intoduction to Network Security NS1Intoduction to Network Security NS1
Intoduction to Network Security NS1koolkampus
 
Functional programming with python
Functional programming with pythonFunctional programming with python
Functional programming with pythonMarcelo Cure
 
Scalable Internet Servers and Load Balancing
Scalable Internet Servers and Load BalancingScalable Internet Servers and Load Balancing
Scalable Internet Servers and Load BalancingInformation Technology
 
Intelligence, spies & espionage
Intelligence, spies & espionageIntelligence, spies & espionage
Intelligence, spies & espionagedgnadt
 
CITY OF SPIES BY SORAYYA KHAN
CITY OF SPIES BY SORAYYA KHANCITY OF SPIES BY SORAYYA KHAN
CITY OF SPIES BY SORAYYA KHANSheikh Hasnain
 
Functional Programming in R
Functional Programming in RFunctional Programming in R
Functional Programming in RSoumendra Dhanee
 
Uni cambridge
Uni cambridgeUni cambridge
Uni cambridgeN/A
 
The double lives of spies in the civil war power point
The double lives of spies in the civil war power pointThe double lives of spies in the civil war power point
The double lives of spies in the civil war power pointAlyssa Fabia
 
Windows Server 2008 - Web and Application Hosting
Windows Server 2008 - Web and Application HostingWindows Server 2008 - Web and Application Hosting
Windows Server 2008 - Web and Application HostingInformation Technology
 
Factories, mocks and spies: a tester's little helpers
Factories, mocks and spies: a tester's little helpersFactories, mocks and spies: a tester's little helpers
Factories, mocks and spies: a tester's little helperstxels
 

Andere mochten auch (20)

Noah Z - Spies
Noah Z - SpiesNoah Z - Spies
Noah Z - Spies
 
What is Network Security?
What is Network Security?What is Network Security?
What is Network Security?
 
Serial Killers Presentation1
Serial Killers Presentation1Serial Killers Presentation1
Serial Killers Presentation1
 
Trends in spies
Trends in spiesTrends in spies
Trends in spies
 
Functional style programming
Functional style programmingFunctional style programming
Functional style programming
 
ICCV2009: MAP Inference in Discrete Models: Part 5
ICCV2009: MAP Inference in Discrete Models: Part 5ICCV2009: MAP Inference in Discrete Models: Part 5
ICCV2009: MAP Inference in Discrete Models: Part 5
 
Intoduction to Network Security NS1
Intoduction to Network Security NS1Intoduction to Network Security NS1
Intoduction to Network Security NS1
 
Functional programming with python
Functional programming with pythonFunctional programming with python
Functional programming with python
 
Android UI
Android UIAndroid UI
Android UI
 
Scalable Internet Servers and Load Balancing
Scalable Internet Servers and Load BalancingScalable Internet Servers and Load Balancing
Scalable Internet Servers and Load Balancing
 
Intelligence, spies & espionage
Intelligence, spies & espionageIntelligence, spies & espionage
Intelligence, spies & espionage
 
CITY OF SPIES BY SORAYYA KHAN
CITY OF SPIES BY SORAYYA KHANCITY OF SPIES BY SORAYYA KHAN
CITY OF SPIES BY SORAYYA KHAN
 
SAN
SANSAN
SAN
 
Functional Programming in R
Functional Programming in RFunctional Programming in R
Functional Programming in R
 
Uni cambridge
Uni cambridgeUni cambridge
Uni cambridge
 
The double lives of spies in the civil war power point
The double lives of spies in the civil war power pointThe double lives of spies in the civil war power point
The double lives of spies in the civil war power point
 
Lecture#01
Lecture#01Lecture#01
Lecture#01
 
Xml Publisher
Xml PublisherXml Publisher
Xml Publisher
 
Windows Server 2008 - Web and Application Hosting
Windows Server 2008 - Web and Application HostingWindows Server 2008 - Web and Application Hosting
Windows Server 2008 - Web and Application Hosting
 
Factories, mocks and spies: a tester's little helpers
Factories, mocks and spies: a tester's little helpersFactories, mocks and spies: a tester's little helpers
Factories, mocks and spies: a tester's little helpers
 

Ähnlich wie Jollen's Embedded Linux and Android Consulting Services

Android HAL Introduction: libhardware and its legacy
Android HAL Introduction: libhardware and its legacyAndroid HAL Introduction: libhardware and its legacy
Android HAL Introduction: libhardware and its legacyJollen Chen
 
Android Activity Life Cycle | Edureka
Android Activity Life Cycle | EdurekaAndroid Activity Life Cycle | Edureka
Android Activity Life Cycle | EdurekaEdureka!
 
Pycon2011 android programming-using_python
Pycon2011 android programming-using_pythonPycon2011 android programming-using_python
Pycon2011 android programming-using_pythonGeorge Goh
 
Android introduction&hello world
Android introduction&hello worldAndroid introduction&hello world
Android introduction&hello world葵慶 李
 
Flutter vs Ionic: Which One You Should Choose?
Flutter vs Ionic: Which One You Should Choose?Flutter vs Ionic: Which One You Should Choose?
Flutter vs Ionic: Which One You Should Choose?calltutors
 
Mobile App Testing ScanAgile 2012
Mobile App Testing ScanAgile 2012Mobile App Testing ScanAgile 2012
Mobile App Testing ScanAgile 2012Daniel Knott
 
Adobe AIR Mobile development for Android and PlayBook
Adobe AIR Mobile development for Android and PlayBookAdobe AIR Mobile development for Android and PlayBook
Adobe AIR Mobile development for Android and PlayBookMihai Corlan
 
Android presentation
Android presentationAndroid presentation
Android presentationImam Raza
 
Android Unplugged Event GDSC MJCET .pptx
Android Unplugged Event GDSC MJCET .pptxAndroid Unplugged Event GDSC MJCET .pptx
Android Unplugged Event GDSC MJCET .pptxMohdAbdulAleem4
 
Lego for Software Engineers at Silicon Valley Code Camp 2011 (2010-10-10)
Lego for Software Engineers at Silicon Valley Code Camp 2011 (2010-10-10)Lego for Software Engineers at Silicon Valley Code Camp 2011 (2010-10-10)
Lego for Software Engineers at Silicon Valley Code Camp 2011 (2010-10-10)Theo Jungeblut
 
Build Mobile Application In Android
Build Mobile Application In AndroidBuild Mobile Application In Android
Build Mobile Application In Androiddnnddane
 
Bakalar UI Design Portfolio
Bakalar UI Design PortfolioBakalar UI Design Portfolio
Bakalar UI Design Portfoliopatient14
 

Ähnlich wie Jollen's Embedded Linux and Android Consulting Services (20)

Android HAL Introduction: libhardware and its legacy
Android HAL Introduction: libhardware and its legacyAndroid HAL Introduction: libhardware and its legacy
Android HAL Introduction: libhardware and its legacy
 
Android Activity Life Cycle | Edureka
Android Activity Life Cycle | EdurekaAndroid Activity Life Cycle | Edureka
Android Activity Life Cycle | Edureka
 
Pycon2011 android programming-using_python
Pycon2011 android programming-using_pythonPycon2011 android programming-using_python
Pycon2011 android programming-using_python
 
Android introduction&hello world
Android introduction&hello worldAndroid introduction&hello world
Android introduction&hello world
 
Doppl Code Sharing
Doppl Code SharingDoppl Code Sharing
Doppl Code Sharing
 
Flutter vs Ionic: Which One You Should Choose?
Flutter vs Ionic: Which One You Should Choose?Flutter vs Ionic: Which One You Should Choose?
Flutter vs Ionic: Which One You Should Choose?
 
Android Development Tutorial V3
Android Development Tutorial   V3Android Development Tutorial   V3
Android Development Tutorial V3
 
Mobile App Testing ScanAgile 2012
Mobile App Testing ScanAgile 2012Mobile App Testing ScanAgile 2012
Mobile App Testing ScanAgile 2012
 
Android Presentation By Ashok Kumar Pachauri
Android Presentation By Ashok Kumar PachauriAndroid Presentation By Ashok Kumar Pachauri
Android Presentation By Ashok Kumar Pachauri
 
Adobe AIR Mobile development for Android and PlayBook
Adobe AIR Mobile development for Android and PlayBookAdobe AIR Mobile development for Android and PlayBook
Adobe AIR Mobile development for Android and PlayBook
 
Android Presentation By Ashok Kumar Pachauri
Android Presentation By Ashok Kumar PachauriAndroid Presentation By Ashok Kumar Pachauri
Android Presentation By Ashok Kumar Pachauri
 
Android presentation
Android presentationAndroid presentation
Android presentation
 
Mobile testing
Mobile testingMobile testing
Mobile testing
 
Android Unplugged Event GDSC MJCET .pptx
Android Unplugged Event GDSC MJCET .pptxAndroid Unplugged Event GDSC MJCET .pptx
Android Unplugged Event GDSC MJCET .pptx
 
Lego for Software Engineers at Silicon Valley Code Camp 2011 (2010-10-10)
Lego for Software Engineers at Silicon Valley Code Camp 2011 (2010-10-10)Lego for Software Engineers at Silicon Valley Code Camp 2011 (2010-10-10)
Lego for Software Engineers at Silicon Valley Code Camp 2011 (2010-10-10)
 
Android Minnebar
Android MinnebarAndroid Minnebar
Android Minnebar
 
Hacking Android OS
Hacking Android OSHacking Android OS
Hacking Android OS
 
Build Mobile Application In Android
Build Mobile Application In AndroidBuild Mobile Application In Android
Build Mobile Application In Android
 
Bakalar UI Design Portfolio
Bakalar UI Design PortfolioBakalar UI Design Portfolio
Bakalar UI Design Portfolio
 
Android Session.pdf
Android Session.pdfAndroid Session.pdf
Android Session.pdf
 

Mehr von Jollen Chen

Flowchain blockchain classroom at Taiwan Tech University
Flowchain blockchain classroom at Taiwan Tech UniversityFlowchain blockchain classroom at Taiwan Tech University
Flowchain blockchain classroom at Taiwan Tech UniversityJollen Chen
 
Bitmark and Hyperledger Workshop: the Digital Assets and Property
Bitmark and Hyperledger Workshop: the Digital Assets and PropertyBitmark and Hyperledger Workshop: the Digital Assets and Property
Bitmark and Hyperledger Workshop: the Digital Assets and PropertyJollen Chen
 
Introducing the Blockchain and Distributed Ledger Technology
Introducing the Blockchain and  Distributed Ledger TechnologyIntroducing the Blockchain and  Distributed Ledger Technology
Introducing the Blockchain and Distributed Ledger TechnologyJollen Chen
 
Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.Jollen Chen
 
WoT.City and IoT Protocols Movement @ Taipei, Taiwan
WoT.City and IoT Protocols Movement @ Taipei, TaiwanWoT.City and IoT Protocols Movement @ Taipei, Taiwan
WoT.City and IoT Protocols Movement @ Taipei, TaiwanJollen Chen
 
IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015Jollen Chen
 
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.Jollen Chen
 
Backbone.js and MVW 101
Backbone.js and MVW 101Backbone.js and MVW 101
Backbone.js and MVW 101Jollen Chen
 
Single-Page Application Design Principles 101
Single-Page Application Design Principles 101Single-Page Application Design Principles 101
Single-Page Application Design Principles 101Jollen Chen
 
MongoDB & NoSQL 101
 MongoDB & NoSQL 101 MongoDB & NoSQL 101
MongoDB & NoSQL 101Jollen Chen
 
Mokoversity Course: Apple Swift 101 - Introduction
Mokoversity Course: Apple Swift 101 - IntroductionMokoversity Course: Apple Swift 101 - Introduction
Mokoversity Course: Apple Swift 101 - IntroductionJollen Chen
 
Android Wear SDK: Level 101
Android Wear SDK: Level 101Android Wear SDK: Level 101
Android Wear SDK: Level 101Jollen Chen
 
Startup eng-camp 3
Startup eng-camp 3Startup eng-camp 3
Startup eng-camp 3Jollen Chen
 
讓 HTML5 走進 IPTV Framework
讓 HTML5 走進 IPTV Framework讓 HTML5 走進 IPTV Framework
讓 HTML5 走進 IPTV FrameworkJollen Chen
 
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)Jollen Chen
 
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)Jollen Chen
 
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)Jollen Chen
 
Jollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-levelJollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-levelJollen Chen
 
Embedded Linux: Introduction
Embedded Linux: IntroductionEmbedded Linux: Introduction
Embedded Linux: IntroductionJollen Chen
 
Android OS Porting: Introduction
Android OS Porting: IntroductionAndroid OS Porting: Introduction
Android OS Porting: IntroductionJollen Chen
 

Mehr von Jollen Chen (20)

Flowchain blockchain classroom at Taiwan Tech University
Flowchain blockchain classroom at Taiwan Tech UniversityFlowchain blockchain classroom at Taiwan Tech University
Flowchain blockchain classroom at Taiwan Tech University
 
Bitmark and Hyperledger Workshop: the Digital Assets and Property
Bitmark and Hyperledger Workshop: the Digital Assets and PropertyBitmark and Hyperledger Workshop: the Digital Assets and Property
Bitmark and Hyperledger Workshop: the Digital Assets and Property
 
Introducing the Blockchain and Distributed Ledger Technology
Introducing the Blockchain and  Distributed Ledger TechnologyIntroducing the Blockchain and  Distributed Ledger Technology
Introducing the Blockchain and Distributed Ledger Technology
 
Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.
 
WoT.City and IoT Protocols Movement @ Taipei, Taiwan
WoT.City and IoT Protocols Movement @ Taipei, TaiwanWoT.City and IoT Protocols Movement @ Taipei, Taiwan
WoT.City and IoT Protocols Movement @ Taipei, Taiwan
 
IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015
 
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
 
Backbone.js and MVW 101
Backbone.js and MVW 101Backbone.js and MVW 101
Backbone.js and MVW 101
 
Single-Page Application Design Principles 101
Single-Page Application Design Principles 101Single-Page Application Design Principles 101
Single-Page Application Design Principles 101
 
MongoDB & NoSQL 101
 MongoDB & NoSQL 101 MongoDB & NoSQL 101
MongoDB & NoSQL 101
 
Mokoversity Course: Apple Swift 101 - Introduction
Mokoversity Course: Apple Swift 101 - IntroductionMokoversity Course: Apple Swift 101 - Introduction
Mokoversity Course: Apple Swift 101 - Introduction
 
Android Wear SDK: Level 101
Android Wear SDK: Level 101Android Wear SDK: Level 101
Android Wear SDK: Level 101
 
Startup eng-camp 3
Startup eng-camp 3Startup eng-camp 3
Startup eng-camp 3
 
讓 HTML5 走進 IPTV Framework
讓 HTML5 走進 IPTV Framework讓 HTML5 走進 IPTV Framework
讓 HTML5 走進 IPTV Framework
 
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)
 
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)
 
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)
 
Jollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-levelJollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-level
 
Embedded Linux: Introduction
Embedded Linux: IntroductionEmbedded Linux: Introduction
Embedded Linux: Introduction
 
Android OS Porting: Introduction
Android OS Porting: IntroductionAndroid OS Porting: Introduction
Android OS Porting: Introduction
 

Kürzlich hochgeladen

MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 

Kürzlich hochgeladen (20)

MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 

Jollen's Embedded Linux and Android Consulting Services

  • 1.
  • 2. Jollen’s Consulting 业 , 发, 发 , : www.jollen.org/consulting
  • 3. www.jollen.org/consulting Jollen Chen <jollen@jollen.org> Embedded Linux 师 Embedded Linux Linux 动 经 时 Openmoko 华区 过 Openmoko 对 Android OS 术 Android 设 务 Openmoko 华区 湾 联 -Android 师 学 画发 师 联 - 发 参 Android 发 画 长 Android porting (s3c244x/s3c64x0) Linux 动 发 Linux 设 术 Jollen - www.jollen.org/blog Jollen - www.jollen.org/consulting
  • 4. 时间
  • 5. 变动 将 电 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 6. 拟 协 设 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 7. 拟 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 8. power management RAM console Android gadget Android kernel debug Android IPC git.android.com patch Openmoko 对ARMv4 Neo FreeRunner Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 9. Eclipse 发环 target device 环 Android 发 执 Eclipse 拟 (AVD) Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 10. Eclipse 发环 target device 环 Android SDK tools/ 录 DDMS Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 11. 径 http://www.eclipse.org/downloads/ Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 12. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 13. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 14. 类别 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 15. 类别 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 16. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 17. 选 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 18. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 19. 类别 package com.moko.hello; import com.moko.hello.R; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class HelloMoko extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 20. public class HelloMoko extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } onCreate() View Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 21.
  • 22. 视 过View UI Activity foreground执 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 23. Activity 画 Activity盖 时 Activity paused Activity 统 亿 时 会 kill 执 Activity 画 Activity 时 Activity stopped 当 统 时 Activity会 统 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 24. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 25. android:autoLink 属 动将 点 URL 过 autoLink 属 将 属 设 web Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 26. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Jollen's Blog - http://www.jollen.org/blog" android:autoLink="web" /> </LinearLayout> Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 27. public class HelloMoko extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText("Hello Moko"); setContentView(tv); } } 写 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 28. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 29. 类别 R.java Android Development Kit 动 R.layout 类别 UI 类别 R.layout类别 main Android Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 30. 统 kernel 个apk 个 process 执 Android 个 Linux process Android 统 process Android 决 统 决 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 31. 类别 package com.moko.hello; import android.app.Service; import android.content.Intent; import android.os.IBinder; public class MokoService extends Service { @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } @Override public void onStart(Intent intent, int startId) { super.onStart(intent, startId); } } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 32. 类别 没 UI Service 个background process Service separated process 执 这 Service UI Activity 个process 执 个 process 执 Android Activity 启动 Service Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 33. 义 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.moko.player" android:versionCode="1" android:versionName="1.0.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MokoPlayer" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name=".MokoService"> <intent-filter> <action android:name="com.moko.player.START_MUSIC" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </service> </application> </manifest> Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 34. 启动 public class MokoPlayer extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); startService(new Intent ("com.moko.player.START_MUSIC")); } } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 35. public class MokoService extends Service { @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onStart(Intent intent, int startId) { } @Override public void onDestroy() { } } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 36.
  • 37. 点 Activity / Service main.xml View AndroidManifest.xml - Android Intent / BroadcastReceiver Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 38. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 39. UI View UI 处 event Android UI从 view tree 写 过 XML layout view tree Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 40. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 41. foreground process visible process service process background process empty process Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 43. android.widget.DatePicker android.widget.TimePicker Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 44. android.widget.Spinner android.widget.AutoCompl eteTextView Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 45. android.widget.Button android.widget.EditText android.widget.CheckBoxa android.widget.ImageButton ndroid.widget.RadioButton Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 46. android.widget.Gallery android.widget.ImageSwitcher Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 47. android.widget.ListView android.widget.GridView Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 48. android.widget.LinearLayout (Horizontal) (Vertical) Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 49. android.widget.RelativeLayout android.widget.TableLayout Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 50. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 51. public class HelloMoko extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } 当Activity setContentView() 将 UI R.layout.main 视 R.layout.main 个TextView 义 main.xml Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 52. <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> 'android:layout_width' - View 'android:layout_height' - View 'android:text' - TextView Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 53. <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TableRow> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="www.jollen.org" android:padding="3dip" android:autoLink="web" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="www.google.com" android:autoLink="web" /> </TableRow> </TableLayout> Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 54. package com.moko.layout; import com.moko.layout.R; import android.app.Activity; import android.os.Bundle; public class HelloLayout extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 55.
  • 56. 从 对 dialog widget 对 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 57. Apple iPhone 萤 touch screen 统 点 click 萤 设 经 统 环 当 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 58. Android 萤 设 Android Android 经 经 过 点 统 选单 Menu 对 Dialog Toast Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 59. TextView Widget Android Widget Android Cupcake App Widget API 这 个 实 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 60. Android res/ 录 个menu/ 录 options_menu.xml Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 61. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 62. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 63. <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/new_message" android:title="New Message" /> <item android:id="@+id/quit" android:title="Quit" /> </menu> Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 64. onCreateOptionsMenu() MenuInflater类别将 义 选单 个类别 Menu MenuInflater import这 个 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 65. 实 public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.options_menu, menu); return true; } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 66. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 67. 过onOptionsItemSelected() 当 时 Android 压 选 类别 MenuItem 义 选单UI会 R类别 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 68. 断 import android.view.MenuItem; public boolean onOptionsItemSelected(MenuItem item) { return true; } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 69. package com.moko.hellomenu; public final class R { public static final class attr { } public static final class drawable { public static final int icon=0x7f020000; } public static final class id { public static final int new_message=0x7f060000; public static final int quit=0x7f060001; } public static final class layout { public static final int main=0x7f030000; } public static final class menu { public static final int options_menu=0x7f050000; } public static final class string { public static final int app_name=0x7f040001; public static final int hello=0x7f040000; } } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 70. MenuItem getItemId() 选 ID 压 选 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 71. public boolean onOptionsItemSelected(MenuItem item) { int item_id = item.getItemId(); switch (item_id){ case R.id.new_message: break; case R.id.quit: break; default: return false; } return true; } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 72. Toast Android 类别 时 import android.widget.Toast 选单 将 onOptionsItemSelected() 数实 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 73. public boolean onOptionsItemSelected(MenuItem item) { int item_id = item.getItemId(); switch (item_id){ case R.id.new_message: Toast.makeText( this, "Please enter your message." + " Your message is at max 255 characters.", Toast.LENGTH_LONG).show(); break; case R.id.quit: Toast.makeText( this, "Going to quit.", Toast.LENGTH_LONG).show(); break; default: return false; } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 74. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 75. 个 对 过对 对 询 Yes/No 询 选 单选 选 状 状 处 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 76. Android 对 android.app.Dialog 实 Dialog AlertDialog 对 AlertDialog对 询 询 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 77. Menu “New Message”选 对 询 “Yes/No” Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 78. 实 onOptionsItemSelected() 断 R.id.new_message 时 UI 个对 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 79. 实 public boolean onOptionsItemSelected(MenuItem item) { int item_id = item.getItemId(); switch (item_id){ case R.id.new_message: AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Also post your message to Twitter?"); builder.setCancelable(false); builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { } }); builder.setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { } }); AlertDialog alert = builder.create(); alert.show(); break; case R.id.quit: Toast.makeText( this, "Going to quit.", Toast.LENGTH_LONG).show(); break; default: return false; } return true; } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 80. 点 AlertDialog.builder dialog builder 这 个 对 内 设 dialog builder - builder.setMessage() 设 对 - builder.setCancelable() Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 81. 点 dialog builder 对 个 Yes No -builder.setPositiveButton() builder.setNegativeButton() dialog builder AlertDialog AlertDialog 对 -builder.create() 将AlertDialog UI -alert.show() Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 82. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 83. builder.setPositiveButton() 个 Yes 参数 个参数 个参数 click listener 个 个click listener 当 压 时 click listener android.content.DialogInterface类别 click listener Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 84. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 85. Intent 类 Notification Android 统 达 Intent Intent将 处 电 ... 个 达 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 86. Web 电 voice mail 启Google map 启Street View Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 87. 启动 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.moko.hello" android:versionCode="1" android:versionName="1.0.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".HelloMoko" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 88. startService(Intent service) - Intent 启动Service voice mail 启Google map 启Street View Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 89. public class MokoPlayer extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); startService(new Intent ("com.moko.player.START_MUSIC")); } } 电 丢 android.intent.action.DIAL Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 90. Intent action data android.intent.action.VIEW - tel:0988082 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 91. 号 import android.app.Activity; import android.os.Bundle; import android.content.Intent; import android.net.Uri; public class MokoPlayer extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Intent dial = new Intent(); dial.setAction("android.intent.action.VIEW"); dial.setData(Uri.parse("tel:0988082134")); startActivity(dial); } } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 92. 号 dial.setData(Uri.parse("mailto:jollen@jollen.org")); dial.setData(Uri.parse("http://www.jollen.org")); Android Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 93. Intent 个动 action 动 动 Intent 动 义 内 义 Android Intent 实 内 动 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 94. Intent action 这个Intent 动 动 处 action 笔 Uri 写 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 95. ACTION_CALL: 号 ACTION_GET_CONTENT:启动内 选 ACTION_SET_WALLPAPER:设 Wallpaper Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 96. Android内 Intent action Activity Action:启动Activity action Broadcast Action: 过 处 action activity action: 启动Activity Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 97. 动 号 public class HelloIntentDialer extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Intent dial = new Intent(); dial.setAction("android.intent.action.CALL"); dial.setData(Uri.parse("tel:119")); startActivity(dial); } } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 98. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.moko.hellointentdialer" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".HelloIntentDialer" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="3" /> <uses-permission android:name="android.permission.CALL_PHONE" /> </manifest> Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 99. 个 执 个 选 个 实 选 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 100. 1. action ACTION_GET_CONTENT Intent Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 2.设 Intent mime type 设 Intent mime type 声 intent.setType("audio/*"); 3. 内 选 Intent startActivity(Intent.createChooser(intent, "Select music")); Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 101. 属 写 数写 类别 义 数 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 102. 画 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 103. public class HelloIntentWallpaper extends Activity implements View.OnClickListener { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button = (Button)findViewById(R.id.set_wallpaper); button.setOnClickListener(this); } public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER); startActivity(Intent.createChooser(intent, "Select Wallpaper")); } } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 104. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:id="@+id/set_wallpaper" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/set_wallpaper"> <requestFocus /> </Button> </LinearLayout> Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 105. 处 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 106. UI 处 View 处 个 View 类别 动 Android 设 event listener 处 UI Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 107. Android UI 处 学 View UI 类别 个 View Android 册 个 个 个 数 callback method 这个 数 callback method 处 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 108. touch 动 当 View 处 时 Android 册View.OnClickListener 当 touch 发 时 Android 数 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 109. View.OnClickListener click listener 这 UI Click动 当 对View Click 时 画 UI Android 会 这个 View.OnClickListener 数 View.OnClickListerner 数 OnClick() Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 110. 个 实 Acitivty类 别 实 View.OnClickListener Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 111. 个View 册 个event listener 当Android click event listener callback method Button类别 处 时 Button类别 setOnClickListener() 册click listener Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 112. public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button = (Button)findViewById(R.id.btn); button.setOnClickListener(this); } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 113. public void onClick(View v) { Toast.makeText( this, "Yes.", Toast.LENGTH_LONG).show(); } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 114. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 115. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 116. AppWidgetProviderInfo Widget layout XML AppWidgetProvider View layout Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 117. AppWidgetProviderInfo AppWidgetProvider 义basic method interfacing with App Widgets 当Widget 启动 删 时会 broadcast View layout Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 118. AppWidgetProviderInfo AppWidgetProvider View layout 义App Widget layout XML Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 119. <receiver android:name="ExampleAppWidgetProvider" > <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/example_appwidget_info" /> </receiver> AndroidManifest.xml Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 120. <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="240dp" <!-- density-independent pixels --> android:minHeight="72dp" android:initialLayout="@layout/example_appwidget" android:configure="com.example.android.ExampleAppWidgetConfigure" > </appwidget-provider> <appwidget-provider> 义 res/xml/ Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 121. <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="240dp" <!-- density-independent pixels --> android:minHeight="72dp" android:updatePeriodMillis="86400000" <!-- once per day --> android:initialLayout="@layout/example_appwidget" android:configure="com.example.android.ExampleAppWidgetConfigure" > </appwidget-provider> App widget timely information 时间 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 122. widget Source: Android Dev Guide Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 123. 实 public class ExampleAppWidgetProvider extends AppWidgetProvider { public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { final int N = appWidgetIds.length; // Perform this loop procedure for each App Widget that belongs to this provider for (int i=0; i<N; i++) { int appWidgetId = appWidgetIds[i]; // Create an Intent to launch ExampleActivity Intent intent = new Intent(context, ExampleActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); // Get the layout for the App Widget and attach an on-click listener to the button RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.appwidget_provider_layout); views.setOnClickPendingIntent(R.id.button, pendingIntent); // Tell the AppWidgetManager to perform an update on the current App Widget appWidgetManager.updateAppWidget(appWidgetId, views); } } } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 124. <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.app.myapp" > <uses-permission android:name="android.permission.RECEIVE_SMS" /> </manifest> 装时 installer Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 125. widget Source: Android Dev Guide Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 126. Source: Android Dev Guide Landscape Orientation Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 127. 决 widget 选 frame 阴 设 设 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 128. PNG-24 设 transparent background 8-bit color Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 129. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 130. 长 别 样 对 样 还 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 131. 义 样 个 义 个样 个样 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 132. 义样 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 133. <?xml version="1.0" encoding="utf-8"?> <resources> <style name="myText"> <item name="android:textSize">18sp</item> <item name="android:textColor">#880</item> </style> </resources> Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 134. 样 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello, this is HelloStyles." style="@style/myText" /> </LinearLayout> Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 135. 执 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 136. 个萤 从 个 个 个 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 137. 视 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="myTheme"> <item name="android:windowNoTitle">true</item> </style> </resources> Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 138. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.moko.hellotheme" android:versionCode="1" android:versionName="1.0.0"> <application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/myTheme"> <activity android:name=".HelloTheme" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 139. 执 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 140. package com.moko.hellotheme; import android.app.Activity; import android.os.Bundle; public class HelloTheme extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* setTheme(R.style.myTheme); */ setContentView(R.layout.main); } } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 141. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 142. 动画 <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2007 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0" android:toXDelta="10" android:duration="1000" android:interpolator="@anim/cycle_7" /> Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 143. <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2007 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android" android:cycles="7" /> Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 144. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:padding="10dip" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dip" android:text="@string/animation_1_instructions" /> <EditText android:id="@+id/pw" android:layout_width="fill_parent" android:layout_height="wrap_content" android:clickable="true" android:singleLine="true" android:password="true" /> <Button android:id="@+id/login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/googlelogin_login" /> </LinearLayout> Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 145. package com.example.android.apis.view; import com.example.android.apis.R; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; public class Animation1 extends Activity implements View.OnClickListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.animation_1); View loginButton = findViewById(R.id.login); loginButton.setOnClickListener(this); } public void onClick(View v) { Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake); findViewById(R.id.pw).startAnimation(shake); } } Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 146. 执 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 147. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 148. 动 边 边 义 区 区内 Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 149. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 150. Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting
  • 151. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="small world" android:textSize="12sp" android:background="@drawable/arrow" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="big world" android:textSize="24sp" android:background="@drawable/arrow" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="super world" android:textSize="48sp" android:background="@drawable/arrow" /> </LinearLayout> Android Copyright (c) 2009 Jollen’s Consulting . www.jollen.org/consulting