Install Android Market on Emulator

adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system

adb shell chmod 777 /system/app

adb push GoogleLoginService.apk /system/app/.

adb push GoogleServicesFramework.apk /system/app/.

adb push Vending.apk /system/app/.

adb shell rm /system/app/SdkSetup*

広告

Titanium-AlertDialog

A good example for AlertDialog.

var alert = Titanium.UI.createAlertDialog({
    title: ‘Delete data’,
    message: ‘Sure?’,
    buttonNames: [‘Yes’, ‘No’],
    cancel: 1
});
 
alert.addEventListener(‘click’, function(e) {
    Titanium.API.info(‘e = ‘ +  JSON.stringify(e));
 
       //Clicked cancel, first check is for iphone, second for android
       if (e.cancel === e.index || e.cancel === true) {
          return;
       }
 
        //now you can use parameter e to switch/case
 
       switch (e.index) {
          case 0: Titanium.API.info(‘Clicked button 0 (YES)’);
          break;
 
          //This will never be reached, if you specified cancel for index 1
          case 1: Titanium.API.info(‘Clicked button 1 (NO)’);
          break;
 
          default:
          break;
 
      }
 
});
 
alert.show();

Android Debug Bridge tool adb.exe

Android Debug Bridge version 1.0.25

-d                            – directs command to the only connected USB device
                                 returns an error if more than one USB device is present.
-e                            – directs command to the only running emulator.
                                 returns an error if more than one emulator is running.
-s <serial number>            – directs command to the USB device or emulator with
                                 the given serial number. Overrides ANDROID_SERIAL
                                 envivornment variable.
-p <product name or path>     – simple product name like ‘sooner’, or
                                 a relative/absolute path to a product
                                 out directory like ‘out/target/product/sooner’.
                                 If -p is not specified, the ANDROID_PRODUCT_OUT
                                 environment variable is used, which must
                                 be an absolute path.
devices                       – list all connected devices
connect <host>:<port>         – connect to a device via TCP/IP disconnect <host>:<port>      – disconnect from a TCP/IP device
device commands:
  adb push <local> <remote>    – copy file/dir to device
  adb pull <remote> <local>    – copy file/dir from device
  adb sync [ <directory> ]     – copy host->device only if changed
                                 (see ‘adb help all’)
  adb shell                    – run remote shell interactively
  adb shell <command>          – run remote shell command
  adb emu <command>            – run emulator console command
  adb logcat [ <filter-spec> ] – View device log
  adb forward <local> <remote> – forward socket connections
                                 forward specs are one of:
                                   tcp:<port>
                                   localabstract:<unix domain socket name>
                                   localreserved:<unix domain socket name>
                                   localfilesystem:<unix domain socket name>
                                   dev:<character device name>
                                   jdwp:<process pid> (remote only)
  adb jdwp                     – list PIDs of processes hosting a JDWP transport
  adb install [-l] [-r] <file> – push this package file to the device and install it
                                 (‘-l’ means forward-lock the app)
                                 (‘-r’ means reinstall the app, keeping its data)
  adb uninstall [-k] <package> – remove this app package from the device
                                 (‘-k’ means keep the data and cache directories)
  adb bugreport                – return all information from the device
                                 that should be included in a bug report.

  adb help                     – show this help message
  adb version                  – show version num

DATAOPTS:
(no option)                   – don’t touch the data partition
  -w                           – wipe the data partition
  -d                           – flash the data partition

scripting:
  adb wait-for-device          – block until device is online
  adb start-server             – ensure that there is a server running
  adb kill-server              – kill the server if it is running
  adb get-state                – prints: offline | bootloader | device
  adb get-serialno             – prints: <serial-number>
  adb status-window            – continuously print device status for a specified device
  adb remount                  – remounts the /system partition on the device read-write
  adb reboot [bootloader|recovery] – reboots the device, optionally into the bootloader or recovery program
  adb root                     – restarts the adbd daemon with root permissions
  adb usb                      – restarts the adbd daemon listening on USB  adb tcpip <port>             – restarts the adbd daemon listening on TCP on the spe
ified port
networking:
  adb ppp <tty> [parameters]   – Run PPP over USB.
Note: you should not automatically start a PPP connection.
<tty> refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
[parameters] – Eg. defaultroute debug dump local notty usepeerdns

adb sync notes: adb sync [ <directory> ]
  <localdir> can be interpreted in several ways:

  – If <directory> is not specified, both /system and /data partitions will be updated.

  – If it is "system" or "data", only the corresponding partition
    is updated.

Intent的使用

1.从一个Activity跳转到另一个Activity,也就是活动之间的通信,可以使用Intent类。

在主活动界面中添加一个按钮叫btn_change,添加另一个活动角NewActivity。在Manifest中注册该新活动。

<activity android:name=”.NewActivity”
              android:label=”@string/activity_text”>
</activity>

主Activity的源代码如下:

A25Test

子Activity的代码如下:

NewActivity

要用到的界面文件main.xml:

main

 

要用到的界面文件newactivity.xml:

main

 

公共资源文件:

main

 

 

Intent数据传递

1.Intent类对象可以完成数据传递功能

在主活动界面中添加一个按钮叫btn_change,添加另一个活动角NewActivity。在Manifest中注册该新活动。

<activity android:name=".NewActivity"
              android:label="@string/activity_text">
</activity>

主Activity的源代码如下:

package ustc.A25Test;

import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

public class A25Test extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    
    public void onClickButton(View v){
    	if(v.getId()==R.id.btn_change){
    		Intent intent=new Intent(this,NewActivity.class);
    		
    		Bundle b=new Bundle();
    		b.putByteArray("name", "tom".getBytes());
    		intent.putExtras(b);
    		try{
    			this.startActivity(intent);
    		}catch(ActivityNotFoundException anfe){
    			Log.v("ERROR..",anfe.getMessage());
    		}
    	}
    }
}

子Activity的代码如下:

package ustc.A25Test;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

public class NewActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.newactivity);
        
        Intent intent=this.getIntent();
        Bundle b=intent.getExtras();
        byte[] name=b.getByteArray("name");
        
//      String name=(String) intent.getCharSequenceExtra("name");
        Log.v("name", new String(name));
    }
}
要用到的界面文件main.xml:
main<?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/btn_change"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="@string/btn_text"
    	android:onClick="onClickButton"
    	>
    </Button>

</LinearLayout>

要用到的界面文件newactivity.xml:

main<?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/activity_text"
    />

</LinearLayout>

公共资源文件:

main<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, A25Test!</string>
    <string name="app_name">A25Test</string>
    
    <string name="activity_text">New Activity</string>
    <string name="btn_text">Change</string>
</resources>
显示结果如下图:
VOLSXSUBO3I$W3NK)6NY20I