MTK平台安卓6.0修改Launcher3ui 10C

希望各位大神可以指导下,怎么更改Launcher3UI布局,万分感谢!

1个回答

Launcher概述

Launcher是开机完成后第一个启动的应用,用来展示应用列表和快捷方式、小部件等。Launcher作为第一个(开机后第一个启动的应用)展示给用户的应用程序,其设计的好坏影响到用户的体验,甚至影响用户购机的判断。所以很多品牌厂商都会不遗余力的对Launcher进行深度定制,如小米的MIUI、华为的EMUI等。Android默认的Launcher没有过多的定制,更加简洁,受到源生党的追捧,Google的Nexus系列手机基本都是用的源生Launcher,目前Android源生的Launcher版本是Launcher3,后面的相关内容也都是以Launcher3为基础。

Launcher3默认配置修改

1.如何设置默认页

res/values/Config.xml

?
1
0
在Launcher3 桌面,不管在哪一页,按HOME 键,会回到默认页。

2.如何隐藏launcher3中的搜索框

① 在Launcher3/src/com/android/launcher3/Launcher.java中

注释updateGlobalIcons()方法调用,共两处。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public View getQsbBar() {
if (mQsbBar == null) {
mQsbBar = mInflater.inflate(R.layout.search_bar, mSearchDropTargetBar, false);

  • mSearchDropTargetBar.addView(mQsbBar); }
  • mQsbBar.setVisibility(View.GONE); return mQsbBar; } @Override public void bindSearchablesChanged() { //注释该方法内容 /* boolean searchVisible = updateGlobalSearchIcon(); boolean voiceVisible = updateVoiceSearchIcon(searchVisible); if (mSearchDropTargetBar != null) { mSearchDropTargetBar.onSearchPackagesChanged(searchVisible, voiceVisible); } */ } ② 在Launcher3/src/com/android/launcher3/DynamicGrid.java中

?
1
2
3
4
5
6
7
8
// 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中
- 48dp
+ 18dp

重新编译后即可看到效果。

3.如何调整原生Launcher3主界面的search框的大小?

修改如下:

定位打/packages/apps/Launcher3/res/values/dimens.xml。

3dp//修改这个可以调整search框距离顶部距离。
500dp//search框的宽度,一般不需要调整。
48dp//search框的高度,不要调整为0,删除按钮需要占用一部分空间。

4.让主菜单部分应用按指定顺序排在前面?

添加res/values/arrays.xml:需要排序的应用:这里的item 内容一定要填写正确,否则会匹配不上,无法参与排序。

?
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>


ComponentInfo{com.android.vending/com.android.vending.AssetBrowserActivity}
ComponentInfo{com.android.browser/com.android.browser.BrowserActivity}
ComponentInfo{com.android.settings/com.android.settings.Settings}
ComponentInfo{com.android.camera2/com.android.camera.CameraLauncher}
ComponentInfo{com.android.mms/com.android.mms.ui.ConversationList}


src/com/android/launcher3/Utilities.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
import java.util.Arrays;
import java.util.List;
public static List getAppsComponentName(final Context context) {
return Arrays.asList(context.getResources().getStringArray(R.array.apps_componentName));
}
src/com/android/launcher3/LauncherModel.java
protected int mPreviousConfigMcc;
static List appArray = new ArrayList();
LauncherModel(LauncherAppState app, IconCache iconCache, AppFilter appFilter) {
......
mUserManager = UserManagerCompat.getInstance(context);
appArray = Utilities.getAppsComponentName(context);
}
添加如下sortApps 方法:apps 按arrays.xml 排序,在原来的排序基础上,将arrays.xml 配置的应用按顺序排在前面。arrays.xml中没有涉及到的应用,还是原来的顺序。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public static final void sortApps(ArrayList apps) {
int length = appArray.size();
List assignApps = new ArrayList();
for(int i=0;i assignApps.add(i, null);
}
for(AppInfo app : apps){
for(int k=0; k if (app.componentName.toString().equals(appArray.get(k))) {
assignApps.set(k,app );
continue;
}
}
}
for (int i =length -1;i > -1 ;i--) {
AppInfo app = assignApps.get(i);
if(app != null){
apps.remove(app);
apps.add(0, app);
}
}
Log.d(TAG ,"The Apps List after Sort!");
}
src/com/android/launcher3/AppsCustomizePagedView.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void setApps(ArrayList list) {
if (!LauncherAppState.isDisableAllApps()) {
......
SprdAppSortAddonStub.getInstance().sortApps(mApps);
LauncherModel.sortApps(mApps);//在原来排序的基础上,再将arrays.xml中配置的应用按顺序排在前面。
updatePageCountsAndInvalidateData();
}
}
private void addAppsWithoutInvalidate(ArrayList list) {
......
// SPRD: bug375932 2014-12-02 Feature customize app icon sort.
SprdAppSortAddonStub.getInstance().sortApps(mApps);
LauncherModel.sortApps(mApps);//在原来排序的基础上,再将arrays.xml中配置的应用按顺序排在前面。
}
5.如何确定待机HOME界面布局使用的是哪个default_workspace文件?

src/com/android/launcher3/DynamicGrid.java

选择哪个default_workspace 和public DynamicGrid(Context context, Resources resources,int minWidthPx, int minHeightPx, int widthPx, int heightPx, int awPx, int ahPx)中的minWidthPx 和minHeightPx 以及该方法中创建的deviceProfiles 列表关。

minWidthPx 、minHeightPx 值转换为dpi之后 ,deviceProfiles 列表与其进行比较,选择与当前屏幕大小最接近的deviceProfiles 的default_workSpace作为最终Home界面使用的default_workspace。

详细解释如下:

src/com/android/launcher3/DynamicGrid.java中

① deviceProfiles 列表如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
deviceProfiles.add(new DeviceProfile("Super Short Stubby",
255, 300, 2, 3, 48, 13, (hasAA ? 3 : 5), 48, R.xml.default_workspace_4x4));
deviceProfiles.add(new DeviceProfile("Shorter Stubby",
255, 400, 3, 3, 48, 13, (hasAA ? 3 : 5), 48, R.xml.default_workspace_4x4));
deviceProfiles.add(new DeviceProfile("Short Stubby",
275, 420, 3, 4, 48, 13, (hasAA ? 5 : 5), 48, R.xml.default_workspace_4x4));
deviceProfiles.add(new DeviceProfile("Stubby",
255, 450, 3, 4, 48, 13, (hasAA ? 5 : 5), 48, R.xml.default_workspace_4x4));
deviceProfiles.add(new DeviceProfile("Nexus S",
296, 491.33f, 4, 4, 48, 13, (hasAA ? 5 : 5), 48, R.xml.default_workspace_4x4));
deviceProfiles.add(new DeviceProfile("Nexus 4",
335, 567, 4, 4, DEFAULT_ICON_SIZE_DP, 13, (hasAA ? 5 : 5), 56, R.xml.default_workspace_4x4));
deviceProfiles.add(new DeviceProfile("Nexus 5",
359, 567, 4, 4, DEFAULT_ICON_SIZE_DP, 13, (hasAA ? 5 : 5), 56, R.xml.default_workspace_4x4));
deviceProfiles.add(new DeviceProfile("Large Phone",
406, 694, 5, 5, 64, 14.4f, 5, 56, R.xml.default_workspace_5x5));
// The tablet profile is odd in that the landscape orientation
// also includes the nav bar on the side
deviceProfiles.add(new DeviceProfile("Nexus 7",
575, 904, 5, 6, 72, 14.4f, 7, 60, R.xml.default_workspace_5x6));
// Larger tablet profiles always have system bars on the top & bottom
deviceProfiles.add(new DeviceProfile("Nexus 10",
727, 1207, 5, 6, 76, 14.4f, 7, 64, R.xml.default_workspace_5x6));
deviceProfiles.add(new DeviceProfile("20-inch Tablet",
1527, 2527, 7, 7, 100, 20, 7, 72, R.xml.default_workspace_4x4));
② 重新计算MinWidth 和MinHeigh 单位是dpi。

?
1
2
mMinWidth = dpiFromPx(minWidthPx, dm);
mMinHeight = dpiFromPx(minHeightPx, dm);
③ 创建mProfile,mProfile.defaultLayoutId 就是最终Home界面使用的default_workspace 的id。

mProfile中的defaultLayoutId 是哪个default_workspace 见DeviceProfile.java。

?
1
2
3
4
5
6
7
8
9
10
11
12
mProfile = new DeviceProfile(context, deviceProfiles,
mMinWidth, mMinHeight,
widthPx, heightPx,
awPx, ahPx,
resources);
src/com/android/launcher3/DeviceProfile.java
DeviceProfile(Context context,
ArrayList profiles,
float minWidth, float minHeight,
int wPx, int hPx,
int awPx, int ahPx,
Resources res) {
方法中:

④ 用屏幕宽高创建的点(PointF xy = new PointF(width, height))与 deviceProfiles中的w 和 h 创建的点(dimens = new PointF(widthDps, heightDps))进行比较,也就是从deviceProfiles 列表中找出和当前屏幕大小最接近的deviceProfiles。

?
1
2
DeviceProfile closestProfile = findClosestDeviceProfile(minWidth, minHeight, points);
......
⑤ 采用和当前屏幕大小最接近的deviceProfiles的default_workspace

?
1
defaultLayoutId = closestProfile.defaultLayoutId;
6.如何替换第三方应用在launcher上显示的图标?

在launcher/src/com/android/launcher3/IconCache.java中修改,

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
private CacheEntry cacheLocked(ComponentName componentName, ResolveInfo info, private CacheEntry cacheLocked(ComponentName componentName, ResolveInfo info,
HashMap labelCache) {
CacheEntry entry = mCache.get(componentName);
if (entry == null) {
entry = new CacheEntry();
mCache.put(componentName, entry);
ComponentName key = LauncherModel.getComponentNameFromResolveInfo(info);
if (labelCache != null && labelCache.containsKey(key)) {
entry.title = labelCache.get(key).toString();
} else {
entry.title = info.loadLabel(mPackageManager).toString();
if (labelCache != null) {
labelCache.put(key, entry.title);
}
}
if (entry.title == null) {
entry.title = info.activityInfo.name;
}
Drawable icon;
int index = sysIndexOf(componentName.getClassName());
Log.i("jxt", "index:"+index+",Name:"+componentName.getClassName());
icon = getFullResIcon(info);
if (index >= 0) {
entry.icon = Utilities.createIconBitmap(icon, mContext);
} else {
entry.icon = Utilities.createIconBitmap(
/* SPRD: Feature 253522, Remove the application drawer view @{ /
// getFullResIcon(info), mContext);
icon, mContext, true);
}
/
此处即为替换图标代码 {@*/
if("第三方应用的componentName".equals(componentName.toString())){
entry.icon = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.xxx);
}
/* @} */
}
return entry;
}

7.如何去掉Launcher3的开机引导页面?

修改方案如下:

请定位到src/com/android/launcher3/LauncherClings.java文件:

?
1
2
3
4
5
class LauncherClings implements OnClickListener {
......
private static final String TAG_CROP_TOP_AND_SIDES = "crop_bg_top_and_sides
private static final boolean DISABLE_CLINGS = false;
private static final boolean DISABLE_CLINGS = true;
8.为何Launcher3设置一些壁纸后,壁纸显示比预览图模糊?

预览的时候,没有做格式转化,所以显示正常!

在设置壁纸的时候,默认是采用jpeg格式转换的,导致转换后损耗了一些,设置壁纸后,某些对比度比较高的壁纸就显示的模糊!

修改方案:

默认修改为采用png格式转换!

android6.0之前的版本,请做如下修改:

定位到/packages/apps/Launcher3/的WallpaperCropActivity.java文件

1、String mOutputFormat = "jpg";//修改为"png"

2、

?
1
2
3
4
5
6
7
8
9
protected static String getFileExtension(String requestFormat) {
String outputFormat = (requestFormat == null)
? "jpg"//修改为"png"
: requestFormat;
outputFormat = outputFormat.toLowerCase();
return (outputFormat.equals("png") || outputFormat.equals("gif"))
? "png" // We don't support gif compression.
: "jpg";
}
android6.0的版本,请做如下修改:

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android 6.0如何添加一个launcher,让这几个launcher共存啊

android 6.0如何添加一个launcher,让这几个launcher共存啊

android6.0以后怎么删除快捷方式?

private void createShortCut() { Log.i("TAG", "创建快捷方式"); Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); shortcutintent.putExtra("duplicate", false); shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name)); Intent.ShortcutIconResource icon = Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher); shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon); shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, getShortCutIntent()); sendBroadcast(shortcutintent); } private void delectShortCut() { Log.i("TAG", "删除快捷方式"); Intent shortcut = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT"); shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name)); shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, getShortCutIntent()); sendBroadcast(shortcut); } private Intent getShortCutIntent() { Intent intent = new Intent(); intent.setClass(this, this.getClass()); /*以下两句是为了在卸载应用的时候同时删除桌面快捷方式*/ intent.setAction("android.intent.action.MAIN"); intent.addCategory("android.intent.category.LAUNCHER"); return intent; } 权限: ``` <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" /> ``` 模拟器测试5.0 可以正常创建和删除快捷方式;6.0以后可以创建,但是调用delectShortCut(),却删除不了快捷方式。求解

[Android 5.0]Launcher3:wallpaper_chooser 切换壁纸闪退

软件版本:Android L/Android kk 长按屏幕-->选择左侧"wallpapers"-->在壁纸选择界面,尝试连续多次点击不同的壁纸预览(15-20次左右会闪退) 分析原因:在点击预览不同壁纸时,com.android.launcher3:wallpaper_chooser进程占用内存太多(memory leak),导致进程被杀. 这个问题不仅是Android L上才有,多平台测试,只要是用Launcher3:WallpaperPicker,都有这个闪退问题。 跪求大神指点,多谢

Android launcher3去除all app button替换成普通shortcut

现在通过屏蔽restlayout代码能去掉all apps 按钮但是原来这个位置怎么替换上普通快捷按钮

安卓系统定制替换launcher

用我自己的launcher替换了原生launcher之后,烧写到开发板中之后发现我的launcher程序会显示一个图标,按照网上的方法设置隐式启动launcher之后再烧写却直接黑屏了,- =;什么原因

android 7.0 launcher3 去掉二级菜单(AllAppsButton)

android 7.0 ,去掉Launcher3中的二级菜单(AllAppsButton),像现在市面上大部分的手机一样,使所有应用直接放在Launcher3的主界面上, 请问该如何修改?

关于launcher3 的hotseat区域,如何隐藏,让workspace占据空间

关于launcher3 的hotseat区域,如何隐藏,让workspace占据空间,让hotseat gone掉,各位大虾有什么方法,跪求,c币正好用完了,各位好心的大虾帮忙看看

android9 launcher3配置默认时间widget怎么做?

android9 launcher3配置默认时间widget怎么做?

Launcher3增加主屏数量

按Launcher2的方法改 界面会挂掉,求教如何修改 <com.android.launcher3.Workspace android:id="@+id/workspace" android:layout_width="match_parent" android:layout_height="match_parent" launcher:defaultScreen="@integer/config_workspaceDefaultScreen" launcher:pageIndicator="@+id/page_indicator"> <--add--/> <include android:id="@+id/cell1" layout="@layout/workspace_screen" /> <include android:id="@+id/cell2" layout="@layout/workspace_screen" /> <include android:id="@+id/cell3" layout="@layout/workspace_screen" /> <--end--/> </com.android.launcher3.Workspace>

android 7.0本地编译Launcher3报错

android 7.0本地编译过整套版本,但是单编Launcher3模块如下报错,单编其他模块是正常的,请大大神知道下,感谢 编译过程中报错提示如下: error: 'out/host/linux-x86/framework/host-libprotobuf-java-nano.jar', needed by 'out/host/common/obj/JAVA_LIBRARIES/launcher_proto_lib_intermediates/classes-full-debug.jar', missing and no known rule to make it make: *** [ninja_wrapper] 错误 1

android 怎么在root的情况修改launcher.db

修改/data/data/com.android.launcher/launcher.db 修改favorite表里面的桌面图标数据 ![图片说明](https://img-ask.csdn.net/upload/201612/03/1480711724_602565.png) 求大神

Android Launcher3中怎么控制app的触摸区域的大小?

最近在看Launcher3的源码,只发现All app只能显示几行几列,我想实现的是点击到图标的区域才有会反应 ,请教大神们该怎么修改???

怎么在launcher引导apk启动后,launcher启动前,启动一个自己的apk

android 7.0 怎么在launcher引导apk启动后 launcher启动前 启动一个apk

android 5.1 如何去掉桌面抽屉,直接将所有应用显示在桌面

如题,如何在5.1上修改。 public static boolean isDisableAllApps() { // Returns false on non-dogfood builds. - return getInstance().mBuildInfo.isDogfoodBuild() && - Utilities.isPropertyEnabled(Launcher.DISABLE_ALL_APPS_PROPERTY); + /* return getInstance().mBuildInfo.isDogfoodBuild() && + Utilities.isPropertyEnabled(Launcher.DISABLE_ALL_APPS_PROPERTY);*/ + return true; } 如上修改会引起很多其他问题。请修改过的大神指导下如何修改。

android9 launcher3 竖屏5行4列,横屏变成4行5列,怎么实现?

android9 launcher3 竖屏5行4列,横屏变成4行5列,怎么实现?

安卓7.1的原生Launcher2无法运行

我最近用安卓7.1代码里的Launcher2取代原来的Launcher后,开机报错,launcher强制停止, 大神们帮忙看看是什么问题,感激不尽.. 01-01 00:02:31.297 E/AndroidRuntime( 7262): FATAL EXCEPTION: setWallpaperDimension 01-01 00:02:31.297 E/AndroidRuntime( 7262): Process: com.android.launcher, PID: 7262 01-01 00:02:31.297 E/AndroidRuntime( 7262): DeadSystemException: The system died; earlier logs will point to the root cause 01-01 00:02:31.299 W/ActivityManager( 4362): Process com.android.launcher has crashed too many times: killing! 01-01 00:02:31.299 W/ActivityManager( 4362): Force finishing activity com.android.launcher/com.android.launcher2.Launcher 01-01 00:02:31.304 I/ActivityManager( 4362): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000100 cmp=com.android.launcher/com.android.launcher2.Launcher} from uid 0 on display 0 01-01 00:02:31.306 W/WindowManager( 4362): Failed looking up window 01-01 00:02:31.306 W/WindowManager( 4362): java.lang.IllegalArgumentException: Requested window android.view.ViewRootImpl$W@8d24662 does not exist 01-01 00:02:31.306 W/WindowManager( 4362): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:9415) 01-01 00:02:31.306 W/WindowManager( 4362): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:9406) 01-01 00:02:31.306 W/WindowManager( 4362): at com.android.server.wm.WindowManagerService.removeWindow(WindowManagerService.java:2387) 01-01 00:02:31.306 W/WindowManager( 4362): at com.android.server.wm.Session.remove(Session.java:193) 01-01 00:02:31.306 W/WindowManager( 4362): at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:3290) 01-01 00:02:31.306 W/WindowManager( 4362): at android.view.ViewRootImpl.doDie(ViewRootImpl.java:5917) 01-01 00:02:31.306 W/WindowManager( 4362): at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3626) 01-01 00:02:31.306 W/WindowManager( 4362): at android.os.Handler.dispatchMessage(Handler.java:102) 01-01 00:02:31.306 W/WindowManager( 4362): at android.os.Looper.loop(Looper.java:154) 01-01 00:02:31.306 W/WindowManager( 4362): at android.os.HandlerThread.run(HandlerThread.java:61) 01-01 00:02:31.306 W/WindowManager( 4362): at com.android.server.ServiceThread.run(ServiceThread.java:46) 01-01 00:02:31.309 I/ActivityManager( 4362): Killing 7262:com.android.launcher/1000 (adj 0): crash 01-01 00:02:31.309 D/ActivityManager( 4362): cleanUpApplicationRecord -- 7262 01-01 00:02:31.310 I/libprocessgroup( 4362): Killing pid 7281 in uid 1000 as part of process group 7262 01-01 00:02:31.325 I/ActivityManager( 4362): Start proc 7284:com.android.launcher/1000 for activity com.android.launcher/com.android.launcher2.Launcher 01-01 00:02:31.353 W/System ( 7284): ClassLoader referenced unknown path: /system/priv-app/Launcher2/lib/arm64 01-01 00:02:31.357 W/art ( 7284): JIT profile information will not be recorded: profile file does not exits. 01-01 00:02:31.366 W/ContextImpl( 7284): Failed to ensure /data/user_de/0/com.android.launcher/code_cache: mkdir failed: EACCES (Permission denied) 01-01 00:02:31.386 D/FrameBuffer( 4029): GLES, req offset: 1080 01-01 00:02:31.539 W/WallpaperManager( 7284): WallpaperService not running 01-01 00:02:31.539 E/AndroidRuntime( 7284): FATAL EXCEPTION: setWallpaperDimension 01-01 00:02:31.539 E/AndroidRuntime( 7284): Process: com.android.launcher, PID: 7284 01-01 00:02:31.539 E/AndroidRuntime( 7284): DeadSystemException: The system died; earlier logs will point to the root cause 01-01 00:02:31.541 W/ActivityManager( 4362): Force finishing activity com.android.launcher/com.android.launcher2.Launcher

android7.0,MTK平台,如何让未接的来电显示在通话图标上啊,哪位大佬知道啊,急急急啊

android7.0,MTK平台,如何让未接的来电显示在通话图标上啊,哪位大佬知道啊,急急急啊

android8.1 launcher3主页的箭头图标怎么去掉或隐藏?

![图片说明](https://img-ask.csdn.net/upload/202004/20/1587374582_866996.png) 这个滑动带动画效果的箭头怎么去掉呢?这个滑动带动画效果的箭头怎么去掉呢?这个滑动带动画效果的箭头怎么去掉呢?

安卓7.1上原生的Launcher2运行报错

我用安卓7.1代码里的Launcher2替代原来的Launcher后,开机无法启动桌面,强制停止,大神们帮忙看看是什么问题,感激不尽 01-01 00:02:31.297 E/AndroidRuntime( 7262): Process: com.android.launcher, PID: 7262 01-01 00:02:31.297 E/AndroidRuntime( 7262): DeadSystemException: The system died; earlier logs will point to the root cause 01-01 00:02:31.299 W/ActivityManager( 4362): Process com.android.launcher has crashed too many times: killing! 01-01 00:02:31.299 W/ActivityManager( 4362): Force finishing activity com.android.launcher/com.android.launcher2.Launcher 01-01 00:02:31.304 I/ActivityManager( 4362): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000100 cmp=com.android.launcher/com.android.launcher2.Launcher} from uid 0 on display 0 01-01 00:02:31.306 W/WindowManager( 4362): Failed looking up window 01-01 00:02:31.306 W/WindowManager( 4362): java.lang.IllegalArgumentException: Requested window android.view.ViewRootImpl$W@8d24662 does not exist 01-01 00:02:31.306 W/WindowManager( 4362): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:9415) 01-01 00:02:31.306 W/WindowManager( 4362): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:9406) 01-01 00:02:31.306 W/WindowManager( 4362): at com.android.server.wm.WindowManagerService.removeWindow(WindowManagerService.java:2387) 01-01 00:02:31.306 W/WindowManager( 4362): at com.android.server.wm.Session.remove(Session.java:193) 01-01 00:02:31.306 W/WindowManager( 4362): at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:3290) 01-01 00:02:31.306 W/WindowManager( 4362): at android.view.ViewRootImpl.doDie(ViewRootImpl.java:5917) 01-01 00:02:31.306 W/WindowManager( 4362): at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3626) 01-01 00:02:31.306 W/WindowManager( 4362): at android.os.Handler.dispatchMessage(Handler.java:102) 01-01 00:02:31.306 W/WindowManager( 4362): at android.os.Looper.loop(Looper.java:154) 01-01 00:02:31.306 W/WindowManager( 4362): at android.os.HandlerThread.run(HandlerThread.java:61) 01-01 00:02:31.306 W/WindowManager( 4362): at com.android.server.ServiceThread.run(ServiceThread.java:46) 01-01 00:02:31.309 I/ActivityManager( 4362): Killing 7262:com.android.launcher/1000 (adj 0): crash 01-01 00:02:31.309 D/ActivityManager( 4362): cleanUpApplicationRecord -- 7262 01-01 00:02:31.310 I/libprocessgroup( 4362): Killing pid 7281 in uid 1000 as part of process group 7262 01-01 00:02:31.325 I/ActivityManager( 4362): Start proc 7284:com.android.launcher/1000 for activity com.android.launcher/com.android.launcher2.Launcher 01-01 00:02:31.353 W/System ( 7284): ClassLoader referenced unknown path: /system/priv-app/Launcher2/lib/arm64 01-01 00:02:31.357 W/art ( 7284): JIT profile information will not be recorded: profile file does not exits. 01-01 00:02:31.366 W/ContextImpl( 7284): Failed to ensure /data/user_de/0/com.android.launcher/code_cache: mkdir failed: EACCES (Permission denied) 01-01 00:02:31.386 D/FrameBuffer( 4029): GLES, req offset: 1080 01-01 00:02:31.539 W/WallpaperManager( 7284): WallpaperService not running 01-01 00:02:31.539 E/AndroidRuntime( 7284): FATAL EXCEPTION: setWallpaperDimension 01-01 00:02:31.539 E/AndroidRuntime( 7284): Process: com.android.launcher, PID: 7284 01-01 00:02:31.539 E/AndroidRuntime( 7284): DeadSystemException: The system died; earlier logs will point to the root cause 01-01 00:02:31.541 W/ActivityManager( 4362): Force finishing activity com.android.launcher/com.android.launcher2.Launcher

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Intellij IDEA 实用插件安利

1. 前言从2020 年 JVM 生态报告解读 可以看出Intellij IDEA 目前已经稳坐 Java IDE 头把交椅。而且统计得出付费用户已经超过了八成(国外统计)。IDEA 的...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

魂迁光刻,梦绕芯片,中芯国际终获ASML大型光刻机

据羊城晚报报道,近日中芯国际从荷兰进口的一台大型光刻机,顺利通过深圳出口加工区场站两道闸口进入厂区,中芯国际发表公告称该光刻机并非此前盛传的EUV光刻机,主要用于企业复工复产后的生产线扩容。 我们知道EUV主要用于7nm及以下制程的芯片制造,光刻机作为集成电路制造中最关键的设备,对芯片制作工艺有着决定性的影响,被誉为“超精密制造技术皇冠上的明珠”,根据之前中芯国际的公报,目...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

差点跪了...

最近微信又搞出了一个大利器,甚至都上了热搜,当然消息最敏捷的自媒体人,纷纷都开通了自己的视频号。01 视频号是什么呢?视频号是微信体系内的短视频,它不同...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

Vue回炉重造之router路由(更新中)

你好,我是Vam的金豆之路,可以叫我豆哥。2019年年度博客之星、技术领域博客专家。主要领域:前端开发。我的微信是 maomin9761,有什么疑问可以加我哦,自己创建了一个微信技术交流群,可以加我邀请你一起交流学习。最后自己也创建了一个微信公众号,里面的文章是我自己精挑细选的文章,主要介绍各种IT新技术。欢迎关注哦,微信搜索:臻美IT,等你来。 欢迎阅读本博文,本博文主要讲述【】,文字通...

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

前几天我们公司做了一件蠢事,非常非常愚蠢的事情。我原以为从学校出来之后,除了找工作有测试外,不会有任何与考试有关的事儿。 但是,天有不测风云,公司技术总监、人事总监两位大佬突然降临到我们事业线,叫上我老大,给我们组织了一场别开生面的“考试”。 那是一个风和日丽的下午,我翘着二郎腿,左手端着一杯卡布奇诺,右手抓着我的罗技鼠标,滚动着轮轴,穿梭在头条热点之间。 “淡黄的长裙~蓬松的头发...

大胆预测下未来5年的Web开发

在2019年的ReactiveConf 上,《Elm in Action》的作者Richard Feldman对未来5年Web开发的发展做了预测,很有意思,分享给大家。如果你有机会从头...

立即提问
相关内容推荐