Badge分析&怎么样逼死巨蟹座

HTC Badge

金立固然没落了,但好歹是第一只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);

其规律同样是行使广播,不表达了。

能混到腾讯面试,作者也很想得到,居然没有被刷简历刷掉。我并未通过腾讯的社招平台投简历,而是在
V2EX 上看看了腾讯云工程师发的选聘贴,于是把直接发简历到腾讯云工程师的 QQ
邮箱里面,附带了一封求职信。某一天接到电话,说定个日子来一遍电话面试。腾讯的本场电话面试是自作者最忐忑的一场所试,电话时期被问及冒泡算法的复杂度,我头脑一片空白,完全想不起来,当然是遗憾收尾。

Sony Badge

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

经验分享:

方法一

经过SamsungLauncher自身的播放,来给使用添加角标:

/**
 * 设置三星的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的轮换下,然后你就足以专擅、扬威耀武了。

从找工作到入职,一共面过3家合作社。

ZUK ZUI Badge

ZUK作为3个不胜小众的手机厂商,居然在网上官方给出了详实的开发者文档,就这点,很多大厂都该好好打打自个儿的耳光。

出于实在找不到ZUK的测试机,所以那里给出ZUK的开发者文档,有要求的和谐看看啊:

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

关于转行:

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);

要害说说其三家,现集团,米筐。

LG Badge

Samsung好基友,Samsung能用的,LG大约都得以用,连Bug都同一。

自家知道,从先导学编程到找工作,那是3个很难受的进度。

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角标分析

技术3:不要海投,不要投 H奔驰G级 邮箱,直接发简历到工程师邮箱

Github

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

从投腾讯简历起先,作者在爱妻的扶助下认真的写一封求职信,详细介绍本人的优势、逆风局、以及对新工作的指望,在信中表述出极为恳挚、诚实的神态,而非吹牛逼、忽悠。记得在给米筐的求职信里本人写过『知道本身的水平和其它工程师大有径庭,所以并不须要工雅鲁藏布江平和旁人一样,只求多或多或少实战机会、多或多或少成长』。因为我也面试过许三人,深知市集上的智囊太多,老实踏实的人太少,所以装一装老实,只怕算是1个蛮优秀的『竞争优势』吧。

MIUI6&7 Badge

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

一 、基本介绍

① 、暗许的场馆

当app 向文告栏发送了一条通知(通告不带进程条并且用户能够去除的),那么桌面app
icon角标就会显示1.此时app呈现的角标数是和文告栏里app发送的通告数对应的,即向公告栏发送了多少文告就会显得多少角标。

二 、布告可以定义角标数

诸如 有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);
}

自个儿当下的工作台

方法二

https://github.com/shafty023/SamsungBadger

④ 、已经在Java相关机构上班的在职人员,对自作者职业规划不清楚,混日子的

酷派 Badge

简单来讲阴毒,不匡助。我爱不释手,类原生。

从上学第①行代码开头,你就很通晓自身和正式程序员有远大差异,随着学习深远,会意识这几个出入之大,以大家普通人的禀赋和劳顿水平,真的很难弥补。及至你到底鼓足勇气找工作,却发现竞争对手全是你愿意的『科班选手』(在自己这么些岁数,还会意识她们都比你年轻),会气馁,会气馁。

Samsung Badge

② 、在商店待久了,未来过得很惬意,但跳槽时面试碰壁。必要在长期内进修、跳槽拿高薪的

华为EMUI Badge

脚下三星(Samsung)的ROM只帮助给停放的App添加角标,中兴本人没有付诸相应的接口。

跟着又是不安的1周。CTO
第④回发来邮件说不易,可是有多少个技术细节和自个儿探究一下,然后再让自个儿把排序内容输出为表格并追加自动化测试进行认证,时限又是1周。

锤子

锤子很不满,使用的是原生Launcher举办的改动,唯有System
App具有得到角标的权能。

注:加群需求

部分诙谐的

在知情了有的ROM的变通角标的法则,我们得以做一些好玩的事物。前面在说LGSamsungSony的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,丧心病狂,逼死人格障碍金牛座。

请勿滥用,由此滋生的全部难题,不要找小编

请不要提桌面背景!!!

笔者们那种半路学编程的人,绝半数以上水准确实要命,没有相关工作经历,没有相关学历。类似我当年不会用数据库、不精通多线程多进度的分别和用途,海投简历只会拿走海拒。由此最好能绕过
H兰德索罗德,与工程师直接关系(例如腾讯那地方试,如若自己走符合规律招聘先后,不只怕获取面试机会)。

心灵默默念叨:真的没什么优势啊……

③ 、到场过线下作育后,知识点领悟不够长远,就业困难,想继续攻读

关于求职:

最早在拉勾看看米筐的招贤纳士音讯,投了接下来被拒。然后在 V2EX 上(又是
V2EX,想找工作的仇敌肯定要尊重这种社区)看到他俩的选聘贴,继续发简历,同时附上了求职信(那封求职信起了关键功用,后面会细说)。去信用社所在地(当时公司在河内壹个别墅区里租了几间房屋)面试,和
CTO
不难聊了须臾间要好学过的东西、写过的代码,然后给本身留了八个功课,就是在2周内学习冒泡、插入、选用、希尔、归并、堆、快速,桶排序,并用代码完成。

其次家协作社,腾讯。

享受三个程序员学习平台给您们,让你在实践中积聚经验领悟规律。紧要趋势是JAVA工程师。假设您想转行拿高薪,想进步自己突破瓶颈,想跟人家竞争能博得优势的,可以加笔者的Java学习沟通群:282711950。

第叁家公司:位于华强北附近的正业数据公司,首要工作是写分布式爬虫。

标题写个人核心新闻、应聘岗位等,正文简要介绍自个儿,附件包涵 docx 和 pdf
格式的简历各一份,然后附上一封像老朋友面谈一样的急切的求职信。

自小编对此毫无概念,面试的时候问用没用过数据库,回答没用过,然后做了一份笔试题,有一道题印象很深,问从1+2+3+…+100怎么计算,于是本身写了个
for
loop了……;还有很难的题,例如让作者写一下分布式爬虫架构……最终让自家回家等音讯,当然是没新闻。通过本次面试,知道了数据库那东西很关键,于是回家后立时买了一本
SQL
入门书赶快读了几遍,学会增删改查。至于这家铺子自身,我看了实地氛围后没太大趣味,对工作内容也并不头痛,所以并未很遗憾。

转行前,我在布里斯班一家互连网集团做运维总经理,硕果累累,搞了部分业内独一无二的运行策略,做了广大现行总的来说依旧牛逼的运维项目。由于品种中涉及大气自动化工作内容,而作者辈只能人工完毕,于是二零一六年初决定学习java
希望下跌团体工作量,不久后做了『教练,我想写代码』的打算并离职,二〇一五年十一月开端正儿八经脱产学习,报了一家线上的读书课程。八月起来找工作,2014年1月30日专业入职现公司,专职后端。

IT行业从业一年多小时,本文记录了我从决定转行,到转行成功的一小段经历。

自家本科专业是政治学,三十周岁开首攻读编程(大约7个月岁月),贰拾捌虚岁找到工作,以后立即叁拾周岁。以后一家互连网创业公司里做
java
后端开发,写了要命大旨的后端组件,也已毕了商行十分九的自动化测试,简单的、难的项目都参加过。其实作者是编程弱鸡,仰仗同事帮衬,这一年学了不少。

次稍微简单一些,可是从未写过测试,也没输出过表格,所以读书了几天,然后完成之(那里有个插曲,小编立马的『表格』就是在指令行里绘制一张表格出来,以往想想
CTO 或许是想让作者出口成 csv 之类的文件)。本次邮件之后,CTO
文告本人第2遍面试。这一次面试小编自愿带上了费用用的
Mac,现场也确实用到了,简单探讨后,CTO 说恭喜您进入米筐。

几乎小编就是那般在自习编程后找到第壹份开发工作的,到现行,薪酬数倍于入职的起薪,深深觉得米筐给自身的东西,远远多于自小编给米筐的,很谢谢公司同事的超生与善良。写代码是一项实践性的工作,不进入生育条件,很多东西自身是搞不懂也不会接触到的。希望各位自学编程的人,都能早日找到工作,快速学习和成人,不断开拓进取和突破,最后领先本身。

上述是自笔者仅部分三次面试的经历,第三回就找到工作,只能说自个儿时局不错,其余求职技能也有一些得以享受的。

① 、高校攻读的是Java相关专业,结束学业前面试受挫,找不到对口工作可以

对面工程师说,其实觉得自身的办事态势卓殊好,而且事先的营业工作经历注脚小编擅长运用工具化解难题,只要技术水平达到他们的最低标准,就很情愿让自家出席,只不过……

接下去的2周小编闭关自守,靠着一本粉青的《Algorithms》、一本《算法导论》以及网上的碎片内容,大约知道什么样看头,然前面向
谷歌(Google) 编程,最终落成了。发邮件回复 CTO
后,1钟头内拿到上升,说不易,但是尚未函数、没有继续,就是一堆命令的堆积,让本人用
类 来改写三遍,时限1周。

技术1:优良的邮件习惯

技巧2:求职信

至今固然没有多么的高大,但是自个儿都达成了,一些经历分享给,想学IT,不过依稀由于各类原由此并未下定狠心的你们,或然送给正在攻读中,担心找不到工作的你们。