-
如何让launcher自动为新安装apk创建快捷方式到桌面
2013-10-12 04:00:11这是关于launcher的开发,目的是launcher **自动给新安装的app创建快捷方式** , **不是** app给自己创建快捷方式到workspace。求指点,谢谢! -
Ubuntu18.04 通过桌面快捷方式启动APK
2020-04-30 15:14:272.创建apk启动方式并修改启动页 /opt/****.sh adb shell pm list package # 查询已安装的APK adb shell dumpsys activity | grep "mResumedActivity" # 查看当前页面 #!/bin/bash cfc & # 启动模拟器 sleep 1 #...1.安装apk
adb install ***.apk
2.创建apk启动方式并修改启动页 /opt/****.sh
adb shell pm list package # 查询已安装的APK adb shell dumpsys activity | grep "mResumedActivity" # 查看当前页面
#!/bin/bash cfc & # 启动模拟器 sleep 1 # 等待1s # 启动Apk /usr/bin/adb shell am start -n com.qiyi.video.pad/org.qiyi.android.video.MainActivity
chmod 777 ***0.sh #赋予执行权限
3.启动模拟器并打开APP /usr/share/applications/***.desktop
[Desktop Entry] Encoding=UTF-8 # 编码格式 GenericName=iqiyi # 属性 Name=iqiyi # 快捷方式名称 Exec=bash -c '/opt/qiyi.sh' # 启动脚本 Icon=/usr/icons/iqiyi.png # 图标路径 Terminal=false # 不显示终端 Type=Application # 类别:应用 Categories=System;
4.通过aapt 解析apk
aapt dump badging com.*** | more aapt dump badging com.*** | grep -i activity
-
一个apk多个入口,在桌面上创建多个应用图标的桌面快捷方式
2015-11-27 13:41:38Android应用一般都是一个APK一个桌面图标,但有时候我们需要实现一个APK在桌面上有多个图标(比如BAT的某些应用,有桌面快捷方式),对于这种一个APK需要在桌面上显示多个图标的,通常有两种方法来实现: ...前言
Android应用一般都是一个APK一个桌面图标,但有时候我们需要实现一个APK在桌面上有多个图标(比如BAT的某些应用,有桌面快捷方式),对于这种一个APK需要在桌面上显示多个图标的,通常有两种方法来实现:
-
进入程序后生成桌面快捷方式,这个适合于在程序运行之后生成桌面图标;
-
在AndroidManifest.xml文件中配置多个入口,这个适合于程序安装完成后就在桌面上显示多个图标。
在桌面生成快捷方式,具体实现方式可参见:
本文介绍第二种方式,在程序安装完成后就会在桌面显示多个图标,这种方式适合于多个模块功能一样,但里面内容不一样(比如教材数据)的情况。
具体实现
在Android应用程序中,我们是通过给Activity标签中加入下面的intent-filter来指定程序的入口的,如果一个APK要有多个入口,自然而然地想到AndroidManifest.xml文件中会存在多个包含如下标签的Activity,所以我们需要做的仅仅是如何区分每一个桌面图标对应哪一个入口。
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
Activity有一个重要的属性process,这个属性是指定Activity运行时所在的进程。没有指定此属性的话,所有程序组件运行在应用程序默认的进程中,这个进程名跟应用程序的包名一致。在AndroidManifest.xml文件中所有组件元素的process属性能够为该组件设定一个新的默认值。但是任何组件都可以覆盖这个默认值,允许你将你的程序放在多进程中运行。如果这个属性被分配的名字以:开头, 当这个Activity运行时, 一个新的专属于这个程序的进程将会被创建。所以可以通过给每一个Activity指定标签、图标和进程名来区分不同的入口,具体实现如下:
<activity android:name=".PreSchoolChildActivity" android:label="@string/pre_school_child_app_name" android:process=":process.main" android:icon="@drawable/preschoolchild_launcher" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".EnglishSpellActivity" android:label="@string/english_spell_app_name" android:process=":process.sub" android:launchMode ="singleInstance" android:icon="@drawable/englishspell_launcher" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
需要注意的是,为Activity指定process属性后,还必须为其指定launchMode为singleInstance,这样才有效。除了为Activity指定android:process属性外,还可以通过为Activity指定别名的方式实现同样的效果,具体参见:activity-alias。
存在的问题
-
因为多个图标共用一个包名,所以只要卸载一个程序,与这个APK包名相同的程序也都会在桌面上消失;
-
从其它应用跳转到该APK时,需要通过ACTION区分跳转到具体哪一个模块(比如从资源管理器选择一个数据时,到底打开哪一个应用,需要通过action加以区分);
-
由于多个图标、splash、标题等需要区分的资源都放在一个APK中,这无形之中增加了APK的大小。
-
-
个人总结:创建快捷方式的两种方法
2016-09-13 11:29:33创建快捷方式的两种方法: 1 运用本地图片,即drawable中的图片,这些图片完全可以通过id来访问 2 运用网络图片,即打包apk时图片不存在的,是通过http请求下载下来的图片,可能会显示在应用的某个地方接:解决上篇博客留下的问题
1 运用本地图片,即drawable中的图片,这些图片完全可以通过id来访问
2 运用网络图片,即打包apk时图片不存在的,是通过http请求下载下来的图片,可能会显示在应用的某个地方
现在来说创建快捷方式的方法:
// 安装的Intent
Intent shortcut = new Intent(“com.android.launcher.action.INSTALL_SHORTCUT”);
// 快捷名称
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, tName);
// 快捷图标是否允许重复
shortcut.putExtra(“duplicate”, false);Intent shortcutIntent = new Intent(Intent.ACTION_MAIN); shortcutIntent.setClassName(getPackageName(), "您的应用的入口"); shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); // 快捷图标 本地Drawable中的图标 两种方式就这里不一样 Intent.ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_head); shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes); ================================================================== //第二种方式创建的 ivDirectCardHead 为你下载图片显示的imageView Drawable d = ivDirectCardHead.getDrawable();//通过imageview获取drawable BitmapDrawable bd = (BitmapDrawable)d;//将drawable转化为bitmap Bitmap bitmap = bd.getBitmap(); bitmap = Bitmap.createScaledBitmap(bitmap,142,142,true);//缩放bitmap shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap); ================================================================ // 发送广播 sendBroadcast(shortcut);
重点是在创建icon的时候的传参,一个是ICON,一个是ICON_RESOURCE。
两种方法的区别已经在代码里面注释了,纯属个人记录,如有错误请勿见怪。 -
Android 使用 shortcut 创建应用快捷方式
2020-05-20 19:40:35静态快捷方式直接在xml文件中定义即可,首先在res\xml文件夹下创建名为shortcut.xml的文件,并填入如下代码 shortcut.xml <?xml version="1.0" encoding="utf-8"?> <shortcuts xmlns:android=...App的快捷方式分为三种:静态快捷方式、动态快捷方式、固定快捷方式
静态快捷方式
静态快捷方式直接在xml文件中定义即可,首先在res\xml文件夹下创建名为shortcut.xml的文件,并填入如下代码
shortcut.xml <?xml version="1.0" encoding="utf-8"?> <shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <shortcut android:shortcutId="compose1" android:enabled="true" android:icon="@drawable/ic_launcher_background" android:shortcutShortLabel="@string/compose_shortcut_short_label1" android:shortcutLongLabel="@string/compose_shortcut_long_label1" android:shortcutDisabledMessage="@string/compose_disabled_message1"> <intent android:action="android.intent.action.VIEW" android:targetPackage="com.example.myapplication" android:targetClass="com.example.myapplication.ActivityTest" /> <categories android:name="android.shortcut.conversation" /> </shortcut> <\shortcuts>
其中
shortcutId 这是必须填写的值,此值必须唯一,否则会将两个相同id的快捷方式识别为同一个 enable 该快捷方式是否可用 icon 该快捷方式显示的小图标 shortcutShortLabel 该值必须为String.xml文件中定义的值,是对快捷方式的简短描述,如果LongLabel的描述过长则会显示ShortLabel shortcutLongLabel 该值必须为String.xml文件中定义的值,是对快捷方式的描述,当描述过长的时候将会显示ShortLabel中的信息 shortcutDisableMessage 当用户尝试使用被禁用的快捷方式的时候显示的信息,向用户显示为什么被禁用
然后在AndroidManifest文件的activity标签中将shortcut添加进去
<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" /> </activity>
这样再启动app,长按图标,就会有这样的效果(如果系统支持的话)
如果需要多个快捷方式的话,只需要在shortcut.xml文件中再添加一个就好了<?xml version="1.0" encoding="utf-8"?> <shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <shortcut android:shortcutId="compose1" android:enabled="true" android:icon="@drawable/ic_launcher_background" android:shortcutShortLabel="@string/compose_shortcut_short_label1" android:shortcutLongLabel="@string/compose_shortcut_long_label1" android:shortcutDisabledMessage="@string/compose_disabled_message1"> <intent android:action="android.intent.action.VIEW" android:targetPackage="com.example.myapplication" android:targetClass="com.example.myapplication.ActivityTest" /> <categories android:name="android.shortcut.conversation" /> </shortcut> <shortcut android:shortcutId="compose2" android:enabled="true" android:icon="@drawable/ic_launcher_background" android:shortcutShortLabel="@string/compose_shortcut_short_label1" android:shortcutLongLabel="@string/compose_shortcut_long_label1" android:shortcutDisabledMessage="@string/compose_disabled_message1"> <intent android:action="android.intent.action.VIEW" android:targetPackage="com.example.myapplication" android:targetClass="com.example.myapplication.MainActivity" /> <categories android:name="android.shortcut.conversation" /> </shortcut> </shortcuts>
动态快捷方式
动态快捷方式是可以在程序运行中进行创建的,创建一个ActivityTest作为第二个页面,在显示页面的时候动态创建快捷方式
ActivityTest.java public class ActivityTest extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); ShortcutManager shortcutManager = getSystemService(ShortcutManager.class); ShortcutInfo shortcut = new ShortcutInfo.Builder(this, "compose3") .setShortLabel("快捷方式二") .setLongLabel("这是快捷方式二") .setIcon(Icon.createWithResource(this, R.drawable.ic_launcher_foreground)) .setIntent(new Intent(ActivityTest.this, ActivityTest2.class).setAction(Intent.ACTION_VIEW)) .build(); shortcutManager.setDynamicShortcuts(Arrays.asList(shortcut)); } }
在刚安装和打开第一个界面的时候快捷方式是这样的
在打开第二个界面之后
快捷方式就会变成这样了,多了一个动态创建的快捷方式。固定快捷方式
固定快捷方式可以将快捷方式以图标的方式固定在桌面上,创建第三个界面ActivityTest2来创建固定的快捷方式
public class ActivityTest2 extends AppCompatActivity { Context mContext; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test2); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ShortcutManager shortcutManager = mContext.getSystemService(ShortcutManager.class); assert shortcutManager != null; if (shortcutManager.isRequestPinShortcutSupported()) { ShortcutInfo pinShortcutInfo = new ShortcutInfo.Builder(mContext, "compose4") .setShortLabel("这是快捷方式三") .setLongLabel("这是快捷方式三") .setDisabledMessage("你真的要禁用吗?") .setIntent(new Intent(ActivityTest2.this, ActivityTest2.class).setAction(Intent.ACTION_VIEW)) .setIcon(Icon.createWithResource(mContext, R.drawable.ic_launcher_foreground)) .build(); // 可以在此创建intent来通知你用户创建了这个固定快捷方式 Intent pinnedShortcutCallbackIntent = shortcutManager.createShortcutResultIntent(pinShortcutInfo); //在此完善你接收到广播之后的动作 PendingIntent successCallback = PendingIntent.getBroadcast(mContext, /* request code */ 0, pinnedShortcutCallbackIntent, /* flags */ 0); shortcutManager.requestPinShortcut(pinShortcutInfo, successCallback.getIntentSender()); } } }); } }
然后在打开第三个页面的时候,就可以点击按钮来创建固定快捷方式
那么快捷方式就会出现在屏幕上了
-
安卓开发之APK安装之后自动在桌面上创建快捷图标
2016-01-21 16:57:00可以看到很多的APP在第一次运行之后就会弹出来一个Toast说什么快捷方式已创建,那么这个东西是怎么搞出来的呢 很简单就下面几句话,写在这儿以后好copy 先创建一个类 1 import android.app.Activity; 2 ... -
160824华为Mate7创建一键锁屏快捷方式
2016-08-24 14:43:56通过电源键锁屏,易导致按键损坏,而下拉栏,又不方便,下第三方程序又过于小题大做,其实,EMUI中是有一键锁屏软件的,可通过ROOT后...下载软件: QuickShortcutMaker(创建捷径).apk 地址:http://down.51cto.com/data/2236... -
APK/ROM签名 KeyStore创建 转x509 bootanimation压缩 批处理文件
2015-10-13 10:38:34将自己写的几个简单批处理文件打包来赚分,看下对自己是否有用再下载 比较简单应该一看就懂 00_.bat 用来在当前目录创建 KeyStore ...推荐将快捷方式放入发送到中(shell:sendto),然后选择文件发送到就可以签名或压缩了 -
Android - 应用快捷方式ShortCut
2020-10-23 11:22:56静态快捷方式:在打包到APK或应用包中的资源文件中定义。适合在用户与应用程序互动的整个生命周期内使用一致结构链接到内容的应用程序,即固定功能,固定跳转的页面。 动态快捷方式:只能在运行时由应用发布,更新和... -
一个apk多个入口,在桌面上创建多个应用图标
2015-04-07 20:47:19Android应用一般都是一个APK一个桌面图标,但有时候我们需要实现一个APK在桌面上有多个图标(比如BAT的某些应用,有桌面快捷方式),对于这种一个APK需要在桌面上显示多个图标的,通常有两种方 -
字符界面下的快捷方式
2014-11-29 16:25:58相当于字符界面的快捷方式 原理: 读取 "C:\path.ini" 文件里的设置, C:\path.ini文件格式: name=path; eg: eclipse=D:\android\eclipse\eclipse.exe; ps=D:\\Program Files (x86)\\Adobe Photoshop CS6... -
由FileManager添加桌面快捷方式所引发的知识点思考
2011-09-15 23:48:15今天给大家带来关于创建桌面快捷方式的知识点,包括创建文件快捷方式、创建APK快捷方式以及一些注意事项。 众所周知,我们能在所有程序里看到应用的图标是因为我们将程序的入口类 在AndroidManiest设置为:&... -
体积最小极速秒装APK安装器
2016-10-01 00:56:46使用批处理和ADB实现的快捷APK安装器,极速秒装,避免使用重量级工具 用法:将要安装的APK文件直接拖放到批处理文件上 *经常使用的话,将批处理文件创建桌面快捷方式,需要时拖放到快捷方式上即可 -
一文看懂Android APK安装的原理
2019-07-23 23:56:12我们知道,Windows应用程序的安装包是一个可执行的压缩包,安装的过程是把压缩包中的数据和依赖库拷贝到安装目录,再在桌面或启动栏创建快捷方式,那么安卓的APK安装过程是不是也是这样的呢?本文将为大家解答这些... -
一文看懂 Android APK 安装的原理
2019-08-27 14:35:07我们知道,Windows应用程序的安装包是一个可执行的压缩包,安装的过程是把压缩包中的数据和依赖库拷贝到安装目录,再在桌面或启动栏创建快捷方式,那么安卓的APK安装过程是不是也是这样的呢?本文将为大家解答这些... -
Android 7.1.1新特性,实现页面启动的快捷方式
2020-01-03 17:35:59就类似于ZFB这样的 ...在res文件夹里创建xml文件夹,创建一个shortcuts.xml文件 <?xml version="1.0" encoding="utf-8"?> <shortcuts xmlns:android="http://schemas.android.com/apk/r... -
web-to-app:用于创建您网站的android apk文件的android源代码。 只需将MainActivity.java中的url更改为您的...
2021-03-24 22:10:37为您的网站创建android移动应用的简便快捷方式。 只需将MainActivity.java中的url更改为您的网站主机名,就可以了。 您可以进行自定义,例如使用徽标和其他丰富功能更改应用程序图标。 web-to-app.apk是源代码中... -
Launcher 在配置文件中配置桌面快捷方式->代码分析
2014-11-13 18:00:57在res/xml文件夹下面default_workspace创建一个资源文件,格式如下: xml version="1.0" encoding="utf-8"?> xmlns:launcher=... -
Apex Launcher Pro 4.5.0.apk
2019-04-11 15:43:32•将Apex Launcher设置为默认主屏幕应用程序,以便从其他应用程序(例如Chrome)创建图标快捷方式。 此应用程序使用设备管理员权限进行可选的屏幕关闭/锁定功能。 爱Apex发射器?在Google Play上为我们评分。我们... -
系统 OTA升级后,新预制的APK 在桌面没有图标的问题
2019-01-25 14:11:22launcher没有allAppButton菜单,apk图标都在桌面上排; 在新的版本里面预制apk后,做OTA...在RK平台目前做的解决方式是发送创建apk快捷图标的广播;或者recovery的时候清空launcher3数据;这个是在launcher3中的Work... -
Tasker Pro 5.7.0.apk
2019-04-18 16:32:47*触发器:应用程序,时间,日期,位置,硬/软状态,事件,快捷方式,小工具,计时器,插件 *操作:200+内置,插件支持 *任务:循环,变量,条件 *场景:设计自己的屏幕叠加 *应用创建:创建自己的独立应用程序分享或... -
Suma Launcher Pro 1.0.0.apk
2019-04-11 17:03:56•快捷方式和文件夹的自定义图标和标签 •选择不同的文件夹预览样式和背景 •抽屉应用程序排序(标题,安装日期,主要使用) •隐藏来自的应用程序抽屉 •锁定桌面以防止意外更改 •方便的主屏幕手势(捏,向上/向下... -
Nova Launcher Prime 6.1.5.apk
2019-04-18 17:04:18图标滑动 - 设置用于在应用程序快捷方式或文件夹上滑动的自定义操作 更多滚动效果 - 例如Wipe,Accordion和Throw Mod Lite信息: 语言:英语,俄语,乌克兰语。 优化的图形/ Zipalign Mod Pixel信息: Nova ... -
安卓X Icon Changer 1.5.44.apk
2020-07-10 11:09:16X Icon Changer是一款完全免费且实用的应用程序,可以帮助您更改和自定义任何应用程序的图标和名称。...我们的应用程序将在主屏幕上创建一个带有新图标的快捷方式。这是装饰Android手机的最简单方法。已去除广告 -
APK.xml.dex反编译工具包v1.6.exe
2012-12-09 20:29:58本工具,直接在鼠标右键创建快捷菜单; 非常方便汉化工作者对APK或Dex文件的编译操作; 本工具箱集合了,当今最强悍,最犀利的APK反编译工具; 【注意:反编译文件名称 不能用中文,否则无法回编译。】 ... -
Speed_Cleaner_v1.4.7.apk
2020-02-14 14:43:09在主屏幕上创建1-tap Booster快捷方式,以更有效地加快电话速度。MAX Booster清理手机。 带有AVTEST认证的#1引擎的移动安全和免费杀毒软件MAX Security杀毒软件(适用于android的病毒清除器)提供了可靠的... -
Nova_Launcher_Pro_v6.2.9.apk
2020-02-14 14:13:18图标滑动–设置自定义操作以滑动应用程序快捷方式或文件夹 更多滚动效果–例如“擦除”,“手风琴”和“掷” Mod Lite信息: 优化的图形和清理的资源<改进的结果(5.73 MB apk大小); 语言:EN,RU; 删除了... -
Android APK+Dex文件反编译及回编译工具
2011-11-24 02:17:42本工具,直接在鼠标右键创建快捷菜单; 非常方便汉化工作者对APK或Dex文件的编译操作; 本工具箱集合了,当今最强悍,最犀利的APK\Dex反编译工具; 【注意:反编译文件名称 不能用中文,否则无法回编译。】... -
All-In-One Toolbox Pro 8.1.5.5.8.apk
2019-04-11 15:41:56轻松处理存储在外部SD卡上的所有文件/文件夹:浏览,复制,粘贴,移动,删除,搜索,压缩,解压缩,创建新的,共享,排序,创建快捷方式,多选,检测大文件... -App Manager *将内部存储应用程序移动到外部SD卡,为...