【Android论文栏目提醒】:网学会员为需要Android论文的朋友们搜集整理了Android Launcher研究 - 培训资料相关资料,希望对各位网友有所帮助!
Android Launcher研究 一、图文详解手把手教你在Windows环境下下载
Android源码Launcher为例 大家好这篇文章我将教大家如何在Windows环境下下载
Android源码
Android 自2007年11月5号发布以来发展速度如此之快和它走开源的路是分不开的。
我们在开发中有什么不明白不清楚的直接把
Android 源码下下来研究就可以了看源代码将会让你提升很快 在这之前大家先熟悉俩个代码版本管理工具SVN以及Git。
SVNWindows环境下最常用的: svnsubversion是近年来崛起的版本管理工具是cvs的接班人。
目前绝大多数开源软件 都使用svn作为代码版本管理软件。
Git: Git 是用于 Linux 内核开发的版本控制工具。
与常用的版本控制工具 CVS Subversion 等不同它采用了分布式版本库的方式不必服务器端软件支持使源代码的发布和交流极其方便。
Git 的速度很快这对于诸如 Linux kernel 这样的大项目来说自然很重要。
Git 最为出色的是它的合并跟踪merge tracing能力。
而Google
Android的项目是基于Git进行版本管理的所以经常在Linux环境下开发的人就不用我多说了而大都数在Windows环境开发的人就比较陌生了。
那下面我就手把手教你如何在Windows环境下Git
Android源码。
第一步:Msysgit工具的下载这个是Google为Windows环境下开发的Git客户端程序: http://code.google.com/p/msysgit/ 下载地址如图: 第二步:安装Msysgit软件一直默认到底如下图: 第三步:建立一个文件夹用来存放Git下来的
Android 源码我这里以G:/
Android Src为例如下图: 第四步:右击
Android Src文件夹选择Git Bash出现如下图所示: 第五步:查找我们要下载源代码的地址。
Android的源代码是放在下面地址下: http://
android.git.kernel.org/ 这里以Launcher为例我们Ctrl F查找:输入Launcher如下图所示: 点击链接进入另一个页面: 第六步在Git Bash端输入如下命令命令格式如上图图示 git clone git://
android.git.kernel.org/platform/packages/apps/Launcher.git 在Receiving Objects: 100时候我们在G:/
Android Src/文件夹下多一个工程Launcher这正是我们所要的如下图所示: Ok通过以上的步骤我们就把
Android Launcher的源代码拿到手了下面就剩下你研究了 二、Launcher为何物究竟是干什么的 在上一节我讲了如何下载Launcher的教程今天这一节我将重点讲一下什么Launcher究竟它是什么神秘东东 Launcher俗称HomeScreen也就是我们启动
Android手机第一眼看到的应用程序而这个应用程序是比较特殊而且任务艰巨的。
它负责了我们除了应用本身操作以外的所有操作它负责了我们有几个桌面点击应用图标启动应用程序长时间按桌面出现上下文菜单 长时间按桌面的图标出现垃圾箱拖动应用图标重新定位等等一系列的操作。
我将截些图让大家更容易理解 图1开机画面Laucher的主界面 图2打开抽屉列出所有我们的所安装应用 图三长按图标抽屉变成垃圾箱了 图四手指向左滑动进入另一个桌面 我就先截这几个图让大家感受感受图2中我们列出的所有应用并不包括诸如LauncherWidget等应用是因为我们我们列出的应用仅仅是在AndroidManifest.xml配置文件有这样标记的应用如下代码: view plaincopy to clipboardprint 其中第56行是关键有了这两句你的应用程序才会被列出而Launcher特殊就是这个应用中唯一一个Activity是这样申明的如下代码 view plaincopy to clipboardprint 这里第11行起了作用了大家看出来Launcher与普通应用程序的区别了吗变成Home的时候当我们重新安装一个Launcher的时候我们按一下手机的HOME键会出现Launcher列表如下图: 图5Launcher列表 图6传说中的Launcher2 Ok今天就先说到这里大家有什么不明白的请留言我一定尽量准时答复.谢谢 三、列出所安装的应用点击进入相应的应用 大家好我今天给大家简单讲一下Launcher里如何列出所有安装的应用的我们点击Launcher的抽屉SlidingDrawer就会出现所有安装的应用列表当然WidgetLauncher本身除外.并且点击应用图标进入 相关应用。
我这里就先简单的用一个GridView来显示应用。
老样子我还会写一个简单的Demo让大家理解。
大家跟着我的步骤来。
第一步新建一个
Android工程命名为:Launcher. 第二步:修改main.xml布局文件代码如下只有一个GridView这里: view plaincopy to clipboardprint 第三步:新建一个application_layout.xml布局文件用来定义应用的图标和标题代码如下: view plaincopy to clipboardprint 第四步也就是核心了修改Launcher.java代码如下: view plaincopy to clipboardprint package com.tutor.launcher import java.util.Collections import java.util.List import
android.app.Activity import
android.content.ComponentName import
android.content.Context import
android.content.Intent import
android.content.pm.PackageManager import
android.content.pm.ResolveInfo import
android.os.Bundle import
android.view.LayoutInflater import
android.view.View import
android.view.ViewGroup import
android.widget.AdapterView import
android.widget.BaseAdapter import
android.widget.GridView import
android.widget.ImageView import
android.widget.TextView import
android.widget.AdapterView.OnItemClickListener public class Launcher extends Activity implements OnItemClickListener private GridView mGridView private Context mContext private PackageManager mPackageManager private List mAllApps public void onCreateBundle savedInstanceState super.onCreatesavedInstanceState setContentViewR.layout.main setupViews public void setupViews mContext Launcher.this mPackageManager getPackageManager mGridView GridViewfindViewByIdR.id.allapps bindAllApps mGridView.setAdapternew GridItemAdaptermContext mAllApps mGridView.setNumColumns4 mGridView.setOnItemClickListenerthis public void bindAllApps //这里是关键哦我们平时写的应用总有一个activity申明成这两个属性 //也就是应用的入口 Intent mainIntent new IntentIntent.ACTION_MAIN null mainIntent.addCategoryIntent.CATEGORY_LAUNCHER //符合上面条件的全部查出来并且排序 mAllApps mPackageManager.queryIntentActivitiesmainIntent 0 Collections.sortmAllApps new ResolveInfo.DisplayNameComparatormPackageManager //gridview点击事件点击进入相关应用 Override public void onItemClickAdapterView parent View view int position long id // TODO Auto-generated method stub ResolveInfo res mAllApps.getposition //该应用的包名和主Activity String pkg res.activityInfo.packageName String cls res.activityInfo.name ComponentName componet new ComponentNamepkg cls Intent i new Intent i.setComponentcomponet startActivityi //不明白BaseAdapter的用法 我高手进阶里有 private class GridItemAdapter extends BaseAdapter private Context context private List resInfo //构造函数 public GridItemAdapterContext cList res context c resInfo res Override public int getCount // TODO Auto-generated method stub return resInfo.size Override public Object getItemint position // TODO Auto-generated method stub return null Override public long getItemIdint position // TODO Auto-generated method stub return 0 Override public View getViewint position View convertView ViewGroup parent //不明白LayoutInflater的我
android高手进阶里有 convertView LayoutInflater.fromcontext .inflateR.layout.application_layout null ImageView app_icon ImageViewconvertView.findViewByIdR.id.app_icon TextView app_tilte TextViewconvertView.findViewByIdR.id.app_title ResolveInfo res resInfo.getposition app_icon.setImageDrawableres.loadIconmPackageManager app_tilte.setTextres.loadLabelmPackageManager.toString return convertView 第五步:运行以上工程得到的效果图如下: 图1.列出所有安装的应用. 图2.点击aQQ应用进入到相应的应用里。
OK今天就写到这里大家有什么不明白的地方可 以留言。
thx