2013-02-11 41 views
0

1st:min sdk > target sdk >target sdk编译器在创建android应用程序和比较编译器符合性级别时有什么区别?min sdk> target sdk>目标编译器在创建android应用程序时的差异

第二:确定目标sdk前。 4.2与Android设备有关,例如我用于开发的4.0.3 (Ice Cream Sandwich)

3rd:使用下面的代码创建使用Android 4.2作为新项目。我被通知了permgen空间。我有512M ..为什么?

这里是代码

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    credential = GoogleAccountCredential.usingOAuth2(this, DriveScopes.DRIVE); 
    startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER); 
    } 

    @Override 
    protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) { 
    switch (requestCode) { 
    case REQUEST_ACCOUNT_PICKER: 
     if (resultCode == RESULT_OK && data != null && data.getExtras() != null) { 
     String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME); 
     if (accountName != null) { 
      credential.setSelectedAccountName(accountName); 
      service = getDriveService(credential); 
      startCameraIntent(); 
     } 
     } 
     break; 
    case REQUEST_AUTHORIZATION: 
     if (resultCode == Activity.RESULT_OK) { 
     saveFileToDrive(); 
     } else { 
     startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER); 
     } 
     break; 
    case CAPTURE_IMAGE: 
     if (resultCode == Activity.RESULT_OK) { 
     saveFileToDrive(); 
     } 
    } 
    } 

    private void startCameraIntent() { 
    String mediaStorageDir = Environment.getExternalStoragePublicDirectory(
     Environment.DIRECTORY_PICTURES).getPath(); 
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()); 
    fileUri = Uri.fromFile(new java.io.File(mediaStorageDir + java.io.File.separator + "IMG_" 
     + timeStamp + ".jpg")); 

    Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); 
    startActivityForResult(cameraIntent, CAPTURE_IMAGE); 
    } 

    private void saveFileToDrive() { 
    Thread t = new Thread(new Runnable() { 
     @Override 
     public void run() { 
     try { 
      // File's binary content 
      java.io.File fileContent = new java.io.File(fileUri.getPath()); 
      FileContent mediaContent = new FileContent("image/jpeg", fileContent); 

      // File's metadata. 
      File body = new File(); 
      body.setTitle(fileContent.getName()); 
      body.setMimeType("image/jpeg"); 

      File file = service.files().insert(body, mediaContent).execute(); 
      if (file != null) { 
      showToast("Photo uploaded: " + file.getTitle()); 
      startCameraIntent(); 
      } 
     } catch (UserRecoverableAuthIOException e) { 
      startActivityForResult(e.getIntent(), REQUEST_AUTHORIZATION); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     } 
    }); 
    t.start(); 
    } 

    private Drive getDriveService(GoogleAccountCredential credential) { 
    return new Drive.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential) 
     .build(); 
    } 

    public void showToast(final String toast) { 
    runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
     Toast.makeText(getApplicationContext(), toast, Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    } 
} 

回答