什么正确释放小序的出品力?

Badge分析

所谓Badge,原本是iOS上的一个效能,但是被Android抄的大多矣,也就是变成了Android的标配。图虽未上了,大家还清楚的。

采取icon显示角标实际上是在Launcher中贯彻之,其实无论是是角标还是别对快捷方式的增删改查,都是待Launcher支持之,应用在增删改查快捷方式和装置、卸载时,都见面时有发生相应的播放,通过之广播,Launcher会对快捷方式进行改动。

良庆幸,Android原生ROM的Launcher并无富有让icon添加角标的机能,因为Android的计划性思想是管持有消息中心都放于Notification通知栏中,只有iOS这种通知栏半残废的,才会采取角标。这戏意儿,让强迫症患者,完全不能自理,每日陷落在破除小红点的活着着。

老大悲剧,Android的AOSP代码被国内各级大ROM厂商改的不能自理。很多被涂改的ROM都得以支撑这种角标的意义,甚至是众多老三方Launcher,也供了这种效益。其基本原理也是天下一挺抄,都是监听发出的播音来进行快捷方式的改动,但是,关键是从未有过Google亲爹的支撑,所有的落实还不统一,大家自己做自己之,没有统一的接口,导致各种碎片化非常沉痛。

现行原理非常清晰了,关键就一旦尽可能多的找到这些ROM、Launcher的改icon的广播。

于查该问题时常,我找到了https://github.com/leolin310148/ShortcutBadger
这个库房,很多地方参考了这库房,但是该库由于老长远没保护了,所以我领到了里收集的有的Badge的方法,并召开了包罗万象,这里针对作者表示感谢。

成人路上,不断解决各种问题,就是一个逐步提升好操作系统的过程。——李笑来

各种ROM角标分析

什么最大化释放小序的制品力?

MIUI6&7 Badge

以下内容来自MUI开发者平台:

平等、基本介绍

1、默认的图景

当app 向通知栏发送了扳平长达通知
(通知不牵动进度长长的以用户可去除的),那么桌面app
icon角标就见面展示1.此时app显示的角标数是暨通知栏里app发送的通知数对应之,即于通知栏发送了有点通知就会见来得小角标。

2、通知可以定义角标数

比如说 有5封闭无念邮件,通知栏里只是会显得同一长通知,但是想叫角标显示5.
得以于作通报时加个标志。

改MIUI的法则是经过反射拿到Notification的私家属性extraNotification,但是这extraNotification在MIUI系统中重定义了,这个近乎就是MIUI系统中之android.app.MiuiNotification这个类似,这个类似里来个民用属性messageCount,我们如果改变者messageCount价就能显得的改变app
icon的角标数了。

亚、实现代码

老三方app需要为此反射来调用,参考代码:

/**
 * 设置MIUI的Badge
 *
 * @param context context
 * @param count   count
 */
private static void setBadgeOfMIUI(Context context, int count) {
    Log.d("xys", "Launcher : MIUI");
    NotificationManager mNotificationManager = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);
    Notification.Builder builder = new Notification.Builder(context)
            .setContentTitle("title").setContentText("text").setSmallIcon(R.mipmap.ic_launcher);
    Notification notification = builder.build();
    try {
        Field field = notification.getClass().getDeclaredField("extraNotification");
        Object extraNotification = field.get(notification);
        Method method = extraNotification.getClass().getDeclaredMethod("setMessageCount", int.class);
        method.invoke(extraNotification, count);
    } catch (Exception e) {
        e.printStackTrace();
    }
    mNotificationManager.notify(0, notification);
}

差一点龙前,我更翻阅了2017年5月描绘的同一篇有关小程序的篇章《如何找到小序的超级切入点?》,现在读来文风青涩但还算是饱满,文中阐述了三个意见:

Sony Badge

https://forsberg.ax/en/blog/android-notification-badge-app-icon-sony/

  • 什么控制小序的出品一定?
  • 何以支配小序的制品形象?
  • 争控制小程序的资源投入?

Samsung Badge

任由上述三单问题之答案如何,只要用愿景定义清楚就可以了,因为摆在豪门面前的都是平等久扑朔迷离的小程序路。不管你承不承认,跟进小程序,延伸已生成品线都是以撸微信一波羊毛,即所谓的周旋红利。

方法一

透过三星Launcher自己的播放,来深受采用添加角标:

/**
 * 设置三星的Badge
 *
 * @param context context
 * @param count   count
 */
private static void setBadgeOfSumsung(Context context, int count) {
    // 获取你当前的应用
    String launcherClassName = getLauncherClassName(context);
    if (launcherClassName == null) {
        return;
    }
    Intent intent = new Intent("android.intent.action.BADGE_COUNT_UPDATE");
    intent.putExtra("badge_count", count);
    intent.putExtra("badge_count_package_name", context.getPackageName());
    intent.putExtra("badge_count_class_name", launcherClassName);
    context.sendBroadcast(intent);
}

斯方法无需另外权力,只需要知道App的包名和类名。所以,你当然好于程序中为另外任意一个App设置任意数量之角标,而且没有其余提示,是的,很流氓,谁说非是吗,当然别说凡是自我报您的,你就算所而是百度的。例如:

intent.putExtra("badge_count_package_name", "com.tencent.mobileqq");
    intent.putExtra("badge_count_class_name", "com.tencent.mobileqq.activity.SplashActivity");

拿包名和好像名用QQ的更迭下,然后您不怕足以肆意、为所待为。

01

题材重新回到小序,小序走过了第1年的生命周期,我觉得不行有必不可少再想起那时小程序产品定位官方概念:

稍序定义:微信小程序是相同栽新的连用户和服务的不二法门,它好于微信内为便捷地取得和传播,同时持有优良之运用体验。

  • 一半年前(201705),从小程序平台产品维度,提炼了三个根本词:很封闭、厚背景、新老事物。
  • 一半年晚(201801),从小程序产品执行维度,总结了三只主要词:用户、分享、粘性。

记忆,之前微信是为给予“用完就活动”的极远景,而具体远没达到实现理想的时机。这段时有些序更为火得一倒塌糊涂,朋友围充斥着用户破千万、日活百万之故事,还转说看在即好让丁心潮难平。切未曾想到电商成为了稍稍序的首先只风口,甚至略程序的祖师也远非想到,这虽是产品的魅力所在——未知。

稍程序本身就是是千篇一律慢慢悠悠产品,从小程序产品力的开放路线能够充分清楚看到本的制品路线图(Roadmap),用户正为申报、产品增量迭代,小程序本身是同一缓慢极为可观之出品,或者说那个偷有同一居多极为出色之产品人为底交到。

方法二

https://github.com/shafty023/SamsungBadger

02

周密看,似乎一切发生硌不平等!一切疯狂产品数据增长背后,有这样一漫漫活暗线——2A3R用户增长型。产品经营对AARRR的数据模型都格外熟稔,并且以红的《增长黑客》一书中来不行出色的阐释,这里自己便未细心讲。

2A3R定义:AARRR是取得用户(Acquisition)、提高活跃度(Activation)、提高留存率(Retention)、获取收入(Revenue)、自传入(Refer),这个五独单词的缩写,对承诺就一个活生命周期中的5单重要环节。

2A3R对诺在五单不等之出品品,而立即五独号恰恰组成了一个自下而上的倒金字塔漏斗。从活范围而言,暂且忽略技术、资本、政策等要素,如此惊人用户增长得益于小序的制品内涵,因为微微程序本身及2A3R增长型高度吻合,能免增长也?

多少序产品力框架下,有4单要点和2A3R的契合度满盈,如果按照这么几聊点,相信于微信就艘诺亚方舟上,无论何种体量级别之出品都能擦下一致层油。自6月份以来,有幸全面主导了一样慢电商小程序的产品框架设计,从中自认为摸出了少数路,而及时几点或是场面上或多或少小序可以的要素,而可能成多少程序下一阶段产品力释放的突破口。

LG Badge

Samsung好基友,三星星能用之,LG几乎都足以为此,连Bug都一样。

1. 用户增长——2A3R模型:获取用户(Acquisition)

抱用户或是另一样舒缓产品之主干门槛,无论产品形态如何、提供怎样的服务,都须迈出了这首先道坎,如果说连个用户都未曾,还怎么继续于下戏也?小序提供了同等模仿简洁高效之记名/注册机制,海量微信用户基数之上,又为用户和产品中加上了直通车,极大降低了用户营销成本。当然,这个价值来微信平台我价值压榨。

登录/注册机制设计

  • 简单单授权:微信基础授权(wx.getUserInfo),获取用户UnionID;微信手机号授权(getPhoneNumber),获取绑定微信的手机号;

  • 账户融合:产品账户体系和微信账户体系的融合,上下兼容,避免账户冗余,规避一总人口大半账号的尴尬;

2. 社至分享——2A3R模:提高活跃度(Activation)、自传入(Refer)

尚记,之前自己提到的一个见识:于电商而言,个体(SKN)更可生存。微信本身就是一个交道平台,连接分散用户,而电商本身又是一个中心化的出品形象,本质上是有悖于的。我个人觉得,在微信连接用户的底子及,顺便搭载了总人口同物的涉及,虽然只是顺便,但出于微信体谅极大及用户零散型需求,这种可预见的市场前景也是可望而不可即。

交际分享体系规划

  • 因为货物呢根基的传播:通过朋友、微信群可以便宜传播小程序的情(商品、资讯等情节传播);

  • 因为用户为根基之传遍:通过用户中的享受,以组织形式实现优惠价格购买;据行业外朋友的披露,拼团购是微程序交易线转化最高的均等种样式;

  • 因略程序二维码的传,微信尚未对小程序开放对象围(估计下也不见面开),借助小小程序二维码可以展现实现朋友围的传、价值释放;

3. 触达用户——2A3R型:提高留存率(Retention)

享受是一模一样种介乎口碑触达用户的计,而产品内的用户连接要负PUSH机制实现,而聊程序下和劳务号好像之招——模板消息。小序模板消息的力开放后,能越来越弥补事后之用户之连日,一定水平上呢促成了用户的召回。坦白说,小程序的初衷并没有设想用户存在的题目,也不怕是活我的用户落地之题目,甚至于理念及和用完便走是相反的。

模板消息推送策略设计

  • 根据服务之沙盘消息:起至一个基础服务之意图,对成品特色的长尾补足,是针对基础功用的拉开;

  • 据悉营销之动消息:某种意义上说,政策及是违规之,但时普遍存在,拼多多、蘑菇街正非常光明的于在擦边球(估计还要黑幕,据我说明,有些信息模板都是各自的…);

  • 模板消息推送依赖让用户积极起身,获得推送机会(FormID),并且按照严格的时机次数、生命周期(提交普通表单1不善,支付到位3糟糕),根据计划之音讯场景,存在一些信息丢失的场面(有损害设计);

4. 情连——产品组合策略

微信以产品及一直还保持克制,一个微信公众平台就beta了6年左右,堪称产品界神话。公众号内容元素一直还未曾开过反链接这项(一般还是<阅读原文>的唤起),招人诟病了数年,最终还是对小程序开了平等扇窗。配置小程序链接,将用户由于推介内容一直导入到对象内容是高转化的表现特征。本质上是产品组合策略,以用户对大众号的万丈依赖,驱动更多内容服务商入局,变相的将民众号成熟平台多新的风味焕发新的恐怕,一个双向加持的经过。

公众号文章跳反链接设计

  • 小程序链接结构:两个部分,路径+参数,路径特指小程序路径,参数特质内容结构,只有两者组合在一起才是共同体的小程序路径;

  • 小程序链接形态:三栽造型,文字链接、图文链接、小程序卡片,丰富的内容元素,仪式感、形式感都足以彰显小程序的优势;

  • 小程序链接缺陷:只有微信认识,文章的跨终端、多状况传播就十分不便兼顾,一切都围微信生态,而这种局限正式源于小程序本身;

案例:小程序链接

案例:小程序链接

华为EMUI Badge

目前华为的ROM只支持为停放的App添加角标,华为本身没有给出相应的接口。

03

自身个人认为,登录/注册机制设计、社交分享体系规划、模板消息推送策略设计、公众号文章跳反链接设计,四个点的小序能力是无限值得打磨的,遵循2A3R加强型的基本原理,是最好有或释放产品可能的季只中心。一个必要非充分规范,具备了就出矣能火的口径,而那些都变色之有些程序一定满足以上四只尺码的一个要么几乎独。

# 说文解字,一贪图一律文章——小序四项核心产品力
图一

图二

稍程序的愿景——据此了就移动,可如今谁还未曾悟出电商享受了不怎么序的首先波恩泽,一时半会还真的是走不了,那么下一个爆发点会在啊也?

本身实在不明了!
会见无会见是线下也?
会晤无会见是打吗?

无论是是啊,想就此了便活动,我眷恋工作并未那粗略,一时半会是走不了之。微信社交的连接本质将本来分散的价值可以释放,如何将价值逾充分开掘转化是一个尤为尖锐之话题,产品怎么留住用户还是当用户发求的情景下,如何在适当的辰、地点得以复现(能常为人回想是同一宗幸福得事情)又是一个急功近利的问题?

酷派 Badge

简言之粗暴,不支持。我爱不释手,类原生。

04

一致年得有点序产品时,我只能承认:粗序是一个针对技术再团结的产品形象!可能就虽是得称小<程序>的原故之一吧?!作为一个初杀的老三在放能力,平台本身的成长性迫使跟进的活也步亦趋,一步步迭代完善。产品经营对小程序的了解程度呢一直影响产品架构的健壮性,而强化对小程序产品力底层原理的明白自然成了必经之路。

生意需求反刍产品特征,产品满足用户需求。商业、产品、用户三者之间还来尚且无法取得真正含义及之均,唯有时务取舍,或许终于不达一个十分之挑选。

稍微程序来微信生态的加持,撸点羊毛真不是难题,如果说因为同样栽胜似值之开辟姿势,或许下一个流量奇迹就是公?

立马谁而说得遵循呢?

关联阅读:《如何找到小序的极品切入点?》


原创声明:正文的最终解释权归作者本人有,未经许可,不得转载。

ZUK ZUI Badge

ZUK作为一个大小众的无绳电话机厂商,居然以网上官方给有了详细的开发者文档,就及时或多或少,很多坏厂都欠好好打打自己之耳光。

由实在找不至ZUK的测试机,所以这里叫出ZUK的开发者文档,有需要的自己看吧:

http://developer.zuk.com/detail/12

HTC Badge

HTC虽然没落了,但好歹是第一才Android的寄生兽,好歹也支持下。

Intent intentNotification = new Intent("com.htc.launcher.action.SET_NOTIFICATION");
ComponentName localComponentName = new ComponentName(context.getPackageName(),
        AppInfoUtil.getLauncherClassName(context));
intentNotification.putExtra("com.htc.launcher.extra.COMPONENT", localComponentName.flattenToShortString());
intentNotification.putExtra("com.htc.launcher.extra.COUNT", count);
context.sendBroadcast(intentNotification);

Intent intentShortcut = new Intent("com.htc.launcher.action.UPDATE_SHORTCUT");
intentShortcut.putExtra("packagename", context.getPackageName());
intentShortcut.putExtra("count", count);
context.sendBroadcast(intentShortcut);

该规律同是用广播,不解释了。

锤子

锤子很遗憾,使用的凡原生Launcher进行的改动,只有System
App具有取角标的权能。

Nova Badge

Nova是相同缓很赞赏的Launcher,作为第三方Launcher,它的使用率挺大(当然是以海外)。该Launcher作为业界良心,提供了content
provider供外界调用。与ZUK手机一样,良心大大的好,代码如下:

ContentValues contentValues = new ContentValues();
contentValues.put("tag", context.getPackageName() + "/" +
        AppInfoUtil.getLauncherClassName(context));
contentValues.put("count", count);
context.getContentResolver().insert(Uri.parse("content://com.teslacoilsw.notifier/unread_count"),
        contentValues);

有些好玩的

每当亮了一部分ROM的变化角标的规律,我们好开一些幽默的事物。前面在游说LG三星Sony的ROM的早晚,已经涉嫌了,广播就需要后人包名和启动Activity名就是足以让自由一个icon添加角标,因此。。。直接看代码吧:

/**
 * Bug利用测试,请勿滥用
 *
 * @param view view
 */
public void madMode(View view) {
    madMode(99);
}

/**
 * 清除Bug角标
 *
 * @param view view
 */
public void cleanMadMode(View view) {
    madMode(0);
}

/**
 * 获取所有App的包名和启动类名
 *
 * @param count count
 */
private void madMode(int count) {
    Intent intent = new Intent(Intent.ACTION_MAIN, null);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    List<ResolveInfo> list = getPackageManager().queryIntentActivities(
            intent, PackageManager.GET_ACTIVITIES);
    for (int i = 0; i < list.size(); i++) {
        ActivityInfo activityInfo = list.get(i).activityInfo;
        String activityName = activityInfo.name;
        String packageName = activityInfo.applicationInfo.packageName;
        BadgeUtil.setBadgeOfMadMode(getApplicationContext(), count, packageName, activityName);
    }
}

非常简单的代码,就是经PM找来所有启动Intent的Activity,再取出其包名,通过设置来补加角标。效果使图:

device-2015-12-07-141255.png

device-2015-12-07-141314.png

device-2015-12-07-141337.png

OK,丧心病狂,逼死强迫症处女座。

呼吁不滥用,由此引起的满贯问题,不要找我

请不要提桌面背景!!!

Github

忘掉发地址了
https://github.com/xuyisheng/ShortcutHelper