LauncherLog

合集下载

在模拟器中调试Launcher模块代码

在模拟器中调试Launcher模块代码

在模拟器中调试Launcher模块:
1.把android源代码下packages包里的Launcher2作为一个android工程新建起来
2.为解决eclipse解析代码报错,右键工程点属性,新建该工程所需的库文件,并添加如下图所
示的三个classes.jar文件(分别是framework/search/runtime所需的)
3.在Order and Export标签中使新建的库文件排在最上面
4.卸载模拟器之前的Launcher,否则新建的Launcher工程无法运行.
打开终端,
adb remount
adb shell
cd system/app
rm Launcher2.apk (此命令执行完后模拟器主菜单界面会消失)
exit
adb uninstall uncher
5.执行新建的Launcher工程,操作主菜单界面就可以看到LOG了.
6.打开DDMS,在Devices标签下对应的模拟器里选要调试的包,点一下绿色的小蜘蛛,就可
以在代码里加断点来跟踪了.。

launcher默认桌面修改方法

launcher默认桌面修改方法

1.添加普通的应用程序:在../package/apps/VLauncher/res/xml下的default_workspace.xml文件中加入默认要放置的普通的应用程序。

加入的格式为:<favoritelauncher:packageName="... " //应用的packageNamelauncher:className="... " //应用启动时的第一个activitylauncher:container="..." //放置的位置launcher:screen="..." //放置在第几屏(放在workspace的时候需要,从0开始,0为第一屏,1为第二屏,以此类推...)launcher:x="..." //放置x方向的位置(在列中的位置)launcher:y="..."/> //放置y方向的位置(在行中的位置)packageName和className可以通过点击程序,然后在打印出的log中找到comp={...},例如如下信息:comp={com.estrongs.android.taskmanager/com.estrongs.android.ta skmanager.TaskManager}。

其中com.estrongs.android.taskmanager为packageName, com.estrongs.android.taskmanager.TaskManager为className。

container的值可以为”desktop”或者”bottombar”,当需要把应用显示在桌面上时值为desktop,当需要把程序添加在bottombar上时container的值为bottombar。

例如,要在worksapce的第二屏第二行第四列出处加入音乐播放器,则可以把如下的内容加到文件中:<favoritelauncher:packageName="android.rk.RockAudioPlayer"launcher:className="android.rk.RockAudioPlayer.RockAudioPlayer"launcher:screen=”1”launcher:container="desktop"launcher:x="3"launcher:y="1"/>2.添加widget在../package/apps/VLauncher/res/xml下的default_workspace.xml文件中加入默认要放置的普通的应用程序。

手把手教你开发安卓Launcher

手把手教你开发安卓Launcher

launcher,也就是android的桌面应用程序。

下图是android2.3的launcher应用程序:接下来我们要开发一个自己的launcher,使其替代系统的默认launcher。

怎样使我们的应用程序成为一个launcher?下面我们就新建一个叫做MyHome的工程,具体步骤略。

创建完工程后整个目录结构如下图:现在我们的AndroidManifest.xml文件这样的:<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="/apk/res/android"package="org.bangchui.myhome"android:versionCode="1"android:versionName="1.0"><application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MyHome"android:label="@string/app_name"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="UNCHER" /></intent-filter></activity></application></manifest>请注意<intent-filter></intent-filter>里面的内容。

Android的Launcher启动器中添加快捷方式及小部件实例

Android的Launcher启动器中添加快捷方式及小部件实例

Android的Launcher启动器中添加快捷⽅式及⼩部件实例前⾔:最近⼀直在看Launcher模块,经过差不多两个⽉学习,终于摸透了Launcher的⼀些主要功能实现,⽬前继续还处于摸索状态。

未看Launcher时,于我⽽⾔,只能膜拜,以为所有功能都是它实现的;⼊门后,才发现,Launcher的很多功能只是集成了框架/应⽤程序提供的功能。

很多陌⽣的东西,只有接触了才感叹:“oh ,原来是这样的!”添加快捷⽅式今天先给⼤家分享下Launcher如何实现添加快捷⽅式(Shortcut) ,后续会慢慢增加其他⽅⾯的功能,帮助⼤家“⼀叶⽽知秋”。

具体来说,Launcher中的快捷⽅式有两种类型:1 、"伪"快捷⽅式 —— 应⽤程序类型2 、"真"快捷⽅式 —— Activity具备<action/>为ACTION_CREATE_SHORTCUT的配置信息这两种类型的快捷⽅式是怎么勾搭在⼀起的,在下⾯⼤家通过代码⾃⼰理解,也不⽅便细说了。

知识点介绍:知识点⼀、ACTION_PICK_ACTIVITY使⽤说明,具体可以参考SDK Intent类功能:显⽰匹配附加值为EXTRA_INTENT的所有Activity,并将它们以列表呈现给⽤户。

当⽤户从该列表选中⼀项时,并不会启动该Activity(这与与ACTION_CHOOSER不同,此Action会启动⽤户选择的Activity),⽽是将该Activity的详细信息(可能包括Action、ComponentName、data信息等)以Intent对象返回给调⽤者(通常为onActivityResult⽅法)。

附加值:EXTRA_INTENT 显⽰所有匹配显⽰所有匹配附加值为EXTRA_INTENT的Activity,EXTRA_TITLE 作为显⽰列表即所有Activity的标题。

因此,根据ACTION_PICK_ACTIVITY的特性,真正地创建快捷⽅式需要两步⾛:第⼀步:发送ACTION_PICK_ACTIVITY以及EXTRA_INTENT,找到我们希望能创建快捷⽅式的Activity列表。

android系统从systemserver开始的launcher启动详细流程

android系统从systemserver开始的launcher启动详细流程

android系统启动流程——从systemserver开始的launcher目录1 概述: (2)2 systemserver工作内容分析 (4)2.1 SystemServer类简述 (4)2.2 ServerThread类简述 (4)3 ActivityManagerService工作内容分析 (6)3.1 ActivityManagerService之main (7)3.1.1创建ActivityManagerService实例 (7)3.1.2 创建ActivityThread实例,获取全局Context (8)3.1.3创建ActivityStackSupervisor实例 (10)3.1.4调用startRunning (10)3.2 ActivityManagerService之setSystemProcess (11)3.3. ActivityManagerService之setWindowManager (12)3.4 ActivityManagerService之systemready (12)3.4.1 启动所有Persistent属性的APK (13)3.4.2 启动launcher (14)4 ActivityStackSupervisor启动launcher (15)4.1首先回顾一下ActivityStackSupervisor实例的初始化 (15)4.2 进入ActivityStackSupervisor.resumeTopActivitiesLocked (16)4.3 进入ActivityStack.resumeTopActivityLocked (16)4.4 回到ActivityStackSupervisor.resumeHomeActivity。

(17)4.5 ActivityStackSupervisor.mProbeThread (17)4.6 ActivityStackSupervisor.mProbeHandler (18)4.7 回到ActivityManagerService.startHomeActivityLocked (18)4.8 ActivityStackSupervisor.startHomeActivity (19)4.9 ActivityStackSupervisor.startActivityUncheckedLocked (20)4.10 ActivityStack.startActivityLocked (21)4.11 ActivityStackSupervisor.resumeTopActivitiesLocked (22)4.12 ActivityStack.resumeTopActivityLocked (22)4.13 ActivityStackSupervisor.startSpecificActivityLocked (24)4.14 ActivityStackSupervisor.realStartActivityLocked (24)4.15 ActivityManagerService.startProcessLocked (25)5 Process类管理创建activity进程 (27)5.1 Process.start: (27)5.2Process.startViaZygote (28)5.3 zygoteSendArgsAndGetResult和openZygoteSocketIfNeeded (28)6 ActivityThread线程类分析 (30)6.1 ActivityThread.main分析 (30)6.1.1创建了looper对象和本线程绑定。

launcher的运行原理

launcher的运行原理

launcher的运行原理Launcher的运行原理主要涉及到以下几个方面:用户界面(UI)设计、操作系统接口(API)的使用、内存管理以及任务调度。

我将为您逐步解析其运行原理。

1. 用户界面(UI)设计:Launcher的主要作用是引导用户进入他们想要使用的应用程序或功能。

为此,Launcher通常会设计一个直观、易于使用的用户界面,包括图标、标签、按钮等元素,帮助用户快速找到并启动他们需要的应用程序。

2. 操作系统接口(API)的使用:Launcher依赖于操作系统的API来与底层系统进行交互。

这些API允许Launcher获取系统中的应用程序列表、启动应用程序、与应用程序进行通信等。

通过这些API,Launcher可以更好地适应不同的操作系统和设备,提供更加一致的用户体验。

3. 内存管理:Launcher需要有效地管理内存,以确保在多任务环境中能够快速启动应用程序并最小化资源占用。

Launcher通常会使用一种称为“缓存”的技术,将常用的数据和信息存储在内存中,以便在需要时快速访问。

此外,Launcher还会定期清理不再使用的内存,以防止内存泄漏和系统资源耗尽。

4. 任务调度:Launcher需要有效地调度和管理任务,以确保应用程序的启动和关闭不会影响系统的整体性能。

在启动应用程序时,Launcher通常会将其添加到后台任务队列中,以便在适当的时间启动。

在应用程序关闭时,Launcher会将其从任务队列中移除,以便系统可以更好地利用资源。

总的来说,Launcher的运行原理涉及到多个方面的技术,包括用户界面设计、操作系统接口的使用、内存管理和任务调度。

这些技术的综合运用使得Launcher能够提供流畅、高效的用户体验,帮助用户更轻松地使用各种应用程序。

希望以上回答对您有所帮助!。

Android中launcher的详细分析

Android中launcher的详细分析

Android中launcher的详细分析之前一度为如何判断当前所处的界面就是home主桌面而伤脑筋的,后来找到的方法也不是很理想,由此到现在看了launcher的分析,觉得很有帮助哈~这边给大家分享下哈~~~Linux kernel启动以后会通过app_main进程来初始化android Runtime Java运行环境,而zygote是Android的第一个进程。

所有的android的应用以及大部分系统服务都是通过zygote fork出来的子进程(我现在看到的只有native的service manager不是zygote fork出来的)。

在system server中启动的若干系统服务中与我们启动进程相关的就是Acitivity Manager。

当systerm server启动好所有服务以后,系统就进入”system ready”状态,这个时候Activity Manager就登场了。

Activity Manager光看代码行就知道是一个重量级的服务,它主要管理Activity之间的跳转,以及进程的生命周期。

当Activity Manager发现系统已经启动好以后它就会发出一个intent:java代码:1Intent intent = new Intent(mTopAction, mTopData != null ?Uri.parse(mTopData) : null);2intent.setComponent(mTopComponent);3if (mFactoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL) { 4intent.addCategory(Intent.CATEGORY_HOME);5}通过这个category类型为home的intent,Activity Manager就会通过:java代码:6startActivityLocked(null, intent, null, null, 0, aInfo, null, null, 0, 0, 0, false, false);启动Home进程了。

【Android】修改Launcher让图标不显示在桌面或者主菜单中

【Android】修改Launcher让图标不显示在桌面或者主菜单中

【Android】修改Launcher让图标不显示在桌面或者主菜单

1 如何让程序不显示在桌面上:
(1)得到该apk的包名,(这个应该很简单)。

(2)在luancher源码中找到LauncherModel.java,此类中有个方法叫loadAllApps();
for (int i=0; i<N && !mStopped; i++) {
// This builds the icon bitmaps.
//此处为加入代码
ResolveInfo info = apps.get(i);
final ActivityInfo activityInfo = info.activityInfo;
if("想屏蔽的apk的包名".equals(activityInfo.packageName) ) { continue;
}
mAllAppsList.add(new ApplicationInfo(apps.get(i), mIconCache));
}
注:这样做只是不让图标显示在桌面上,但是此图标的位置是不能使用的,因为该图标还占用着这个位置,如果想让这个图标彻底的不在桌面上,可以调用他自己的removePackage的函数接口。

2 如何让图标不显示在主菜单中:
修改该应用的Manifest文件,找到主activity,去掉
category
android:name="UNCHER" 这句。

Android系统默认Home应用程序(Launcher)的启动过程源代码分析

Android系统默认Home应用程序(Launcher)的启动过程源代码分析

在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还需要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home 应用程序就是Launcher了,本文将详细分析Launcher应用程序的启动过程。

Android系统的Home应用程序Launcher是由ActivityManagerService启动的,而ActivityManagerService和PackageManagerService一样,都是在开机时由SystemServer组件启动的,SystemServer组件首先是启动ePackageManagerServic,由它来负责安装系统的应用程序,具体可以参考前面一篇文章Android应用程序安装过程源代码分析,系统中的应用程序安装好了以后,SystemServer 组件接下来就要通过ActivityManagerService来启动Home应用程序Launcher了,Launcher在启动的时候便会通过PackageManagerServic把系统中已经安装好的应用程序以快捷图标的形式展示在桌面上,这样用户就可以使用这些应用程序了,整个过程如下图所示:点击查看大图下面详细分析每一个步骤。

Step 1. SystemServer.main这个函数定义在frameworks/base/services/java/com/android/server/SystemServer.java文件中,具体可以参考前面一篇文章Android应用程序安装过程源代码分析的Step 1。

Step 2. SystemServer.init1这个函数是一个JNI方法,实现在 frameworks/base/services/jni/com_android_server_SystemServer.cpp文件中,具体可以参考前面一篇文章Android应用程序安装过程源代码分析的Step 2。

Android系统启动流程(四)Launcher启动过程与系统启动流程

Android系统启动流程(四)Launcher启动过程与系统启动流程

Android系统启动流程(四)Launcher 启动过程与系统启动流程前言此前的文章我们学习了init进程、Zygote进程和SyetemServer进程的启动过程,这一篇文章我们就来学习Android系统启动流程的最后一步:Launcher的启动流程,并结合本系列的前三篇文章的内容来讲解Android系统启动流程。

建议读这篇文章前要通读本系列的前三篇文章,否则你可能不会理解我在讲什么。

uncher概述Android系统启动的最后一步是启动一个Home应用程序,这个应用程序用来显示系统中已经安装的应用程序,这个Home应用程序就叫做Launcher。

应用程序Launcher在启动过程中会请求PackageManagerService返回系统中已经安装的应用程序的信息,并将这些信息封装成一个快捷图标列表显示在系统屏幕上,这样用户可以通过点击这些快捷图标来启动相应的应用程序。

uncher启动流程SyetemServer进程在启动的过程中会启动PackageManagerService,PackageManagerService 启动后会将系统中的应用程序安装完成。

在此前已经启动的ActivityManagerService会将Launcher启动起来。

启动Launcher的入口为ActivityManagerService的systemReady函数,如下所示。

frameworks/base/services/Java/com/android/server/SystemServer.javaprivate void startOtherServices() {...mActivityManagerService.systemReady(new Runnable() {@Overridepublic void run() {Slog.i(TAG, "Making services ready");mSystemServiceManager.startBootPhase(SystemService.PHASE_ACTIVITY_MANAGER_READY);...}...}在startOtherServices函数中,会调用ActivityManagerService的systemReady函数:frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.javapublic void systemReady(final Runnable goingCallback) {...synchronized (this) {...mStackSupervisor.resumeFocusedStackTopActivityLocked();mUserController.sendUserSwitchBroadcastsLocked(-1, currentUserId);}}systemReady函数中调用了ActivityStackSupervisor的resumeFocusedStackTopActivityLocked 函数:frameworks/base/services/core/java/com/android/server/am/ActivityStackSupervisor.javaboolean resumeFocusedStackTopActivityLocked(ActivityStack targetStack, ActivityRecord target, ActivityOptions targetOptions) { if (targetStack != null && isFocusedStack(targetStack)) {return targetStack.resumeTopActivityUncheckedLocked(target, targetOptions);//1 }final ActivityRecord r = mFocusedStack.topRunningActivityLocked();if (r == null || r.state != RESUMED) {mFocusedStack.resumeTopActivityUncheckedLocked(null, null);}return false;}在注释1处会调用ActivityStack的resumeTopActivityUncheckedLocked函数,ActivityStack 对象是用来描述Activity堆栈的,resumeTopActivityUncheckedLocked函数如下所示。

Android_launcher源码全面分析

Android_launcher源码全面分析
<favorite //程序快捷键属性标签
launcher:className="com.apical.radio.radioMainActivity" //点击图标时,需要启动的类 launcher:packageName="com.apical.radio" launcher:screen="1" launcher:x="0" l0auncher:y="0" /> //该应用的包名 //第1屏,0-4屏共5屏 //图标X位置,左上角第一个为0,向左递增,0-4共5个 //图标Y位置,左上角第一个为0,向下递增,0-2共3个
Launcher默认是有5个分屏,不过这个可以配置。同样,每行每列有多少图标也是可以配置 的。这里按我修改的是3行5列的界面排布(对应上面的效果图)。 一般配置APP的快捷方式,使用上面的属性标签就可以。
<appwidget //插件
launcher:className="de.dnsproject.clock_widget_main.Clock1AppWidgetProvider" //该应用的类 launcher:packageName="de.dnsproject.clock_widget_main" launcher:screen="1" launcher:x="2" launcher:y="1" launcher:spanX="3" launcher:spanY="2" /> //第1屏,0-4屏共5屏 //图标X位置,左上角第一个为0,向左递增,0-4共5个 //图标Y位置,左上角第一个为0,向下递增,0-2共3个 //在x方向上所占格数 //在y方向上所占格数 //该应用的包名

Launcher分析

Launcher分析

要看launcher这部分,不记笔记没啥头绪。

这里先记录下来看到的东西,还是按各个文件来记。

一、与界面关系不是太大的部分主要是些数据的东西,为界面显示提供资料不直接参与到界面中。

LauncherApplication.java每个应用只能有一个application,而且应用起来第一个运行的就是application。

所以看Launcher第一个看这个java。

在这里onCreate()函数做了应用初始化的一堆活,其他几个函数做的活到可以不太去注意。

在onCreate()主要做了以下一些工作。

1. 获取屏幕的属性。

主要是大小和密度(分辨率)。

2. 初始化IconCache,这里主要保持各个应用对于的icon。

3. 初始化LauncherModel,在Launcher中界面无关的活大部分在这里面处理。

在这里同时还注册一堆事件给LauncherModel,包含应用删除,安装,变换事件(ACTION_PACKAGE_ADDED/REMOVED/CHANGED);外置存储卡的应用是否可用事件,这个事件可能会携带哪些应用的介绍(ACTION_EXTERNAL_APPLICATIONS_AVAILABLE/UNAVAILABLE);手机环境变换比如语言横竖屏之类的东西(ACTION_LOCALE_CHANGED/ ACTION_CONFIGURATION_CHANGED);搜索管理相关的变换(INTENT_GLOBAL_SEARCH_ACTIVITY_CHANGED/SEARCHABLES_CHANGED);还有个自身定义的消息(LauncherModel.SWITCH_SCENE_ACTION)。

4. 监控LauncherSettings.Favorites.CONTENT_URI。

这个发生变化时调用mModel.startLoader。

IconCache.javaINITIAL_ICON_CACHE_CAPACITYCacheEntry 结构体对于一个应用。

Launcher源码

Launcher源码

最近由于工作需要开始钻研Launcher源码,在这儿记载下我的学习过程,也希望能与大家一起交流,高手们见笑了!关于Launcher源码我就不做介绍了,如果大家不知道Launcher是什么那先去百度一下!如何得到Launcher源码?一、下载android源码,从android源码中提取Launcher源码。

网上有很多下载的教程,自己找。

也可以去android源码网站上只下载Launcher一部分。

如果下载的是整个源码,可以在源码的\packages\apps\目录下将launcher 拷贝出来;二、我把我下载的Launcher 2.2的源码上传到了csdn上,大家可以去下载。

地址:/source/2620144没看前面内容的朋友看这儿:在Eclipse中调试运行launcher源码(一)——获取launcher源码:/blog/737642在Eclipse中调试运行launcher源码(二)——向Eclipse中导入Launcher源码:/blog/737645我们接上前面的内容,今天的内容是修改android Launcher 2.2源码工程的包名。

如果你不修改包名是运行不起来的,因为它和系统自带的冲突了,这儿要修改包名必须要用Eclipse自带的重命名,不然会引起很多包的错误。

步骤如下:一、选择包,如下图:二、按F2或右键选择重命名,如下图:New name填写你自己的包名,把下面四项全部勾选。

点击“Preview”三、点击“ok”就可以了,但会在很多文件中出现如下的错误:四、修改gen目录下的包名,修改方法一定要跟上面的一样。

不修改运行不起来,因为与系统的重复,我修改成如下图:该成你自己的包名,我这儿就改为:很多文件中都有,自己手动修改吧。

今天就总结这些,下一篇文章我们开始修改具体的每个类里面的错误!我这几天会尽快总结出来分享给大家。

希望有正在钻研Launcher的朋友一起交流,本人由于知识有限,难免有错误或误导大家的,希望各位不惜赐教!共同进步。

Android开发中Launcher3常见默认配置修改方法总结

Android开发中Launcher3常见默认配置修改方法总结

Android开发中Launcher3常见默认配置修改⽅法总结本⽂实例讲述了Android开发中Launcher3常见默认配置修改⽅法。

分享给⼤家供⼤家参考,具体如下:Launcher概述Launcher是开机完成后第⼀个启动的应⽤,⽤来展⽰应⽤列表和快捷⽅式、⼩部件等。

Launcher作为第⼀个(开机后第⼀个启动的应⽤)展⽰给⽤户的应⽤程序,其设计的好坏影响到⽤户的体验,甚⾄影响⽤户购机的判断。

所以很多品牌⼚商都会不遗余⼒的对Launcher进⾏深度定制,如⼩⽶的MIUI、华为的EMUI等。

Android默认的Launcher没有过多的定制,更加简洁,受到源⽣党的追捧,Google的Nexus系列⼿机基本都是⽤的源⽣Launcher,⽬前Android源⽣的Launcher版本是Launcher3,后⾯的相关内容也都是以Launcher3为基础。

Launcher3默认配置修改1.如何设置默认页res/values/Config.xml<integer name="config_workspaceDefaultScreen">0</integer>在Launcher3 桌⾯,不管在哪⼀页,按HOME 键,会回到默认页。

2.如何隐藏launcher3中的搜索框①在Launcher3/src/com/android/launcher3/Launcher.java中注释updateGlobalIcons()⽅法调⽤,共两处。

public View getQsbBar() {if (mQsbBar == null) {mQsbBar = mInflater.inflate(yout.search_bar, mSearchDropTargetBar, false);- mSearchDropTargetBar.addView(mQsbBar);}+ mQsbBar.setVisibility(View.GONE);return mQsbBar;}@Overridepublic void bindSearchablesChanged() { //注释该⽅法内容/* boolean searchVisible = updateGlobalSearchIcon();boolean voiceVisible = updateVoiceSearchIcon(searchVisible);if (mSearchDropTargetBar != null) {mSearchDropTargetBar.onSearchPackagesChanged(searchVisible, voiceVisible);}*/}②在Launcher3/src/com/android/launcher3/DynamicGrid.java中// Layout the search bar//注释如下内容/* View qsbBar = launcher.getQsbBar();LayoutParams vglp = qsbBar.getLayoutParams();vglp.width = LayoutParams.MATCH_PARENT;vglp.height = LayoutParams.MATCH_PARENT;qsbBar.setLayoutParams(vglp);*/③在Launcher3/res/values/dimens.xml中- <dimen name="dynamic_grid_search_bar_height">48dp</dimen>+ <dimen name="dynamic_grid_search_bar_height">18dp</dimen>重新编译后即可看到效果。

launcher.exe是什么进程launcher进程查询

launcher.exe是什么进程launcher进程查询

launcher.exe是什么进程launcher进程查询
进程⽂件: launcher or launcher.exe
进程名称: Webshots Launcher
进程类别:存在安全风险的进程
英⽂描述:
launcher.exe is an executable belonging to many applications including Webshots- a Windows desktop downloader, Uinterface Mouselaunch- a file and application initiator, and also a hardware interface for Samsung products. Note: launcher.exe is an adv
中⽂参考:
launcher.exe是很多程序都包含的进程,例如Windows桌⾯主题下载软件Webshots,⿏标增强软件Uinterface Mouselaunch 和三星产品当中。

注意:launcher.exe也可能是Intercort公司的⼴告程序。

该进程监视你的浏览⾏为,并将回传到其服务器进⾏分析。

出品者:Intercort Systems (DownloadWare)
属于:Webshots Launcher
系统进程:No
后台程序:Yes
⽹络相关:No
常见错误:N/A
内存使⽤:N/A
安全等级 (0-5): 0
间谍软件:No
⼴告软件:No
病毒:No
⽊马:No。

Launcher_Log

Launcher_Log
2010-08-05 12:10:19 .\Launcher.cpp(:41):---Begin---
2010-08-05 12:10:19 .\Launcher.cpp(:90):g_flashWnd->Create() TRUE
2010-08-05 12:10:19 .\LauncherDlg.cpp(:121):播放flash,隐藏原窗口
2010-08-12 09:43:39 .\Launcher.cpp(:41):---Begin---
2010-08-12 09:43:39 .\Launcher.cpp(:90):g_flashWnd->Create() TRUE
2010-08-12 09:43:39 .\LauncherDlg.cpp(:121):播放flash,隐藏原窗口
2010-08-10 11:24:21 .\Launcher.cpp(:90):g_flashWnd->Create() TRUE
2010-08-10 11:24:21 .\LauncherDlg.cpp(:121):播放flash,隐藏原窗口
2010-08-10 11:24:21 .\LauncherDlg.cpp(:121):播放flash,隐藏原窗口
2010-07-27 15:40:44 .\Launcher.cpp(:41):---Begin---
2010-07-27 15:40:44 .\Launcher.cpp(:90):g_flashWnd->Create() TRUE
2010-07-27 15:40:44 .\LauncherDlg.cpp(:121):播放flash,隐藏原窗口
2010-07-26 15:46:55 .\LauncherDlg.cpp(:121):播放flash,隐藏原窗口

launcher启动

launcher启动

Launcher介绍一、Launcher 是什么?uncher 是个启动器类似pc 上的桌面uncher 也是个应用二、让应用变为Launcher三、Launcher 具备的功能1.列出所有安装的应用2.启动应用程序3.显示壁纸4.显示窗口小部件5.显示书签6.显示文件夹7.……..四、工程类介绍1、AddAdapter: 维护了live fold , widget , shortcut , wallpaper 4 个ListItem ,长按桌面会显示该列表2、AllAppsGridView :显示APP 的网格3、ApplicationInfo :一个可启动的应用4、ApplicationsAdapter :gridview 的adapter5、BubbleTextView: 一个定制了的textview6、CellLayout: 屏幕网格化7、DeleteZone :UI 的一部分8、DragController ,dragscroller, dragsource, droptarget: 支持拖拽操作9、DragLayer :内部支持拖拽的viewgroup10、FastBitmapDrawable :工具11、Folder :Icons 的集合12、FolderIcon: 出现在workspace 的icon 代表了一个folder13、FolderInfo: ItemInfo 子类14、HandleView :一个imageview 。

I15、nstallShortcutReceiver ,UninstallShortcutReceiver :一个broadcastrecier16、ItemInfo: 代表Launcher 中一个Item (例如folder )17、Launcher: Launcher 程序的主窗口18、LauncherApplication :在VM 中设置参数19、LauncherAppWidgetHost ,LauncherAppWidgetHostView ,:Widget 相关20、LauncherModel :MVC 中的M21、LauncherProvider :一个contentprovider ,为Launcher 存储信息22、LauncherSettings: 设置相关的工具23、LiveFolder ,LiveFolderAdapter ,LiveFolderIcon ,LiveFolderInfo :livefolder 相关24、Search :搜索25、UserFolder ,UserFolderInfo :文件夹包含applications ,shortcuts26、Utilities: 小工具27、WallpaperChooser :选择wallpaper 的activity28、Workspace: 屏幕上的一块区域29、widget : 代表启动的widget 实例,例如搜索Launcher 启动流程一、在 VM 中设置参数LauncherApplication->onCreate1.设置最小堆内存4M2.建立应用图标缓存器3.建立LauncherModel4.注册Intent.ACTION_PACKAGE_ADDED,Intent.ACTION_PACKAGE_REMOVED,Intent.ACTION_PACKAGE_CHANGED事件监听器LauncherModel作为广播接收器对上面3中事件进行监听5.添加对桌面favorites content provider 数据变化监听器二、Launcher 程序的主窗口Launcher->onCreate1.获取LauncherApplication LauncherModel mIconCache等LauncherApplication初始化的对象2.新建拖放控制器new DragController(this)4.获取桌面组件管理器,启动桌面组件host5.从array.hotseats中加载所有的hotseats(热键如挂机按钮,google浏览器)6.从launcher.preferences加载本地设置7.设置壁纸尺寸宽度=display.getWidth()* WALLPAPER_SCREENS_SPAN,高度=display.getHeight()8.加载布局文件9.初始化所有控件10.从Bundle savedInstanceState获取桌面持久化数据设置mRestoring = true;11.如果mRestoring == false,调用LauncherModel加载桌面项mModel.startLoader(this,true,isLanguageChange);uncherModel.Loader.startLoader()代码同步处理b.新建LauncherModel.Loader.LoaderThread线程并启动线程(桌面项加载,详细见第三步)12.注册Intent.ACTION_CLOSE_SYSTEM_DIALOGS广播监听三、桌面、抽屉项加载1.等待主线程运行结束才开始加载2.判断是否先加载桌面;loadWorkspaceFirst = cbk != null ?(!cbk.isAllAppsVisible ()):true;3.loadWorkspaceFirst==truea.loadAndBindWorkspace()loadWorkspace():从数据库launcher.db中查询中所有桌面项构造对应类型的ItemInfo 对象存入mItems,mAppWidgets,mFolders列表.bindWorkspace():ucher.startBinding(),异步调用,在主线程中handle//do no thingsucher.bindItems(),异步调用,在主线程中handle1.根据ItemInfo对象创建桌面图标view对象2.获取item.screen,item.cellX,item.cellY,spanX,spanY,调用workspace.addInScreen添加到对应桌面的cell1.重新设置桌面图标view 的layoutparam(类型为youtparam)2.根据item.screen获取桌面的celllayout对象,也就是workspace下5个用户桌面中的一个3.调用celllayout.addview方法把桌面图标view对象添加为celllayout的child,也就是为用户桌面添加一个桌面图标4.桌面图标view对象添加OnLongClickListener=laucher,由laucher负责监听桌面图标view的longclick事件5.如果桌面图标是DropTarget对象,拖放控制器mDragController添加该view到拖放目的地列表ucher.bindFolders(),异步调用,在主线程中handle//launcher.mFolders.putAll(mFolders);ucher.bindAppWidget(),异步调用,在主线程中handle1.获取LauncherAppWidgetInfo的appWidgetId2.获取AppWidgetProviderInfo appWidgetInfo mAppWidgetManager.getAppWidgetInfo (appWidgetId)3.根据appWidgetInfo创建桌面组件的view AppWidgetHostView对象4.调用workspace.addInScreen添加到对应桌面的cellucher.finishBindingItems(),异步调用,在主线程中handlemWorkspaceLoading=falseb.loadAndBindAllApps();如果没有加载apps或者改变了语言设置loadAllAppsByBatch();1.//设置package 查询条件Intent.ACTION_MAIN Intent.CATEGORY_LAUNCHER2.//清空mAllAppsList mAllAppsList.clear();3.//packageManager 查询所有应用pakages4.分批次mAllAppsList.add 应用pakagesucher.bindAllApplications()//异步调用mAllAppsGrid.setApps(apps)6.若分多个批次加载laucher.bindAppsAdded()//异步调用mAllAppsGrid.addApps(apps);否则onlyBindAllApps();1.mAllAppsList.data.clone();ucher.bindAllApplications()//异步调用mAllAppsGrid.setApps(apps)4.loadWorkspaceFirst==falsea.loadAndBindAllApps();b.loadAndBindWorkspace();四、数据库创建及初始化默认配置LauncherProvider在创建数据库时进行默认配置填充loadFavorites(db);1.系统默认配置加载2.自定义配置加载(定义在指定目录的加载文件,如果不存在加载系统默认配置)Launcher WorkSpase (主屏介绍) WorkSpase 是我们启动android 手机进入launcher 给用户最先显示的部分。

launcher使用方法大全

launcher使用方法大全
Passcode--密码设置
Personal Hotspot--个人热点(打开这项的前提是蜂窝数据已经打开)
Phone--电话设置
Photos--相册设置
Privacy--证书设置
Profiles--隐私设置
Reminders--提醒事项设置
Reset--还原设置
天猫 tmall://
下面是设置里面的所有快捷方式翻译
About--关于手机
Accessibility--辅助功能
Autolock--自动锁屏时间
Bluetooth-蓝牙(用得比较少)
Cellular/Mobile--蜂窝数据网络(这个我想大部分人都要添加的)
暴风影音 com.baofeng.play://
保卫萝卜2 wb2217954495://
保卫萝卜 wb1308702128:// 音乐 music://
视频 videoiphone:// 或 bdvlpaper--壁纸设置
WiFi--WiFi设置
Game Center--游戏中心
General--通用
iCloud--iCloud登录与设置
iCloud Storage--iCloud容量查看与设置
Internationnal--语言与地区设置
iTunes & App Store--iTunes与App Store账号设置
代码如下
蜂窝网络:prefs:root=MOBILE_DATA_SETTINGS_ID
WIFI:prefs:root=WIFI(WIFI这几个字母一定要大写)
定位服务:prefs:root=LOCATION_SERVICES

launcher介绍

launcher介绍

Launcher是Android的应用程序启动器,Launcher的功能还包含:桌面的切换、应用程序快捷(shortcut)功能、背景图(Wallpaper)功能等等。

在Android的桌面最下方,有一个图示,按下后可以拉出应用程序图示清单,这是Launcher提供的功能。

我们这个实例是用GridView来实现Launcher效果的,下面的截屏显示本实例的效果图:源代码如下:main.xml布局文件,只有一个GridView:[xhtml:collapse:showcolumns]+ expand sourceview plaincopy .........10........20........30........40........50........60........70........80........90........100.......110.......120.......130.......140. (150)GridView的每一个Item也需要一个布局文件,用来定义应用的图标与标题,application_layout.xml:[xhtml:collapse:showcolumns]+ expand sourceview plaincopy .........10........20........30........40........50........60........70........80........90........100.......110.......120.......130.......140. (150)主程序文件,Launcher.java:[c-sharp:collapse:showcolumns]+ expand sourceview plaincopy .........10........20........30........40........50........60........70........80........90........100.......110.......120.......130.......140. (150)几点说明:1. 函数setupViews()是建立Launcher桌面的Views的。

launcher相关流程

launcher相关流程

launcher相关流程Launcher(启动器)是Android操作系统中的一个重要组件,它是用户与手机系统之间的桥梁,负责展示和管理应用程序。

本文将以Launcher相关流程为主题,介绍Launcher的作用、启动流程和优化方法。

一、Launcher的作用Launcher是用户进入手机系统后看到的桌面界面,它可以展示已安装的应用程序图标、小部件等,同时也提供了搜索、应用管理等功能。

用户可以通过Launcher方便地启动应用程序,并对桌面进行个性化设置。

二、Launcher的启动流程1. 用户按下手机的Home键或通过其他方式返回桌面。

2. 系统检测到Home键按下事件后,会启动Launcher应用程序。

3. Launcher应用程序初始化,加载桌面布局和配置信息。

4. Launcher应用程序根据配置信息,加载应用程序的图标和小部件,并进行布局。

5. 用户可以通过滑动、点击等手势操作,在桌面上浏览和启动应用程序。

6. 如果用户需要搜索应用程序,可以通过在桌面上的搜索栏输入关键字进行搜索。

7. 如果用户需要管理应用程序,可以长按应用程序图标,弹出菜单并选择相应操作。

三、Launcher的优化方法为了提升用户体验和系统性能,可以对Launcher进行优化,以下是几种常见的优化方法:1. 布局优化:优化桌面布局的加载速度和内存占用,可以采用延迟加载的方式,先加载可见区域的图标,待用户滑动到其他区域时再加载。

2. 图标优化:对应用程序图标进行缓存,减少图标加载时间。

同时,可以对图标进行预处理,将图标的分辨率和颜色进行优化,以减少内存占用。

3. 搜索优化:对搜索功能进行优化,提供更快速、准确的搜索结果。

可以通过建立索引、优化搜索算法等方式提升搜索效率。

4. 内存优化:减少Launcher的内存占用,可以通过优化代码、减少不必要的内存分配等方式实现。

另外,可以利用内存缓存技术,将常用的应用程序图标和布局信息缓存到内存中,提高响应速度。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2012-12-14 10:10:31 下午---------exCount = 1android.intent.action.PACKAGE_ADDED com.buak.Link2SD false
2012-12-14 10:16:14 下午---------exCount = 2android.intent.action.PACKAGE_ADDED com.noshufou.android.su false
2012-12-14 11:53:08 下午---------exCount = 4android.intent.action.PACKAGE_ADDED com.tencent.android.qqdownloader false
2012-12-14 11:57:14 下午---------exCount = 5android.intent.action.PACKAGE_ADDED com.tencent.qbx false
2012-12-15 08:27:45 下午---------exCount = 1android.intent.action.PACKAGE_ADDED com.shuame.sprite false
2012-12-15 08:34:07 下午---------exCount = 1android.intent.action.PACKAGE_CHANGED com.android.stk false
2012-12-15 12:03:32 上午---------exCount = 12android.intent.action.PACKAGE_ADDED net.ecedeheh.ebeielegeheb false
2012-12-15 12:17:10 上午---------exCount = 1android.intent.action.PACKAGE_ADDED com.chenai.zhibo false
2012-12-14 11:44:56 下午---------exCount = 2android.intent.action.PACKAGE_ADDED uncher.screenlock.lotus false
2012-12-14 11:47:38 下午---------exCount = 3android.intent.action.PACKAGE_ADDED uncher.screenlock false
2012-12-15 11:54:45 上午---------exCount = 2android.intent.action.PACKAGE_CHANGED com.android.stk false
2012-12-15 12:17:47 下午---------exCount = 3android.intent.action.PACKAGE_CHANGED com.android.stk false
2012-12-14 10:19:55 下午---------exCount = 3android.intent.action.PACKAGE_CHANGED com.lbe.security.shuame false
2012-12-14 10:22:32 下午---------exCount = 1android.intent.action.PACKAGE_CHANGED com.android.stk false
2012-12-14 10:29:11 下午---------exCount = 2android.intent.action.PACKAGE_REMOVED com.tencent.qqpimsecure false
2012-12-14 10:37:40 下午---------exCount = 3android.intent.action.PACKAGE_ADDED com.tencent.qqpimsecure
2012-12-14 11:57:27 下午---------exCount = 6android.intent.action.PACKAGE_REMOVED com.tencent.android.qqdownloader true
2012-12-14 11:57:28 下午---------exCount = 7android.intent.action.PACKAGE_ADDED com.tencent.android.qqdownloader true
2012-12-14 11:34:17 下午---------exCount = 1android.intent.action.PACKAGE_CHANGED com.tencent.qqpimsecure false
2012-12-14 11:44:42 下午---------exCount = 1android.intent.action.PACKAGE_REMOVED com.iava.kofnsgfan false
2012-12-15 08:34:35 下午---------exCount = 2android.intent.action.PACKAGE_ADDED com.lbe.security.shuame false
2012-12-15 08:49:53 下午---------exCount = 3android.intent.action.PACKAGE_REMOVED tin false
2012-12-15 04:56:19 下午---------exCount = 1android.intent.action.PACKAGE_CHANGED com.android.stk false
2012-12-15 05:00:32 下午---------exCount = 2android.intent.action.PACKAGE_CHANGED com.lbe.security.shuame false
2012-12-15 12:01:30 上午---------exCount = 8android.intent.action.PACKAGE_ADDED com.uc.browser false
2012-12-15 12:01:59 上午---------exCount = 9android.intent.action.PACKAGE_ADDED com.qzone false
2012-12-15 08:49:54 下午---------exCount = 4android.intent.action.PACKAGE_REMOVED tin false
2012-12-14 11:16:12 下午---------exCount = 4android.intent.action.PACKAGE_REMOVED com.tencent.qqpinyin true
2012-12-14 11:16:13 下午---------exCount = 5android.intent.action.PACKAGE_ADDED com.tencent.qqpinyin true
2012-12-15 12:03:07 上午---------exCount = 10android.intent.action.PACKAGE_REMOVED com.uc.browser true
2012-12-15 12:03:08 上午---------exCount = 11android.intent.action.PACKAGE_ADDED com.uc.browser true
2012-12-15 12:30:53 上午---------exCount = 1android.intent.action.PACKAGE_ADDED com.tencent.qqlive false
2012-12-15 11:54:45 上午---------exCount = 1android.intent.action.PACKAGE_CHANGED com.tencent.qqpimsecure false
2012-12-15 05:45:08 下午---------exCount = 5android.intent.action.PACKAGE_ADDED com.tencent.ciqkiller false
2012-12-15 05:45:24 下午---------exCount = 6android.intent.action.PACKAGE_ADDED com.tencent.kungfukiller false
2012-12-15 05:42:02 下午---------exCount = 3android.intent.action.PACKAGE_REMOVED cn.playboy.suchecker false
2012-12-15 05:42:28 下午---------exCount = 4android.intent.action.PACKAGE_ADDED com.chun.rootyanzh false
2012-12-15 05:47:37 下午---------exCount = 9android.intent.action.PACKAGE_REMOVED com.qihoo360.mobilesafe_mtk6573 false
2012-12-15 07:37:52 下午---------exCount = 1android.intent.action.PACKAGE_REMOVED com.chenai.zhibo false
2012-12-14 10:27:28 下午---------exCount = 1android.intent.action.PACKAGE_ADDED cn.opda.a.phonoalbumshoushou false
2012-12-14 10:28:13 下午---------exCount = 1android.intent.action.PACKAGE_ADDED com.tencent.qqpimsecure false
相关文档
最新文档