安卓桌面图标管理手机桌面空白地方点一下就可以出现图标嘛

后使用快捷导航没有帐号?
只需一步,快速开始
查看: 720|回复: 9
在线时间99 小时经验值197 最后登录注册时间帖子阅读权限40UID2166448
高中生, 积分 197, 距离下一级还需 3 积分
TA的每日心情无聊 17:35签到天数: 1 天[LV.1]初来乍到
G币88 最后登录注册时间
马上注册,结交更多机友,下载更多应用,让你轻松玩转手机。
已有帐号?   下载游戏和软件,请【】进入机锋市场!
昨天装软件的时候,把桌面图标天天静听(4*2)的快捷方式删掉了,结果那块区域就什么图标都放不上去了,反复试都没用,重启手机也没用,移动图标到别的区域都是绿底的,都能放图标,就是那个快捷方式删掉的地方什么图标都放不上,图标移动过去就是灰色的底,放快捷方式也不行,求懂的大大指点一下,谢谢先。。。。
在线时间99 小时经验值197 最后登录注册时间帖子阅读权限40UID2166448
高中生, 积分 197, 距离下一级还需 3 积分
TA的每日心情无聊 17:35签到天数: 1 天[LV.1]初来乍到
G币88 最后登录注册时间
没人会阿???
在线时间782 小时经验值629 最后登录注册时间帖子阅读权限60UID1605587
大学本科, 积分 629, 距离下一级还需 71 积分
TA的每日心情衰 10:50签到天数: 8 天[LV.3]偶尔看看II
G币823 最后登录注册时间
清楚桌面数据。。。。。桌面所有东西将被清楚
在线时间194 小时经验值219 最后登录注册时间帖子阅读权限50UID811617
大学专科, 积分 219, 距离下一级还需 181 积分
该用户从未签到
G币578 最后登录注册时间
遇到过同样问题,当时有多个原插件处出现这种情况,最后恢复出厂状态才解决
在线时间194 小时经验值219 最后登录注册时间帖子阅读权限50UID811617
大学专科, 积分 219, 距离下一级还需 181 积分
该用户从未签到
G币578 最后登录注册时间
3楼的怎样清除桌面数据的
在线时间638 小时经验值939 最后登录注册时间帖子阅读权限70UID1375172
学士, 积分 939, 距离下一级还需 161 积分
该用户从未签到
G币362 最后登录注册时间
设置-应用程序-桌面-清楚数据
在线时间1325 小时经验值1959 最后登录注册时间帖子阅读权限90UID1686483
硕士, 积分 1959, 距离下一级还需 541 积分
TA的每日心情慵懒 18:21签到天数: 2 天[LV.1]初来乍到
G币2701 最后登录注册时间
推荐你先删除天天动听试试,删了也不行的话,就按6楼说的做,在程序列表里找到索尼爱立信桌面,点开然后清除数据,清除后桌面会恢复到最初的样子
在线时间1028 小时经验值2865 最后登录注册时间帖子阅读权限100UID4770606
博士, 积分 2865, 距离下一级还需 635 积分
该用户从未签到
G币802 最后登录注册时间
{:122_369:}刷机. 或者卸载那个软件 再安装&&很多时候都是下载不稳定 导致以后用的不好
在线时间99 小时经验值197 最后登录注册时间帖子阅读权限40UID2166448
高中生, 积分 197, 距离下一级还需 3 积分
TA的每日心情无聊 17:35签到天数: 1 天[LV.1]初来乍到
G币88 最后登录注册时间
搞定了,重装天天静听就可以了,谢谢楼上各位大大帮忙啊~~
在线时间55 小时经验值144 最后登录注册时间帖子阅读权限40UID556212
高中生, 积分 144, 距离下一级还需 56 积分
该用户从未签到
G币195 最后登录注册时间
设置-应用程序-桌面-清楚数据
来了就来了
Powered by我的电脑桌面怎么成这样了,右键随便点击一处空白地方就出现这个。左键点一个图标前面所有的图标就都选上_百度知道电脑桌面一片空白不显示图标的处理方法
电脑桌面一片空白不显示图标的处理方法
电脑桌面一片空白不显示图标的处理方法
&&&& 当桌面一片空白不显示图标,而且通过在桌面空白处单击鼠标右键,通过点击右键菜单“排列图标”下的“显示桌面图标”无效时,可以按以下方法处理:
&1、当遇到桌面上一个图标都没有的情形时,可以先打开任务管理器(按下“Ctrl+Alt+Del”组合键即可打开),点击“文件”→“新建任务”,在打开的“创建新任务”对话框中输入“explorer.exe”,单击“确定”按钮后,稍等一下就可以见到桌面图标了。
2、如果上述的创建新任务时提示说找不到explorer.exe文件,说明该文件被删除了,你可以用U盘到其它电脑的C:\WINDOWS文件夹中复制explorer.exe文件到你的电脑上的C:\WINDOWS文件夹中。不过,因为explorer.exe进程没有启动,不能用常规方法进行复制。复制方法:先到其它的电脑上将explorer.exe复制到U盘上,然后将U盘插到你的电脑上,按“Ctrl+Alt+Del”组合键打开“任务管理器”,点击“文件”→“新建任务”,在打开的“创建新任务”对话框中点击“浏览(B)...”按钮,在出现的“浏览”对话框中定位到U盘的存储explorer.exe的文件夹,找到explorer.exe文件,右键单击该文件选择“复制(C)”,然后再定位到C:\WINDOWS文件夹,右键单击空白出选择“粘贴(P)”即可,再按前一步的方法创建explorer.exe任务即可显示图标。
你也可以插入Win XP系统安装光盘,用上述相同的方法将光盘上I386文件夹中的EXPLORER.EX_文件复制到C:\WINDOWS文件夹中,然后右键单击EXPLORER.EX_文件选择“重命名(M)”将其改名为explorer.exe即可。
3、用以上方法操作后,在下次进入系统时,很可能还是看不到桌面图标。这说明上面的方法只能“治标”,不能“治本”。要彻底解决这个问题,可以试试以下方法:
单击“开始→运行”,在打开的“运行”对话框中输入“regedit”(引号不要输入),按“确定”或回车键Enter,打开注册表编辑器,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon,然后查看该分支下的Shell值是否为“Explorer.exe”。如果不是,请手动修改为“Explorer.exe”。
一般情况下,用上面的方法应该就可以解决掉桌面无图标的问题了。但是不同问题要不同对待,如果真的是由于病毒破坏造成的,这个方法就起不到什么作用了。这时你要做的就是杀毒,或者重做系统了。
发表评论:
馆藏&23158
TA的推荐TA的最新馆藏[转]&[转]&[转]&Android桌面全面剖析_手机吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:2,424,379贴子:
Android桌面全面剖析收藏
首先来说说我为什么写这篇文章,最近公司要我负责搞Launcher,网上一查这方面的资料比较少,并且不全,研究起来相当困难,所以就写了这篇文章,希望对大家有帮助。这篇文章是相当长的,希望读者能耐心读下去,实际上也花了我很长时间来写。好了闲话少说,我们切入正题。
这篇文章我会讲以下Launcher内容:
UI总体架构
Res下的Layout
Res下的Xml文件
Manifest文件
常用类介绍
widget添加过程
celllayout的介绍
UI总体架构
Home screen可以说是一个手机的最重要应用,就像一个门户网站的首页,直接决定了用户的第一印象。下面对home screen做一简要分析。home screen的代码位于packages/apps/Launcher目录。从文件launcher.xml,workspace_screen.xml可获知home screen的UI结构如下图所示:
整个homescreen是一个包含三个child view的FrameLayout(com.android.launcher.DragLayer)。 第一个child就是桌面com.android.launcher.Workspace。这个桌面又包含三个child。每个child就对应一个桌面。这就是你在Android上看到的三个桌面。每个桌面上可以放置下列对象:应用快捷方式,appwidget和folder。第二个child是一个SlidingDrawer控件,这个控件由两个子控件组成。一个是com.android.launcher.HandleView,就是Android桌面下方的把手,当点击这个把手时,另一个子控件,com.android.launcher.AllAppsGridView就会弹出,这个子控件列出系统中当前安装的所有类型为category.launcher的Activity。第三个child是com.android.launcher.DeleteZone。当用户在桌面上长按一个widget时,把手位置就会出现一个垃圾桶形状的控件,就是这个控件。在虚拟桌面上可以摆放四种类型的对象: 1. ITEM_SHORTCUT,应用快捷方式 2. ITEM_APPWIDGET,app widget 3. ITEM_LIVE_FOLDER,文件夹 4. ITEM_WALLPAPER,墙纸。
类AddAdapter(AddAdapter.java)列出了这四个类型对象。当用户在桌面空白处长按时,下列函数序列被执行: Launcher::onLongClick --& Launcher::showAddDialog --& Launcher::showDialog(DIALOG_CREATE_SHORTCUT); --& Launcher::onCreateDialog --& Launcher::CreateShortcut::createDialog:这个函数创建一个弹出式对话框,询问用户是要添加什么(快捷方式,appwidget, 文件夹和墙纸)其内容就来自AddAdapter。类Favorites(LauncherSettings.java)和类LauncherProvider定义了一个content provider,用来存储桌面上可以放置的几个对象,包括shortcut, search和clock等。类DesktopItemsLoader负责将桌面上所有的对象从content provider中提取。 线程private ApplicationsLoader mApplicationsLoader负责从包管理器中获取系统中安装的应用列表。(之后显示在AllAppsGridView上)。ApplicationsLoader::run实现:1)通过包管理器列出系统中所有类型为Launcher,action为MAIN的activity; 2)对每一个Activity,
a) 将Activity相关元数据信息,如title, icon, intent等缓存到appInfoCache;
b) 填充到ApplicationsAdapter 中。填充过程中用到了一些小技巧,每填充4(UI_NOTIFICATION_RATE)个activity更新一下相应view。在Launcher::onCreate中,函数startLoaders被调用。而该函数接着调用loadApplications和loadUserItems,分别获取系统的应用列表,以及显示在桌面上的对象列表(快捷方式,appwidget,folder等)。Launcher上排列的所有应用图标由AllAppsGridView对象呈现。这个对象是一个GridView。其对应的Adapter是ApplicationsAdapter,对应的model则是ApplicationInfo数组。数组内容是由ApplicationsLoader装载的。private class ApplicationsLoader implements Runnable。 由Launcher中的AndroidManifest.xml可以看出整个Launcher的代码结构。首先,是一些权限的声明。例如:
view plaincopy to clipboardprint?&intent-filter&
&action android:name="android.intent.action.MAIN" /&
&category android:name="android.intent.category.HOME"/&
&category android:name="android.intent.category.DEFAULT" /&
&category android:name="android.intent.category.MONKEY" /& &/intent-filter&
[c-sharp] view plaincopyprint?&intent-filter&
&action android:name="android.intent.action.MAIN" /&
&category android:name="android.intent.category.HOME"/&
&category android:name="android.intent.category.DEFAULT" /&
&category android:name="android.intent.category.MONKEY" /& &/intent-filter&
上面这段代码就标志着它是开机启动后Home的Activity。通过Launcher.java中onCreat()的分析我们可以大致把握屏幕的主要活动:
view plaincopy to clipboardprint?protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//把xml文件的内容实例化到View中
mInflater = getLayoutInflater();
//监听应用程序控件改变事件
mAppWidgetManager = AppWidgetManager.getInstance(this);
mAppWidgetHost = new LauncherAppWidgetHost(this, APPWIDGET_HOST_ID);
mAppWidgetHost.startListening();
// 用于调试?
if (PROFILE_STARTUP) {
android.os.Debug.startMethodTracing("/sdcard/launcher");
//监听locale,mcc,mnc是否改变,如果改变,则重写新配置
//mcc:mobile country code(国家代码China 460); mnc:mobile network code(网络代码)
checkForLocaleChange();
/*This allows such applications to have a virtual wallpaper that is larger than the physical screen, matching the size of their workspace.*/
setWallpaperDimension();
//显示主屏幕UI元素,workspace,slidingdrawer(handleview and appgridview),deletezone
setContentView(R.layout.launcher);
//Finds all the views we need and configure them properly.
//完成workspace,slidingdrawer,deletezone的各种事件操作和监听
setupViews();
//Registers various intent receivers.
//允许其他应用对本应用的操作
registerIntentReceivers();
//Registers various content observers.
//例如,注册一个内容观察者跟踪喜爱的应用程序
registerContentObservers();
//重新保存前一个状态(目的??)
mSavedState = savedInstanceS
restoreState(mSavedState);
if (PROFILE_STARTUP) {
android.os.Debug.stopMethodTracing();
//Loads the list of installed applications in mApplications.
if (!mRestoring) {
startLoaders();
// For handling default keys??
mDefaultKeySsb = new SpannableStringBuilder();
Selection.setSelection(mDefaultKeySsb, 0);
[c-sharp] view plaincopyprint?protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//把xml文件的内容实例化到View中
mInflater = getLayoutInflater();
//监听应用程序控件改变事件
mAppWidgetManager = AppWidgetManager.getInstance(this);
mAppWidgetHost = new LauncherAppWidgetHost(this, APPWIDGET_HOST_ID);
mAppWidgetHost.startListening();
// 用于调试?
if (PROFILE_STARTUP) {
android.os.Debug.startMethodTracing("/sdcard/launcher");
//监听locale,mcc,mnc是否改变,如果改变,则重写新配置
//mcc:mobile country code(国家代码China 460); mnc:mobile network code(网络代码)
checkForLocaleChange();
/*This allows such applications to have a virtual wallpaper that is larger than the physical screen, matching the size of their workspace.*/
setWallpaperDimension();
//显示主屏幕UI元素,workspace,slidingdrawer(handleview and appgridview),deletezone
setContentView(R.layout.launcher);
//Finds all the views we need and configure them properly.
//完成workspace,slidingdrawer,deletezone的各种事件操作和监听
setupViews();
//Registers various intent receivers.
//允许其他应用对本应用的操作
registerIntentReceivers();
//Registers various content observers.
//例如,注册一个内容观察者跟踪喜爱的应用程序
registerContentObservers();
//重新保存前一个状态(目的??)
mSavedState = savedInstanceS
restoreState(mSavedState);
if (PROFILE_STARTUP) {
android.os.Debug.stopMethodTracing();
//Loads the list of installed applications in mApplications.
if (!mRestoring) {
startLoaders();
// For handling default keys??
mDefaultKeySsb = new SpannableStringBuilder();
Selection.setSelection(mDefaultKeySsb, 0);
方法onActivityResult():完成在workspace上增加shortcut,appwidge和Livefolder;方法onSaveInstantceState()和onRestoreInstanceState():为了防止Sensor、Land和Port布局自动切换时数据被置空,通过onSaveInstanceState方法可以保存当前窗口的状态,在即将布局切换前将当前的Activity压入历史堆栈。如果我们的Activity在后台没有因为运行内存吃紧被清理,则切换时回触发onRestoreIntanceState()。(2)WallpaperChooser:设置墙纸。同理我们从onCreat()作为入口来分析这个活动的主要功能。view plaincopy to clipboardprint?public void onCreate(Bundle icicle) {
super.onCreate(icicle);
//设置允许改变的窗口状态,需在 setContentView 之前调用
requestWindowFeature(Window.FEATURE_NO_TITLE);
/ /添加墙纸资源,将资源标识符加入到动态数组中
findWallpapers();
//显示墙纸设置屏幕的UI元素,Imageview,Gallery and Button(LinearLayout)
setContentView(R.layout.wallpaper_chooser);
//图片查看功能的实现
mGallery = (Gallery) findViewById(R.id.gallery);
mGallery.setAdapter(new ImageAdapter(this));
mGallery.setOnItemSelectedListener(this);
mGallery.setCallbackDuringFling(false);
//Button事件监听,点击选择setWallpaper(Resid)
findViewById(R.id.set).setOnClickListener(this);
mImageView = (ImageView) findViewById(R.id.wallpaper);
[c-sharp] view plaincopyprint?public void onCreate(Bundle icicle) {
super.onCreate(icicle);
//设置允许改变的窗口状态,需在 setContentView 之前调用
requestWindowFeature(Window.FEATURE_NO_TITLE);
/ /添加墙纸资源,将资源标识符加入到动态数组中
findWallpapers();
//显示墙纸设置屏幕的UI元素,Imageview,Gallery and Button(LinearLayout)
setContentView(R.layout.wallpaper_chooser);
//图片查看功能的实现
mGallery = (Gallery) findViewById(R.id.gallery);
mGallery.setAdapter(new ImageAdapter(this));
mGallery.setOnItemSelectedListener(this);
mGallery.setCallbackDuringFling(false);
//Button事件监听,点击选择setWallpaper(Resid)
findViewById(R.id.set).setOnClickListener(this);
mImageView = (ImageView) findViewById(R.id.wallpaper);
(3)default_searchable对于home中任意的Acitivty,使能系统缺省Search模式,这样就可以使用android系统默认的search UI。 (4)InstallShortcutReceiver:继承自BroadcastReceiver,重写onReceier()方法,对于发送来的Broadcast(这里指Intent)进行过滤(IntentFilt)并且响应(这里是InstallShortcut())。这里分析下onReceive():view plaincopy to clipboardprint?&!-- Enable system-default search mode for any activity in Home --&
&!-- Intent received used to install shortcuts from other applications --&
public void onReceive(Context context, Intent data) {
//接受并过滤Intent
if (!ACTION_INSTALL_SHORTCUT.equals(data.getAction())) {
//获取屏幕
int screen = Launcher.getScreen();
//安装快捷方式
if (!installShortcut(context, data, screen)) {
//如果屏幕已满,搜寻其他屏幕
for (int i = 0; i & Launcher.SCREEN_COUNT; i++) {
if (i != screen && installShortcut(context, data, i))
[c-sharp] view plaincopyprint?&!-- Enable system-default search mode for any activity in Home --&
&!-- Intent received used to install shortcuts from other applications --&
public void onReceive(Context context, Intent data) {
//接受并过滤Intent
if (!ACTION_INSTALL_SHORTCUT.equals(data.getAction())) {
//获取屏幕
int screen = Launcher.getScreen();
//安装快捷方式
if (!installShortcut(context, data, screen)) {
//如果屏幕已满,搜寻其他屏幕
for (int i = 0; i & Launcher.SCREEN_COUNT; i++) {
if (i != screen && installShortcut(context, data, i))
其中IntallShortcut()方法:首先,对传入的坐标进行判断(findEmptyCell()),如果是空白位置,则可以放置快捷方式;其次,缺省情况下,我们允许创建重复的快捷方式,具体创建过程(addShortcut())就是把快捷方式的信息传入数据库(addItemToDatabase())。(5)UninstallShortcutReceiver:同理,UninstallShortcutReceiver()继承自BroadcastReceiver(),实现onReceiver()方法。定义一个ContentResolver对象完成对数据库的访问和操作(通过URI定位),进而删除快捷方式 。 (6)LauncherProvider:继承自ContentProvider(),主要是建立一个数据库来存放HomeScreen中的数据信息,并通过内容提供者来实现其他应用对launcher中数据的访问和操作。重写了ContentProvider()中的方法:getType():返回数据类型。如果有自定义的全新类型,通过此方法完成数据的访问。query():查询数据。传入URI,返回一个Cursor对象,通过Cursor完成对数据库数据的遍历访问。Insert():插入一条数据。bulkInsert():大容量数据的插入。delete():删除一条数据。update():更改一条数据。sendNotify():发送通知。类DatabaseHelper继承自一个封装类SQLiteOpenHelper(),方便了数据库的管理和维护。重写的方法:onCreate():创建一个表。其中db.execSQL()方法执行一条SQL语句,通过一条字符串执行相关的操作。当然,对SQL基本语句应该了解。onUpgrade():升级数据库。对HomeScreen数据库操作的一些方法:addClockWidget(),addSearchWidget,addShortcut,addAppShortcut,loadFavorites(),launcherAppWidgetBinder(),convertWidget(),updateContactsShortcuts(),copyFromCursor()补充:类AddAdapter(AddAdapter.java)列出了这四个类型对象。当用户在桌面空白处长按时,下列函数序列被执行:Launcher::onLongClick --&Launcher::showAddDialog --&Launcher::showDialog(DIALOG_CREATE_SHORTCUT); --&Launcher::onCreateDialog --&Launcher::CreateShortcut::createDialog:这个函数创建一个弹出式对话框,询问用户是要添加什么(快捷方式,appwidget, 文件夹和墙纸)其内容就来自AddAdapter。类DesktopItemsLoader负责将桌面上所有的对象从content provider中提取。线程private ApplicationsLoader mApplicationsLoader负责从包管理器中获取系统中安装的应用列表。(之后显示在AllAppsGridView上)。ApplicationsLoader::run实现:1)通过包管理器列出系统中所有类型为Launcher,action为MAIN的activity;2)对每一个Activity,
a) 将Activity相关元数据信息,如title, icon, intent等缓存到appInfoCache;
b) 填充到ApplicationsAdapter 中。填充过程中用到了一些小技巧,每填充4(UI_NOTIFICATION_RATE)个activity更新一下相应view。在Launcher::onCreate中,函数startLoaders被调用。而该函数接着调用loadApplications和loadUserItems,分别获取系统的应用列表,以及显示在桌面上的对象列表(快捷方式,appwidget,folder等)。Launcher上排列的所有应用图标由AllAppsGridView对象呈现。这个对象是一个GridView。其对应的Adapter是ApplicationsAdapter,对应的model则是ApplicationInfo数组。数组内容是由ApplicationsLoader装载的。
Res下的Layout
现在我们来看res目录里的布局文件,布局文件都放在layout*目录里。本以为launcher的layout都放在layout目录里,由于屏幕放置方式的不同会对桌面造成一定的影响,所以google的Android项目组就决定因地制宜。比如当你横着放置屏幕的时候就会使用layout-land目录里的文件来对系统launcher进行布局,竖着屏幕的时候会使用layout-port内的布局文件来对launcher来布局。横竖屏幕切换之际,会重新进行布局。那我们就以layout-land目录为例来看吧。layout-land/launcuer.xml
只需要在res目录下创建不同的layout文件夹,
比如layout-640x360,layout-800x480,
所有的layout文件在编译之后都会写入R.java里,
而系统会根据屏幕的大小自己选择合适的layout进行使用 --&
&!--设置intent-filter可以先启动该Activity --&
android:name="Launcher"
android:launchMode="singleTask"
android:clearTaskOnLaunch="true"
android:stateNotNeeded="true"
android:theme="@style/Theme"
android:screenOrientation="nosensor"
android:windowSoftInputMode="stateUnspecified|adjustPan"&
&intent-filter&
&action android:name="android.intent.action.MAIN" /&
&category android:name="android.intent.category.HOME" /&
&category android:name="android.intent.category.DEFAULT" /&
&category android:name="android.intent.category.MONKEY"/&
&/intent-filter&
&/activity&
&!--设置Wallpapaer的Activity --&
android:name="WallpaperChooser"
android:label="@string/pick_wallpaper"
android:icon="@drawable/ic_launcher_wallpaper"
android:screenOrientation="nosensor"
android:finishOnCloseSystemDialogs="true"&
&intent-filter&
&action android:name="android.intent.action.SET_WALLPAPER" /&
&category android:name="android.intent.category.DEFAULT" /&
&/intent-filter&
&/activity&
&!--安装快捷方式的Intent --&
&!-- Intent received used to install shortcuts from other applications --&
android:name="InstallShortcutReceiver"
android:permission="com.android.zkx_launcher.permission.INSTALL_SHORTCUT"&
&intent-filter&
&action android:name="com.android.zkx_launcher.action.INSTALL_SHORTCUT" /&
&/intent-filter&
&/receiver&
&!--卸载快捷方式的Intent --&
&!-- Intent received used to uninstall shortcuts from other applications --&
android:name="UninstallShortcutReceiver"
android:permission="com.android.zkx_launcher.permission.UNINSTALL_SHORTCUT"&
&intent-filter&
&action android:name="com.android.zkx_launcher.action.UNINSTALL_SHORTCUT" /&
&/intent-filter&
&/receiver&
&!-- 供应商信息--&
&!-- The settings provider contains Home's data, like the workspace favorites --&
android:name="LauncherProvider"
android:authorities="com.android.zkx_launcher.settings"
android:writePermission="com.android.zkx_launcher.permission.WRITE_SETTINGS"
android:readPermission="com.android.zkx_launcher.permission.READ_SETTINGS" /&
&/application&
&/manifest&
Res下的Xml文件
Res/xml下有两个xml文件,default_workspace.xml&&default_wallpaper.xml
Andorid这个默认壁纸不在launcher里,在源码中frameworks/base/core/res/res /drawable/default_wallpaper.jpg.另frameworks/base/core/res/res路径下包含很多default资源。如果需要修改默认设置可以尝试到这里来找一找&favorites xmlns:launcher=""&
Far-left screen [0] --&
Left screen [1] --&
&appwidget
launcher:packageName="com.google.android.apps.genie.geniewidget"
launcher:className="com.google.android.apps.genie.geniewidget.miniwidget.MiniWidgetProvider"
launcher:screen="1"
launcher:x="0"
launcher:y="0"
launcher:spanX="4"
launcher:spanY="1" /&#天气新闻时钟插件#packageName:widget的packageName#className :实现 widget的 receiver 类的名称. #launcher:container 放置的位 置(只能为desktop)#screen : 在哪一个screen添加#x,y: 在screen中的位置#launcher:spanX:在x方向上所占格数#launcher:spanY:在y方向上所占格数
Middle screen [2] --&
launcher:screen="2"
launcher:x="0"
launcher:y="0" /&
&appwidget
launcher:packageName="com.android.protips"
launcher:className="com.android.protips.ProtipWidget"
launcher:screen="2"
launcher:x="0"
launcher:y="1"
launcher:spanX="4"
launcher:spanY="1 " /&
Right screen [3] --&
&appwidget
launcher:packageName="com.android.music"
launcher:className="com.android.music.MediaAppWidgetProvider"
launcher:screen="3"
launcher:x="0"
launcher:y="0"
launcher:spanX="4"
launcher:spanY="1" /&
&appwidget
launcher:packageName="com.android.vending"
launcher:className="com.android.vending.MarketWidgetProvider"
launcher:screen="3"
launcher:x="1"
launcher:y="1"
launcher:spanX="2"
launcher:spanY="2" /&#电子市场Android Market
Far-right screen [4] --&&/favorites&
Manifest文件
Launcher的AndroidManifest.xml文件有很多特殊性,分析一下就会理解整个程序的大概结构。代码如下:&manifestxmlns:android=""
package="net.sunniwell.launcher"
android:versionCode="1"android:versionName="1.0.1"&关于自定义权限,这是很好的例子,其他apk程序要想使用Launcher的功能必须添加这些权限,而这些权限都是在这里声明的。这个是安装快捷方式的权限定义:&permission
android:name="com.android.launcher.permission.INSTALL_SHORTCUT"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
android:protectionLevel="normal"
android:label="@string/permlab_install_shortcut"
android:description="@string/permdesc_install_shortcut"/&这个是卸载快捷方式的权限定义:
&permission
android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
android:protectionLevel="normal"
android:label="@string/permlab_uninstall_shortcut"
android:description="@string/permdesc_uninstall_shortcut"/&这个是读取launcher.db内容的权限定义:&permission
android:name="net.sunniwell.launcher.permission.READ_SETTINGS"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
android:protectionLevel="normal"
android:label="@string/permlab_read_settings"
android:description="@string/permdesc_read_settings"/&这个是修改和删除launcher.db内容的权限定义:&permission
android:name="net.sunniwell.launcher.permission.WRITE_SETTINGS"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
android:protectionLevel="normal"
android:label="@string/permlab_write_settings"
android:description="@string/permdesc_write_settings"/&这些是Launcher的权限声明,通过这些就能看出launcher的大概功能了:打电话权限:&uses-permissionandroid:name="android.permission.CALL_PHONE"/&使用状态栏权限:
&uses-permissionandroid:name="android.permission.EXPAND_STATUS_BAR"/&获取当前或最近运行的任务的信息的权限:&uses-permissionandroid:name="android.permission.GET_TASKS"/&读取通信录权限:&uses-permissionandroid:name="android.permission.READ_CONTACTS"/&设置壁纸权限:&uses-permissionandroid:name="android.permission.SET_WALLPAPER"/&允许程序设置壁纸hits的权限:&uses-permissionandroid:name="android.permission.SET_WALLPAPER_HINTS"/& 使用震动功能权限:&uses-permissionandroid:name="android.permission.VIBRATE"/&修改删除launcher.db内容权限:&uses-permissionandroid:name="android.permission.WRITE_SETTINGS"/&绑定widget权限:&uses-permissionandroid:name="android.permission.BIND_APPWIDGET"/&读取launcher.db内容权限:&uses-permissionandroid:name="net.sunniwell.launcher.permission.READ_SETTINGS"/&修改删除launcher.db内容权限:&uses-permissionandroid:name="net.sunniwell.launcher.permission.WRITE_SETTINGS"/&读写外部存储设备权限:&uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"&&/uses-permission&
&application
android:name="LauncherApplication"
activity应该运行的进程的名字:android:process="android.process.acore"
android:label="@string/application_name"
android:icon="@drawable/swicon"&&activity
android:name="Launcher"
是否android:launchMode="singleTask"
android:clearTaskOnLaunch="true"
这个activity是否在被杀死或者重启后能恢复原来的状态:android:stateNotNeeded="true"
android:theme="@style/Theme"
android:screenOrientation="landscape"
android:windowSoftInputMode="stateUnspecified|adjustPan"&&intent-filter&&actionandroid:name="android.intent.action.MAIN"/&&categoryandroid:name="android.intent.category.LAUNCHER"/&桌面应用的标记:&categoryandroid:name="android.intent.category.HOME"/&&categoryandroid:name="android.intent.category.DEFAULT"/&自动化测试工具Monkey的标记,待研究…&categoryandroid:name="android.intent.category.MONKEY"/&&/intent-filter&&/activity&选择壁纸的activity:&activity
android:name="WallpaperChooser"
android:label="@string/pick_wallpaper"
android:icon="@drawable/ic_launcher_gallery"&
设置壁纸的intent-filter:&intent-filter&&actionandroid:name="android.intent.action.SET_WALLPAPER"/&&categoryandroid:name="android.intent.category.DEFAULT"/&&/intent-filter&搜索的activity:&/activity&&!-- Enable system-default search mode for any activity in Home --&&meta-data
android:name="android.app.default_searchable"
android:value="*"/&安装快捷方式的广播接收器:&!-- Intent received used to install shortcuts from other applications --&&receiver
android:name=".InstallShortcutReceiver"
android:permission="com.android.launcher.permission.INSTALL_SHORTCUT"&&intent-filter&&actionandroid:name="com.android.launcher.action.INSTALL_SHORTCUT"/&&/intent-filter&&/receiver&&!-- Intent received used to uninstall shortcuts from other applications --&卸载快捷方式的广播接收器:&receiver
android:name=".UninstallShortcutReceiver"
android:permission="com.android.launcher.permission.UNINSTALL_SHORTCUT"&&intent-filter&&actionandroid:name="com.android.launcher.action.UNINSTALL_SHORTCUT"/&&/intent-filter&&/receiver&声明ContentProvider,用于对launcher.db操作:&!-- The settings provider contains Home's data, like the workspace favorites --&&provider
android:name="SWLauncherProvider"
android:authorities="net.sunniwell.launcher.settings"
android:writePermission="net.sunniwell.launcher.permission.WRITE_SETTINGS"
android:readPermission="net.sunniwell.launcher.permission.READ_SETTINGS"/&&/application&&uses-sdkandroid:minSdkVersion="4"/&&/manifest&说明:1.&manifest标签头部还应声明:android:sharedUserId="android.uid.shared",作用是获得系统权限,但是这样的程序属性只能在build整个系统时放进去(就是系统软件)才起作用,手动安装是没有权限的。
我真的是小白
这是要干嘛。楼主你为啥这么吊
技术贴果然没人顶
哦—————————女:我们玩接龙吧!男:好啊。
女:我爱你!男:你吗逼。女:……
——来自lumia925
还没到十五字的话再打几个
太长没看,顶楼主
再顶下楼主
虽然不明白卤煮在说什么,但是看起来好像很厉害的样子…
我想知道桌面的屏幕切换特效在哪个文件夹,就是划屏的效果   别惹哥! 否则,你会死的比打了主席的闺女还惨!
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 安卓桌面图标管理 的文章

 

随机推荐