自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Coding for Android

不积跬步,无以至千里

  • 博客(94)
  • 资源 (5)
  • 收藏
  • 关注

原创 Android: Gradle Plugin 实现编译过程中 MainDex 文件的方法数打印

前言本次需求是实现对 MainDex 文件的方法数的打印,避免项目遇到方法数超过 65536 的问题,需要提前对 Dex 文件的方法数预警。大部分 Android 开发者都知道一旦出现 Dex 方法数超过限制,按照官方的建议配置就可以解决问题,但对 Classes.dex 文件生成流程可能都会忽略。根据这次的需求,我们就来深入探索一下整体的构建流程吧。复现 64K 引用限制场景首先得造一个能够复现问题的环境,最直接快捷的办法就是新建一个 Demo 项目,添加一堆第三方依赖库,三方库的代码会一并被编译构

2021-03-21 14:12:18 779

原创 Android实现录屏直播(三)MediaProjection + VirtualDisplay + librtmp + MediaCodec实现视频编码并推流到rtmp服务器

请尊重分享成果,转载请注明出处,本文来自Coder包子哥,原文链接:http://blog.csdn.net/zxccxzzxz/article/details/54254244看到有网友在后台私信和询问录屏这部分推流相关的问题,感觉这篇博客早该写完了。事实上除了繁忙的工作加上春节假期一下子拖了近一个月之久。期间我也一直断断续续的在研究相关的实现,效果并不理想。所以先简单写一些重要的,本文会不定期更

2017-02-16 00:32:01 35517 110

原创 Android实现录屏直播(二)需求才是硬道理之产品功能调研

请尊重分享成果,转载请注明出处,本文来自Coder包子哥,原文链接:http://blog.csdn.net/zxccxzzxz/article/details/54150396前面的Android实现录屏直播(一)ScreenRecorder的简单分析一文中我们对 ScreenRecorder 这个开源 Demo 中的实现机制大概有了了解,但在继续写这个系列文章的时候发现每一个细节都太紧密了,稍微

2017-01-09 00:08:27 12284 11

原创 Android实现录屏直播(一)ScreenRecorder的简单分析

应项目需求瞄准了Bilibili的录屏直播功能,基本就仿着做一个吧。研究后发现Bilibili是使用的MediaProjection 与 VirtualDisplay结合实现的,需要 Android 5.0 Lollipop API 21以上的系统才能使用。其实官方提供的android-ScreenCapture这个Sample中已经有了MediaRecorder的实现与使用方式,还有使用Media

2017-01-07 01:02:58 58377 19

原创 2021 年终总结

又到该年终总结的时候了,聊起自己的 2021,涉及最多的可能就是“工作”二字了,从年初产生离职想法便开始尝试面试。面试的过程也是记忆犹新,后面会详细说道。工作之余,还有家,因疫情原因 2021 留京过年,第一次和老婆两个人在外过年,菜做得再多,但没有家人的团聚,年味是少了些许的。这就来好好聊聊 2021 发生的事吧跳槽面试 & 离职一月初,细想了自己未来的技术路线与后续规划,考虑到自己的履历、能力还需要再拔高,当前已经处于了长时间舒适区和成长瓶颈的阶段,自己也尝试其他方向的探索,终归还是太年轻.

2022-01-01 12:08:30 1804 1

原创 【TODO】每日时间&工作总结记录模板

原则每日 10~20 分钟的记录,分两段:上午开工设定本日计划晚上下班整理工作总结,记录当日花费时间时间记录要做到:时间记录需要归纳总结,每日大概 5~7 条,涵盖花费类型,花费时长每周、每月总结,总结时,之前记录的时间能够分析出有多少被浪费,有多少可以提效工作总结要做到:通过工作总结,能够分析出当天产出,以及可以提效,未来可以避免的问题技术内容输出技术笔记的可复用性,多次记录都记到同一个文档中,并且周期性的整理文档,变为一份可查阅的手册收益:每日可根据模板记录当日工作

2022-01-01 10:56:13 17236

原创 读《原则》

关于原则这本书,阅读过程中总有一种相见恨晚的感觉。我自己也有很多个人的生活、工作原则,但从没想过如作者一般列举总结为一套体系约束着自己,并且也同时能成为别人学习成长的知识营养品。书主要分三部分,第一部分“作者的历程”暂不做读书总结,重点在生活原则与工作原则部分。生活原则01做一个现实的人成功的生活 = 梦想 + 决心 + 现实享受生活还是改变世界?现实规律第一节提到的“现实规律”一词,引出了下述进化曲线,实则和我们个人成长一致。先看看这 2 条曲线:这个曲线最开始是与猛哥 one o.

2022-01-01 10:43:40 232

原创 读《富爸爸与穷爸爸》

2022-01-01 10:35:38 228

原创 读《奇特的一生》

2021-11-16 22:13:02 301

原创 【总结】系统性的学习方法

说明学习和熟悉一个系统的过程中,按照结构型的把系统先梳理出来,从文件目录 - 文件 - 函数结构化的去理解熟悉,有章可循,并且将自己所学习和理解到的细节规范记录下来,这样产出得到的总结文档就是自己的知识体系,并且还可以给别人当作学习参考资料。这才高 ROI 的学习总结。这样的好处避免自己囫囵吞枣或是东一榔头西一棒槌没有体系化的学习对知识的理解是系统而不是碎片化的产出的文档记录是对自己有二次复看意义的,并且还可以给别人参考学习如果自己的理解不到位,别人也可以对问题点提出以改正,修正自己理解错误的

2021-11-05 11:29:30 1192

原创 读《自控力》

01神经学解释 “我要做”、“我想要”、“我不要”前额皮质分成三个区域负责:我要做:左边区域,处理枯燥、困难或充满压力的工作。我想要:中间靠下的位置,记录目标和欲望,细胞活动越强烈,人采取行动和拒绝诱惑的能力就越强。我不要:右边区域,克制一时的冲动,比如集中注意力开车。两个自我人的自控就是两个自我博弈的过程,想起了猫和老鼠中的天使与恶魔,决定在减肥期间吃炸鸡就是恶魔胜利的结果。中脑负责人的恐惧与厌恶这两种控制自我的本能。意志力实验:回忆一下自己的决定如同《把时间当作朋友》中提到的记

2021-10-25 22:31:41 228

原创 读《刻意练习》

这本书之前提到过,我在微信读书看完第一章后,再次打开书柜上落灰多年的实体书,发现书签同样停留在第一章,不过已经是两种感受,翻到之前写过的读书笔记,做下整理和分享一下我的思考吧。先看看 4 年前的笔记《续厨师与母亲的厨艺问题的一些想法》再次思考“刻意练习”分享一个工作过程中发生的问题与思考再次思考“刻意练习”人在一生中会学习到各种技能,无论这些技能是因为工作还是生活需要,很多技能我们能练习得道,然后得心应手。但很多技能却停留在和大多数人一样的级别,比如开车、打篮球、厨艺。我个人是很喜欢做饭的,

2021-09-23 21:40:09 636

原创 读《未来世界的幸存者》

现实篇我自己时常也在想这个问题:未来世界会走向哪里?随着当下科技的飞速进步,未来 100 年后人类是否存在这可能是个巨大的问号?就在昨晚还梦到了远方一枚核弹爆炸,巨大的黑色蘑菇云笼罩在天空上方,那一刻等待我们的既是生命的逝去。倘若有一天技术让我们不再工作,更惨的是因为技术取代了我们,导致无法工作,那我们将会过什么样的生活呢?曾看一部美国短剧《爱,死亡,机器人》,第一季中每一集都很精彩,其中印象深刻的一集:“未来的人都生活在地底下,每天靠着骑室内单车来换取积分用以生活必需品,那时候没有人类繁育后代之说,

2021-09-23 21:36:21 116

原创 读《中国食辣史》

本周阅读内容:《中国食辣史》P1 ~ P121作为一名贵州人,可谓顿顿吃辣而无辣不欢,活了也恰好三十年吃辣二十余载,然而对于辣椒的历史却知道的少之又少。读了本书,才知道原来家乡贵州,是辣椒作为食材伊始的发源地????。关于辣椒 ????????????????????先问大家几个关于辣椒的问题:你们知道辣椒何时进入中国的吗?从何地传入?辣椒的名字怎么来的?中国人能吃辣吗?辣椒是不是味觉?辣椒何时何地进入中国先说说辣椒的原产地:美洲。辣椒从海外进入中国近 400 年历史。(十六世纪下半叶

2021-09-06 10:45:46 187

原创 读《认知觉醒》

第 1 周 2021.07.05 ~ 2021.07.11本周读了《认知觉醒:开启自我改变的原动力》这本书 80%。这本书是跳章看的,先看了自己感兴趣的一些章节,简单总结了一些个人的想法。自序书中从一开始就赤裸裸的把各种“糟糕”的行为列举出来啪啪打读者的脸,其中很多行为我曾经都对号入座了,比如这些:该玩手机玩手机、该打游戏打游戏;觉得反正日子还过得去,希望也还在心里,偶尔挣扎呐喊一声,而后继续做着短视的选择,沉溺于眼前的安逸。然而现实的我是这样的:每次玩游戏,我都没办法静下

2021-07-19 11:07:43 998 3

原创 微爱四年 & 2021 年中总结

啪的一下,很快啊,四年一下就过了。在微爱(发现角)已然整整四年零一个月,一路走来无论是技术还是自己的心智和对生活的态度,都成长了不少。也结识了很多 Nice 的同事,总而言之微爱这个小家庭,在我眼中不只是公司,也是这一阶段的第二个家,同事和老板都如同家人一样,给与了很多包容。公司和我都一同成长着。江湖终是江湖,宴席也有散去的那一刻,希望我们都越来越好~最近三个月忙项目的同时,也在折腾着面试的事儿,二、三月抖音快手的失败自闭,四月的沉淀反思总结,到五月拿了几个心仪的 offer,整个过程心境如过山车般起伏。

2021-06-01 14:08:16 284

原创 Android 冷启动的时候 windowbackground 是什么时候设置的?

注意是冷启动的时候,点击 App icon 立刻就会显示一个默认(或者提前设置好的)背景,这个背景就是 android:windowbackground,我们可以在 theme.xml 中设置为我们的冷启动背景,从肉眼观感的角度去优化 App 启动的问题,那么回到我的疑问:冷启动的时候 windowbackground 是什么时候设置的呢?为了找到这个问题,跟了几遍 ActivityThread 里面 Activity 启动流程的代码也没找到具体的实现,后来无意和群友聊天的过程中群友找到一个关键类:

2021-04-27 07:59:50 2016

原创 面试:自我问题反思总结

絮叨俗话说得好,是骡子是马出去溜溜,尽管不能这样类比,但也是这么个道理。技术成长的路上道路坎坷,总需要让自己足够的认清自己,才能逆风成长成一颗参天大树,下面是对自己近期的一些不足和问题的总结,记录一下:...

2021-04-24 09:07:56 416

原创 商务产品推广与面试的一些思考

上午有两位第三方 SDK 厂商的小姐姐来介绍推广他们的产品,会议结束后有一些小思考简单总结一下。之所以和面试挂钩,是因为我们公司一票技术团队和产品经理都在听他们对自己产品的介绍,但是当提到产品核心功能和解决我们关键点的时候,似乎会议的味道有一丢丢的变化,几个原因:产品功能不够全,其实没有解决我们的痛点,一开始其实就决定了不会使用了对产品本身没有做够功课,在我看来,为付费对象介绍产品,应该把 demo 和 测试数据都尽可能多的场景的展示出来,但是介绍到某个业务的时候,数据是空的咨询产品功能的时候,只

2021-04-12 20:51:13 145

原创 自我技术思维的变革

源码引发的思考看源码的过程中,效率低下的反思。首先问自己几个问题:如果让自己去实现一个 LeakCanary,为什么做不出来?问题出在哪里,是设计不出来,还是代码写不出来?设计不出来,是哪方面?设计经验不足?还是没有设计意识。代码写不出来,是代码语法写不出来,还是 API 不够熟悉,或者对代码的创造能力不够?以前的思维都是习惯了一开始就去看开源库,看完开源库也没有对其进行自我吸收,用了就用了。如果自己没有创造能力,那么你的可替代性就很强。所以要找到自己根本的原因,比如让你自己实现第三方库

2021-02-26 07:43:01 184 2

原创 MacBook Pro 2019 16寸 外接显示器黑屏无信号

问题描述现象是大半夜的 MacBook 还在嚎叫,按照以下步骤操作后,第二天发现外界显示器????无法点亮:检查运行的任务后发现没有耗能高的 App 在作怪,Energy Saver Preference 中取消勾选了 Power Adapter - Prevent computer from sleeping automatically when the display is off,应该是打开该选项后导致了 MacBook 一直不休眠,尽管我已经开了屏保模式合盖后拔显示器 USB HUB

2020-09-13 09:23:57 12939 6

原创 2020 毕业五年自我回顾总结

絮叨迟迟不提笔,时光却不等人。匆匆五年已过,无论这些年过得如何,也该对自己这些年来的工作、生活做个总结,也方便看清接下来的路如何走。我是个偏感性的人,输出或许会有更多的感情色彩在里面。流水账式的描述也更能把自己的想法表达出来。虽然每年也有年终总结,但现在再看看过去也有很多值得一说的事。20152015 的年初还未毕业,寒假来京通过两位师兄和的引荐、指导开始自学 Android,还帮助我去其任职的公司实习,过年前后的 1~2 个月我都是在他们的沙发上度过的。一直以来都很感激他们的帮助,尽管后来同在北京

2020-07-23 19:55:16 569

原创 No resource identifier found for attribute 'appComponentFactory' in package 'android'

说明国庆一回来Android项目编译就报这个错, 所有人的设备都无法编译成功, 排查后推断是 Android SDK 28的问题,但是我们的 CompileSDKVersion 和 TargetVersion / BuildTools 都是 26, 按理来说不应该出这个问题. 可经过一番挣扎后发现还是只能升级 SDK 版本, 但是升级 28 的话, 有两种改动:全部改为 Jetpack 的 ...

2018-10-09 19:00:42 30236 16

原创 Electron初体验--写个查词小工具

本文提纲[什么是 Electron](#什么是 Electron)[Why Electron](#Why Electron)[Electron 安装及使用](#Electron 安装及使用)实现查词工具什么是 Electron官方直白:使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用简单来说,就是利用 Chromium 封装了一层,开发者可以直接利用...

2018-09-27 17:31:01 4518

原创 何为“人生意义”?

最近有个人生的哲学问题一直困扰着我,有时候忽然觉得一切都是毫无意义可言的,因为地球上再伟大的人,参照宏大的宇宙观来说,近乎颗粒微乎其微,可是我们作为人类连尘埃都算不上,甚至有时候觉得一切所谓美好的人生都是人把自己想象的太过于重要罢了。曾努力了一辈子的伟人,为世人所记住千百年,可当有一天我们突然意识到自己的渺小,在世上本就是可有可无的“尘埃”的时候,一刻的毁灭则将我们看来如此漫长的几千年甚至几十万年...

2018-09-25 11:21:43 356 1

原创 Linux提升效率的操作合集

我的 Ubuntu 抽风,每次启动都需要sudo权限,快捷方式也不好用,所以简单三步启动无忧: 1.创建sh文件touch as.shvim as.sh2.添加 shell 脚本#!/bin/bashandroid_studio_path="<your android studio path>/android-studio/bin/studio.sh"sud...

2018-05-24 10:36:22 618

原创 小感悟 -- 技术、编程与哲学

神功学习编程最大的特点及优点,就是现有的资料都已经存在或短时间内能够更新获取,并且被标明了哪些书籍就是葵花宝典、九阴真经和如来神掌,仔细习之便可获此神功。 比如程序员的圣经:《The Art of Computer Programming 》,还有《Introduction to Algorithms》公平这个领域对所有人都是公平的,先不讨论有多少人能看懂,但是对于他们是都有机会...

2018-03-22 00:26:03 666 7

原创 Android设计模式 -- 巧用策略模式告别过多的 if...else...

背景描述根据后台配置进行不同的广告加载策略,例如有广告 A / B / C,某个时段后台配置播放广告 C,默认播放 A;普通的实现方式创建广告管理类,实现广告加载/播放的控制:class AdManager(adName: String) { var ad = adName fun initAd() { when (ad) { ...

2018-02-28 19:04:01 1898

原创 2017年终总结附2018小目标

匆匆2017年过了,这一年发生了很多事,工作也好,生活也罢,总是往好的方向前进的。16年末定了一些2017的小目标,现在该给自己一个交代:跳槽 √这件事对我现在仍旧意义深刻。在2017年一月的时候先去了美图面试,过程发挥还好,但跪在了最终的业务熟练度上,还记得那个问题:Gradle 中 Flavor 是干嘛的?Build.gradle 文件中 compile 和 compile

2018-01-18 18:41:26 1419 4

原创 别人都月入百十万了,而你的支付宝羊毛你薅了吗?

别人都月入百十万了,而你的支付宝羊毛你薅了吗?事发起因昨天一早看到一位朋友(@马超 DeveloperPython 公众号的作者)发了一篇博客名叫《教你领取支付宝红包的新姿势》,介绍了如何一键跳转支付宝领取红包的原理,好奇心重的我似乎也看到了什么“新商机”?就立刻仿造了一个。没错,原理就是点击域名或者链接即可享受红包之旅,没有原来麻烦的复制粘贴,还要考虑到用户的主动性,从头到尾一气呵成

2018-01-06 09:07:58 5609 3

原创 续厨师与母亲的厨艺问题的一些想法

之前看到一个小问题:为什么初学两年的厨师比20年经验的母亲做的饭好吃的多?把问题迁移到编程上来说也一样,相关的问题可以参考:一年工作经验十年用今天看了一本讲解学习技巧的 cook book,里面也提到了这个问题:驾龄5年的司机和20年驾龄的司机谁的车技更好?3、4年工作经验的医生和30年从医经历的老医师谁的医术更高?其实大部分都是前者有优势,因为后者常常是重复做了几十年同样的事,而并无

2017-11-01 00:18:14 496

转载 基于 CentOS 使用 Jenkins 实现 Android 持续集成

环境说明本次配置是基于 CentOS 的服务器环境进行的,Jenkins 环境已经搭建完成。本次说明仅限 Android 客户端的构建方式。配置方法这里参见蒲公英的说明文档:环境无论是什么系统,配置jenkins的配置是一样的安装 Jenkins下载最新的版本(一个 WAR 文件)。官网下载地址运行 java -jar jenkins.war 注意:Jenkins 需要运行 Java 5以及以上

2017-08-25 16:53:36 2156

原创 求职,离职,入职

从 3 月底 4 月初一直拖到今天 5.15 ,早想把这一个月前前后后发生的事做个总结,把心里所想的表述出来,无奈各种琐事,或是心情五味陈杂,一拖拖了大半月。也正好,来了新公司工作了两周,前后一条线也够啰嗦小篇了。主要谈及自己的三件事:求职离职入职求职2015 年到今为止,毕业入职也有一年加半载有余,关于在前任公司的事儿也就不多说了。总而言之就是加了不少班,涨了不少肉,废了不少神,一大活人再

2017-05-16 00:08:53 812

原创 个人对面试者和面试官的几点经验总结

近期因为公司招人的原因做了回面试官,做了些许总结以备自戒。面试者:大部分面试者都有些紧张,其实很正常,我自己面试的时候感觉比他们紧张多了,而且刚开始的时候我自己虽然是面试官,也会感觉很紧张,生怕因为自己的不足导致面试者失去一次宝贵的工作机会,但多面几次就逐渐适应了,所以紧张还是因为自己经历得比较少面试者简历投递的时候,一定不要超过 3 页,并且把你熟悉掌握的技术从前往后依次排列工作经历很重要,

2017-04-18 10:36:57 6950 1

原创 Java重拾系列(二)小记 Java String StringBuilder StringBuffer

这个问题无论是面试还是日常知识点最普通和最基础的知识点,但往往细节才是我们需要注重掌握的。可以这么说,如果不是经历面试,我可能很久都不会特意去了解这三者的联系,做个自我总结反思一下,其实我们面试考察的知识点又何尝不是我们编码过程中常会遇到的各种问题么,切不可抱着面试的心态看待这些问题。在工作学习的过程中,不能对问题有所逃避。以下内容出自于官方 API Documents 或 SF。StringBui

2017-04-02 10:27:36 662

原创 Java重拾系列(一)Java线程与线程池

Java中线程的几种使用方式:RunnableRunnable是一个接口,直接实现并在run方法中执行相应的任务。private class MyRunnableTask implements Runnable { @Override public void run() { // running my task int index = 0; whi

2017-03-09 23:58:38 587

原创 Android Service与AIDL的使用

项目业务需求,需要将后台服务进行保活。通过开启远程服务与APP的进程进行进程间通信(IPC),寻求保活的方式花了一段时间,最后对MIUI的系统机制还是无果,Debug的时候发现MIUI拥有一个PowerKeeper,一旦触发就会对任何后台进程的APP(据说有白名单)进行KillApplication操作,在我的压力测试下,无一应用幸免(包括优化得极其稳定的Bilibili,GooglePlay录屏A

2017-02-24 01:21:52 2582

原创 LeetCode String专题

LeetCode String专题部分,更多说明请见LeetCode Array专题344. Reverse String Write a function that takes a string as input and returns the string reversed. Example: Given s = “hello”, return “olleh”. 译

2017-02-05 09:58:43 1308

原创 Android AsyncTask源码简要分析

AsyncTask初学 Android 的线程使用时接触最多的就是 AsyncTask 了,直到现在都还没有仔细查看过这个类的源码和实现,有愧于心啊。不说多的,本篇主要根据 AsyncTask 的类结构来进行简要说明,大致的介绍官方都写在文档或者注释中了,我们需要仔细研读。AysncTask 只适用于最多几秒的操作场景,如果有更高的需求官方强烈推荐使用 Executor / ThreadPoolEx

2017-01-15 22:22:41 708

原创 Android libyuv应用系列(二)libyuv在Android中的使用

上篇文章Android libyuv使用系列(一)Android常用的几种格式:NV21/NV12/YV12/YUV420P的区别中我们了解了YUV相关的知识,而本篇文章我会介绍libyuv是什么,以及如何使用libyuv进行相应的图像数据处理。当我们在 Android 中处理 Image 时,常因为 Java 性能和效率问题导致达不到我们期望的效果,例如进行Camera 采集视频流的原始帧时我们需

2017-01-15 20:30:39 8241 7

RawViewer YUV查看工具

RawViewer YUV查看工具,一款可以查看视频帧、图像文件的YUV结构的工具,Android开发中Camera的原始帧也可以采集后查看分析

2017-01-02

YUV格式查看器RawViewer

YUV格式查看器RawViewer,windows平台的一个小工具,功能强大,不过偶尔闪退,将就用吧。顺便求个1分的打赏分

2016-05-02

libyuv源码

libyuv的源码,libyuv是一个可以对YUV格式转换和旋转、缩放的开源库。 URL: http://code.google.com/p/libyuv/ Version: 1433 License: BSD License File: LICENSE Description: libyuv is an open source project that includes YUV conversion and scaling functionality.

2015-11-08

LY-51S V2.33 c语言 160例程

LY-51S V2.33 c语言 160例程,从IO输出-点亮1个LED灯方法1,2到160-1602液晶显示距离(需选配超声波探头),应有尽有。

2015-01-08

功率函数信号发生器的设计

功率函数信号发生器的设计 学校要求做的课设

2014-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除