两种方法:
 
1、依赖android.os.Build中的信息。如果使用普通的android sdk,那么 Build.PRODUCT == "sdk";如果使用了 google api sdk,那么 Build.PRODUCT == "google_sdk"

 
2、模拟器中 Settings.Secure.ANDROID_ID == "", 但在android 2.2 中有个bug,所有设备的 android_id 都是 9774d56d682e549c
 
代码如下:
public boolean isEmulator() {
    String android_id = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);
    Log.d(TAG+"isEmulator","ANDROID_ID: "+android_id);
    Log.d(TAG+"isEmulator","Build.PRODUCT: "+Build.PRODUCT); 
    boolean inEmulator = TextUtils.isEmpty(android_id) || "google_sdk".equals( Build.PRODUCT ) || "sdk".equals(Build.PRODUCT);            
    return inEmulator;
}