你好,我是@fookwood 👋
我是一名定居在杭州的程序员,目前从事自由职业
13年毕业于郑州大学软件工程专业,先后工作于alibaba、huhulab和HUAWEI
我主攻Java相关领域,曾从事Android开发6年,主要熟悉UI绘制和逆向分析,后从事Java后端,擅长使用Spring全家桶。著有译作《Java性能权威指南(第2版)》,我偶尔会写些文章在闷瓜蛋子的博客上。Github上还没有什么作品,希望接下来会有
你可以通过页面左侧的个人信息联系到我
[不再维护啦]更改官方的Launcher3使得可以在Android Studio编译
Home Page: https://fookwood.com/android
License: Other
你好,我是@fookwood 👋
我是一名定居在杭州的程序员,目前从事自由职业
13年毕业于郑州大学软件工程专业,先后工作于alibaba、huhulab和HUAWEI
我主攻Java相关领域,曾从事Android开发6年,主要熟悉UI绘制和逆向分析,后从事Java后端,擅长使用Spring全家桶。著有译作《Java性能权威指南(第2版)》,我偶尔会写些文章在闷瓜蛋子的博客上。Github上还没有什么作品,希望接下来会有
你可以通过页面左侧的个人信息联系到我
我想要把Launcher3做成第三方apk,在default_workspace.xml文件配置hotSeat区域的应用拨号,联系人,信息,浏览器。但我发现一个严重的问题。这些配置都是根据包名和类名来预置的。我把launcher安装在其他的机器上,如华为p6,别人的rom把拨号的包名改了。我这个预置就无效了,然后HotSeat区域就不显示拨号应用了。还有其他很多ROM 都是改了系统原生的包名,这个问题怎么办,我怎么预置HotSeat啊??求大神指点
launcher3 默认的文件夹预览图背景是圆的。里面的应用是横着层叠在一起的。 我想要改成 像iphone那样 或者 腾讯桌面那样,文件夹中的应用预览图标按行列整齐摆放,怎么改啊。求指导啊,楼主
怎么去掉 Launcher3 workspace上的那个Google搜索框啊 ,试了半天 ,它始终还在。。
11-20 14:30:29.965: E/AndroidRuntime(23991): FATAL EXCEPTION: main
11-20 14:30:29.965: E/AndroidRuntime(23991): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.launcher3/com.android.launcher3.Launcher}: java.lang.RuntimeException: Binary XML file line #16: You must supply a layout_width attribute.
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2306)
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.app.ActivityThread.access$600(ActivityThread.java:156)
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340)
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.os.Handler.dispatchMessage(Handler.java:99)
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.os.Looper.loop(Looper.java:153)
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.app.ActivityThread.main(ActivityThread.java:5299)
11-20 14:30:29.965: E/AndroidRuntime(23991): at java.lang.reflect.Method.invokeNative(Native Method)
11-20 14:30:29.965: E/AndroidRuntime(23991): at java.lang.reflect.Method.invoke(Method.java:511)
11-20 14:30:29.965: E/AndroidRuntime(23991): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
11-20 14:30:29.965: E/AndroidRuntime(23991): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
11-20 14:30:29.965: E/AndroidRuntime(23991): at dalvik.system.NativeStart.main(Native Method)
11-20 14:30:29.965: E/AndroidRuntime(23991): Caused by: java.lang.RuntimeException: Binary XML file line #16: You must supply a layout_width attribute.
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:491)
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:5705)
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.view.ViewGroup$MarginLayoutParams.(ViewGroup.java:5847)
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.widget.FrameLayout$LayoutParams.(FrameLayout.java:610)
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.widget.FrameLayout.generateLayoutParams(FrameLayout.java:554)
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.widget.FrameLayout.generateLayoutParams(FrameLayout.java:56)
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.view.LayoutInflater.inflate(LayoutInflater.java:477)
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
11-20 14:30:29.965: E/AndroidRuntime(23991): at com.android.launcher3.Launcher.getQsbBar(Launcher.java:3301)
11-20 14:30:29.965: E/AndroidRuntime(23991): at com.android.launcher3.SearchDropTargetBar.setup(SearchDropTargetBar.java:72)
11-20 14:30:29.965: E/AndroidRuntime(23991): at com.android.launcher3.Launcher.setupViews(Launcher.java:1206)
11-20 14:30:29.965: E/AndroidRuntime(23991): at com.android.launcher3.Launcher.onCreate(Launcher.java:430)
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.app.Activity.performCreate(Activity.java:5122)
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
11-20 14:30:29.965: E/AndroidRuntime(23991): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)
11-20 14:30:29.965: E/AndroidRuntime(23991): ... 11 more
你知道怎么修改hotseat的高度吗,我将hotseat的图标显示文本,但是由于hotseat的高度不够,文本无法显示
How does a launcher app update itself?
Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/" + "update1.apk"));
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(uri,
"application/vnd.android.package-archive");
startActivity(intent);
Any help is greatly appreciated!
@fookwood I am trying to run your project but the project don't run. It just showing error. Any idea why it is not building?
D:\android\fookwood\quickstep\src\com\android\quickstep\InstantAppResolverImpl.java:22: error: cannot find symbol
import android.content.pm.InstantAppInfo;
^
symbol: class InstantAppInfo
location: package android.content.pm
给launcher设置左屏后,滑动的时候屏幕会变暗,滑动完毕屏幕又恢复原来的亮度,请问是什么原因。谢谢。
请问这个问题有解决的办法吗?
又要麻烦你了,你知道在哪修改默认桌面数据吗,我发现defalut_workspace不行,他直接从数据库获取
最近看Launcher3,发现有些地方很难看懂,尤其是DynamicGrid中关于 应用尺寸,大小,间距这些都是怎么算出来的
numColumns = Math.round(invDistWeightedInterpolate(minWidth, minHeight, points));
iconSize = invDistWeightedInterpolate(minWidth, minHeight, points);
iconTextSize = invDistWeightedInterpolate(minWidth, minHeight, points);
这里 都是用invDistWeightedInterpolate(minWidth, minHeight, points) 这个方法算出来的,但这个方法里的算法我实在是难以看懂,感觉好复杂,看了两天,还是不知道它怎么算出来的。
如果我要改应用图标的尺寸,纵向和横向的数量,以及HotSeat区域的图标大小和间距,怎么改猜最好呢,不影响代码的自适应能力?
我自己开发的launcher,想安装在任何手机中时,它就自动设为默认的launcher,按Home键不会弹出选择launcher 的框,直接进入我的launcher。请问,作为一个第三方Launcher,能做到这一点吗???求指点
刚才又看了一下楼主阁下的资料,看到你说在云OS中做桌面,其实我想问一个业界的问题,SystemUI 能像Launcher一样 独立出来 做成第三方apk 吗??
据我所知,以前都是和ROM一起做的,好像还没有见过 单独的第三方 SystemUI apk,可以到处安装的那种。楼主见识应该比我广 ,能帮忙评估一下,这种东西能做吗
怎样修改文件夹 展开后 像小米或者Iphone那样,全屏显示呢。Launcher3 默认是局部显示的,试了半天 都没生效,到底应该在哪里改呢
运行时 报错
ToggleWeightWatcher] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.android.launcher3/.ToggleWeightWatcher }
[2014-10-23 10:53:58 - ToggleWeightWatcher] ActivityManager: Error type 3
[2014-10-23 10:53:58 - ToggleWeightWatcher] ActivityManager: Error: Activity class {com.android.launcher3/com.android.launcher3.ToggleWeightWatcher} does not exist.
大神,这个怎么解决啊 ,代码里明明就有ToggleWeightWatcher这个类,为何提示找不到呢
Hello, I am very excited to learn of your code today and download your code, how can I download is not the same as a month ago, to ask you, do you have any changes, and then, as you ask, prefabricated Widget, and create a shortcut, please?
Launcher3 横屏时默认hotseat位置在左边,怎么调整到左边或是底部?谢谢。
我在导入最新的Launcher3时,提示没有BackupProtos.java这个文件,查找让我用这个命令:
protoc --javanano_out=src/ -I protos protos/backup.proto
去生成,但是找了很多资料没有找到怎么执行这个命令,看到你这个项目中有这个文件,但是导入最新的项目不行,想请教一下,这个文件是是怎么生成的,可以提供个详细的生成步骤吗?
多谢了!
Error while executing: am start -n "com.android.launcher3/com.android.launcher3.ToggleWeightWatcher" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.android.launcher3/.ToggleWeightWatcher }
Error type 3
Error: Activity class {com.android.launcher3/com.android.launcher3.ToggleWeightWatcher} does not exist.
小米3运行不了,不是很懂
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.