Google发布了新的4.4版本,在 /packages/apps/目录下,发现多了一个Camera2 目录,原来 从android4.4开始,Google又把 Camera 和 Gallery 独立成了两个应用。

虽然在Camera2 的 AndroidManifast 中定义的包名为:package="com.android.camera2"
但是,Camera2中所有class的包名还是"com.android.camera",就是说class的包名,google并没有去改变。

在4.4的gallery2源码中,会发现多了一个class:CameraActivity ,这个activity之前是没有的。CameraActivity 的实现很简单,代码如下:


/** Trampoline activity that launches the new Camera activity defined in IntentHelper. */
public class CameraActivity extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
Intent intent= IntentHelper.getCameraIntent(CameraActivity.this);
// Since this is being launched from a homescreen shorcut,
// it's already in a new task. Start Camera activity and
// reset the task to its initial state if needed.
intent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
startActivity(intent);
finish();
}
}



IntentHelper 也是一个新加的class,我们看一下IntentHelper的实现,也很简单:

public class IntentHelper {

public static Intent getCameraIntent(Context context) {
return new Intent(Intent.ACTION_MAIN)
.setClassName("com.android.camera2", "com.android.camera.CameraActivity");
}

public static Intent getGalleryIntent(Context context) {
return new Intent(Intent.ACTION_MAIN)
.setClassName("com.android.gallery3d", "com.android.gallery3d.app.GalleryActivity");
}
}


getCameraIntent方法中,实际上是调用了com.android.camera2的CameraActivity,这样就实现了从gallery到独立的camera的跳转


另外一个问题:在4.4的源码中,依然保留了原来的Camera目录,就是说Camera和Camera2目录是同时存在的。但是通过察看Gallery2的Android.mk可知,Gallery的mk中去掉了之前的配置:

LOCAL_SRC_FILES += $(call all-java-files-under, ../Camera/src)
LOCAL_RESOURCE_DIR += packages/apps/Camera/res


也就是说,在4.4中Gallery并没有编译原来的Camera,而是调用了独立的app Camera2

更多相关文章

  1. eclipse查看android源码包(eclipse导入android源码包)
  2. GLSurfaceView 基本使用与源码解析
  3. Android中GUI系统的Event路由机制
  4. 简单的音频播放功能MediaPlayer使用中所遇到的坑。
  5. 我的Android进阶之旅------>Android通过调用Webservice实现天气
  6. Mac OSX 下 手动更新 Android(安卓)Studio
  7. ContentProvider的工作过程
  8. 【Android(安卓)Native Code开发系列】六 一个Native Service的
  9. Android(安卓)快速调用系统自带程序发送彩信实现

随机推荐

  1. Android(安卓)TextView设置中文粗体
  2. 在线升级Android应用程序完善版
  3. 初识ViewPager【Android】
  4. android studio 使用getActionBar返回NUL
  5. Android优化技巧
  6. Android汉字转换成拼音
  7. Android中如何一次性finish掉以前打开的
  8. Android仿QQ空间
  9. Ubuntu 14 配置Android(安卓)Studio的快
  10. Android(安卓)TTS实现简单阅读器(一)