
Android
码农突围
这个作者很懒,什么都没留下…
展开
-
流媒体解码及H.264编码推流
简介相关理论程序流程Opencv解析视频流像素格式转换FFmpeg进行H.264编码FFmpeg进行格式封装和推流这里我们使用了FFmpge的sdk和Opencv的sdk。为了方便测试,我们直接使用在线的rtsp网络流。rtmp://live.hkstv.hk.lxdns.com/live/hks这个是香港卫视的rtsp流,可以用vlc播放器测试是否可以播放。FFmpeg支持的像素格式1 所有的像素格式的名称都是以“AV_PIX_FMT_”开头2 像素格式名称后面有“P”的,代表是p转载 2020-05-08 20:36:39 · 2171 阅读 · 1 评论 -
推荐一个Flutter项目(已开源)
什么是Flutter?2018年2月27日,在2018世界移动大会上,Google发布了Flutter的第一个Beta版本。Flutter是Google用以帮助开发者在iOS和Android两个平台开发高质量原生应用的全新移动UI框架。其实我第一次听说Flutter是在收到谷歌开发者公众号的推送里,当时读完了那篇文章觉得Flutter的优点确实比较突出:热重载(Hot Reload),作为...原创 2020-05-07 20:55:39 · 1405 阅读 · 0 评论 -
详解音视频中的DRM数字版权技术
今天主要开始讲解一下安卓视频开发的DRM这个问题,DRM是英文Digital rights management的缩写,可以理解为版权保护。众所周知,视频或者音频的盗版问题是困扰发行商的一个大麻烦,因为盗版的横行会直接导致发行商利润的减少。那么像在PC端或者移动端的在线/离线多媒体内容的播放上,发行商又能怎么解决呢?比如之前优酷很火的《白夜追凶》这种电视剧vip的会员可以享受离线观看。假如说...转载 2020-04-28 20:41:04 · 1867 阅读 · 0 评论 -
仿最新BiliBili客户端(已开源)
前言该项目仿照B站的Android客户端进行开发,初衷是想学习流行的Android技术,但是没有数据资源。因为喜欢逛B站,而且B站的Android客户端又是Google推荐的MD设计规范,于是花了些时间研究B站的网络请求,最后成功搞定,与@Android_ZzT同学达成一致,合作开发这个模仿B站的练习项目。该项目在工作之余开发,所以更新时间不定。前期准备一、B站网络请求抓包首先是对B站的网...转载 2020-04-27 20:37:38 · 2946 阅读 · 0 评论 -
Android中如何实现无缝切码流
方式一:1、通常一种切换码流方式,如系统播放器切换码流,先Stop,再Create Player,再onPrepare,再Start方式二:2、实际上还有一种无缝切换码流,如果是单实例播放器,点击切换码流时,不销毁播放器器,只是暂停解码。开始请求新的url中数据,比如下载了有1-2片TS流后,重新送给解码器,重新启动解码,然后渲染输出。达到无缝输出的效果。方式三:3、如果是多实例播放器,...原创 2020-04-24 20:26:56 · 1410 阅读 · 0 评论 -
你可能不知道Flutter到底有多火
2018年2月27日,在2018世界移动大会上,Google发布了Flutter的第一个Beta版本。Flutter是Google用以帮助开发者在iOS和Android两个平台开发高质量原生应用的全新移动UI框架。看下Flutter的突出优点:热重载(Hot Reload),作为一个菜鸟安卓开发者,能热重载真的太舒服了,利用Android Studio直接一个ctrl+s就可以保存并重载,模...原创 2020-04-23 19:40:54 · 1287 阅读 · 0 评论 -
Android音视频开发之-WebRTC技术实践
背景简介WebRTC是Google于2011年6月3日开源的即时通讯项目,旨在使其成为客户端视频通话的标准。其实在Google将WebRTC开源之前,微软和苹果各自的通讯产品已占用很大市场份额(如Skype),Google也是为了快速扩大市场,所以将他给开源。经常接触开源的人应该很容易理解Google这种策略,只不过在国内大家都喜欢弄成SDK,然后按年按月按用户数给你收费,总让你觉得不爽,呵呵。...原创 2020-04-22 19:41:40 · 1636 阅读 · 0 评论 -
JNI开发中,你需要知道的一些建议
本文原文是:http://developer.android.com/training/articles/perf-jni.html,翻译费了我不少功夫,但是我自己收获也很大。JNI全称Java Native Interface。它为Java与本C/C++之间提供了一种交互方式。JavaVM 及 JNIEnvJNI定义了两种关键数据结构,“JavaVM”和“JNIEnv”。它们本质上都是指向...原创 2020-04-21 19:26:35 · 1234 阅读 · 0 评论 -
面试常问点:深入剖析JVM的那些事
文章较长,主要讲解了JVM的整个流程,其次介绍Dalvik与JVM的区别及ARTClass文件结构 -> JVM内存模型 -> 类加载器 -> 类加载过程 -> 类的引用方式 -> 内存分配策略 -> GC -> 对象的引用类型 -> 类卸载先前知识众所周知java是一种跨平台的语言,但实际上跨平台的并不是java而是JVM。JVM(Java...转载 2020-04-20 22:28:25 · 1178 阅读 · 0 评论 -
一款使用RxJava+Retrofit+MVP的快播App开源啦!
《快播》,仿网易云音乐UI,整体采用RxJava+Retrofit+MVP的架构,支持在线视频播放,在线图片浏览等功能。用到第三方开源库:ButterKnife:依赖注入框架glide:图片加载retrofit:网络请求jieCaoVideoPlayer:播放器抓取接口用于数据展示效果图如下:基类:package com.zmj.qvod.base;impor...原创 2020-04-17 19:48:37 · 1525 阅读 · 0 评论 -
FFmpeg设置OpenMax硬件编码
OpenMax是一个统一的多媒体框架, ffmpeg中支持H264的OpenMax编码, 本文记录如何开启OpenMax编码。ffmpeg版本: 4.0OpenMax头文件版本: 1.2首先下载ffmepg,然后是OpenMax的头文件, 解压头文件的zip之后得到头文件拷贝到NDK对应平台的include中,如图后在configure的时候加入–enable-omxconfi...转载 2020-04-16 19:18:17 · 1773 阅读 · 0 评论 -
移动端图片格式调研
图片通常是移动端流量耗费最多的部分,并且占据着重要的视觉空间。合理的图片格式选用和优化可以为你节省带宽、提升视觉效果。在这篇文章里我会分析一下目前主流和新兴的几种图片格式的特点、性能分析、参数调优,以及相关开源库的选择。几种图片格式简介移动端图片类型的支持情况静态图片的编码与解码JPEGPNGWebPBPG动态图片的编码与解码GIFAPNGWebPBPG动图性能对比...转载 2020-04-14 21:35:54 · 1900 阅读 · 0 评论 -
程序员如何与产品经理优雅的干架
早前,平安产险科技一名外包程序员和一名外包产品经理干架的视频几乎在互联网圈都传遍了,因为产品提了一个需求:要求用户App的主题颜色能根据手机壳自动调整。首先说这个需求对于应用开发工程师来说,确实是有点奇葩,当然并非不能实现。这块涉及图形图像处理,用机器学习和人工智能来提取图像颜色,这是基本图像识别过程,对于采集图像,可以提示对着镜子自拍一张,上传图片,通过大量的训练数据,来识别手机体颜色。当然并...原创 2020-04-10 22:07:07 · 4626 阅读 · 8 评论 -
异步处理老司机:IntentService 源码分析
IntentService 介绍IntentService 是一种特殊的 Service,它继承了 Service 并且它是一个抽象类,因此必须创建它的子类才能够使用 IntentService。它可用于执行后台耗时任务,当任务执行完成后它会自动停止,在资源不足时,系统会对一些被认为时无用的资源给清理掉,由于它是 Service 的原因,它的优先级比单纯的线程的优先级高很多,不容易被系统杀死(清...转载 2020-04-09 19:54:10 · 740 阅读 · 0 评论 -
OpenGL中 Canvas 性能分析
本文将通过分析部分源码,描述 Android 里面的 Canvas 的大致实现。并且会对 Canvas 的性能做一定分析,提供对 Canvas 的使用建议。GLES20RecordingCanvas 类这个类是什么?为什么我从没用过?我们来看看它的代码:class GLES20RecordingCanvas extends GLES20Canvas { ...}class G...转载 2020-03-31 20:11:31 · 1949 阅读 · 1 评论 -
Ubuntu18.04 从头开始编译 Android Native WebRTC
本文详细记录Mac下使用PD虚拟机安装ubuntu18.4桌面版,编译Android Native WebRTC的过程。注意如果仅仅是使用WebRTC没必要手动编译源码,直接用官方提供的预编译包即可:The easiest way to get started is using the official prebuilt libraries available at JCenter. Thes...转载 2020-03-19 19:39:29 · 2015 阅读 · 0 评论 -
性能比肩美拍秒拍的Android视频录制编辑特效解决方案
前言众所周知,Android平台开发分为Java层和C++层,即Android SDK和Android NDK。常规产品功能只需要涉及到Java层即可,除非特殊需要是不需要引入NDK的。但如果是进行音视频开发呢?Android系统Java层API对音视频的支持在MediaCodec之前,还停留在非常抽象API的级别(即只提供简单的参数和方法,可以控制的行为少,得不到中间数据,不能进行复杂功能的...转载 2020-03-18 21:26:43 · 1973 阅读 · 0 评论 -
Python+Android进行TensorFlow开发
Tensorflow是Google开源的一套机器学习框架,支持GPU、CPU、Android等多种计算平台。本文将介绍在Tensorflow在Android上的使用。Android使用Tensorflow框架需要引入两个文件libtensorflow_inference.so、libandroid_tensorflow_inference_java.jar。这两个文件可以使用官方预编译的文件。如...转载 2020-03-16 21:45:56 · 1667 阅读 · 0 评论 -
Android TV开发总结(一)构建一个TV app前要知道的事儿
前言:近年来,智能电视的发展如火如荼,Googel 也在大力推进TV及穿带设备的发展,在互联网的风口,是猪也会飞,这句话并不是没有道理的。传统电视机厂商,基本都转型致力于智能电视的相关业务,今天的Agendda如下:- 处理电视硬件- app上检查电视设备- 处理不支持的硬件features- Declaring hardware requirements for TV原创 2016-10-12 07:33:05 · 41271 阅读 · 9 评论 -
手把手图文并茂教你发布Android开源库
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼,文章链接: http://blog.csdn.net/hejjunlin/article/details/52452220经常逛github,总看到别人的readme中写着compile ‘com.xxx:1.0.xxx’,这个已经越来越普及,个人,团人,公司都在用,虽然做android这么长时间了,但是发现自己好像不会,走了好多弯路,几原创 2016-09-06 18:13:41 · 8782 阅读 · 5 评论 -
在线看Android系统源码,那些相见恨晚的几种方案
前言:最近在研究MediaCodec,u盘坏了,之前下载的源码也就自然没有了,真是个难过的事情,不能因为没有源码了,就阻挡我的计划了呀,于是就是今天一文,在线看Android源码,加之此前很多人也有向我留言,如何看a原创 2016-12-05 07:27:20 · 33608 阅读 · 16 评论 -
DragVideo,一种在播放视频时,可以任意拖拽的方案
# DragVideoA Method to Drag the Video When Playing Video一种在播放视频时,能够拖拽的方案原创 2016-12-15 07:36:43 · 8353 阅读 · 2 评论 -
16年,悲痛又收获的一年
前言:岁末,无论是公司的考核,还是其他的总结。都要如期而致,有人说,最近很忧虑,忧虑是对一切未来的不确定。打破忧虑,就是去行动。无论过去怎样,都已不重要,一切都要重新出发。记录下16年发生的大事记吧。二月花开年后坐着北上的列车,和铁哥们商量着,一边上班,一边干票事。想法至今认为都还好。那些夜里都是满脑在想着如何构思,如何定我们的战略。毕竟大家都年经,没有什么导师告诉我们,应该准备怎样,钱都准备好了。原创 2016-12-17 13:02:27 · 12997 阅读 · 41 评论 -
Android TV开发总结(三)构建一个TV app的焦点控制及遇到的坑
Android TV 开发与一般Android开发最大的区别在于焦点控制 , 用户在使用Android TV设备主要是通过遥控器操作app。焦点就是让用户知道的直接交互行为。 然而一些app,依据系统对focus的判断,会出现的状况: 上下导航时,不是想要的结果. 边缘移动时,会出现焦点丢失的状况. 有时想直接定位到某个位置上. android提供了一些焦点相关的属性,在现有的框架层下通过设置View的属性来获得焦原创 2016-10-17 19:26:14 · 18016 阅读 · 3 评论 -
Android TV开发总结(四)通过RecycleView构建一个TV app列表页(仿腾讯视频TV版)
前言:上一篇中,介绍了TV开发的焦点一些坑,很多人在公众号反应写一篇关于RecycleView相关的案例,今天就来实现用RecycleView+GridLayoutManger仿腾讯视频TV版(云视听·极光)的电视剧的列表页 先看下云视听·极光的电视剧列表页的效果图:原创 2016-10-19 18:29:51 · 10540 阅读 · 5 评论 -
手把手图文教你从Eclipse项目迁移Android Studio
从Android的诞生,大家所熟知的开发工具就是IDE就是Eclipse,随着Google大力推荐Android Studio,Eclipse将慢慢推出历史舞台,但是从前很多老项目都是由Eclipse开发,我很信还有绝大部分人在用Eclipse开发,为了适应新形势,迁移已成必不可少的环节。今天以我的开源代码红包精灵原创 2016-10-26 19:24:42 · 4259 阅读 · 2 评论 -
Android TV开发总结(五)TV上屏幕适配总结
前言:前面几篇总结一些TV上的小Sample,开源到GitHub: https://github.com/hejunlin2013/TVSample, 点击链接,可以持续关注。今天总结下TV上屏幕适配.:看下Agenda:一、屏幕适配的一些背景知识二、TV屏幕适配怎么适配?有哪些规则?三、多屏幕适配,android读取res/drawable优先级是什么?四、屏幕分辨率及density 、densityDpi代码原创 2016-10-21 18:32:39 · 22181 阅读 · 11 评论 -
TV Metro界面(仿泰捷视频TV版)源码解析
前言:上一篇介绍了仿泰捷视频TV版的效果,对应github:https://github.com/hejunlin2013/TVSample,今天就介绍下对应的源码部分先看下View的层级结构图:在SmoothHorizonalScrollView(继承HorizonalScrollView)原创 2016-10-15 14:10:06 · 8684 阅读 · 7 评论 -
Android TV开发总结(二)构建一个TV Metro界面(仿泰捷视频TV版)
前言:上篇是介绍构建TV app前要知道的一些事儿,开发Android TV和手机本质上没有太大的区别,屏大,焦点处理,按键处理,是有别于有手机和Pad的实质区别。今天来介绍TV中Metro UI风格,并结合实例说明。Android TV发展离不开Metro UI,先看最新的泰捷TV的会员区效果,属于电影的Metro风格,如下:原创 2016-10-14 07:13:37 · 18830 阅读 · 13 评论 -
Android app内存管理的16点建议
前言:内存管理,在iOS开发中和C++开发中可以说是天天提到。对于Android平台,Google其实早有文档说明,原创 2016-10-24 23:42:52 · 4242 阅读 · 1 评论 -
一种视频预加载的方案
前言:视频的预加载是提高用户体验的重要因素。预加载成为网络视频播放不可或缺的一个技术环节。看下Agenda:预加载的形式影响预加载的因素预加载场景一张图看清本地代理数据预加载效果图HttpProxy原创 2017-01-08 16:31:12 · 19947 阅读 · 1 评论 -
Google Exoplayer之全面认识
ExoPlayer是Google在2014年才推出介于现在有MediaPlayer及自定义媒体播放器之间预建播放器,特别支持DRM数字版权保护技术,这在越发重视资源版权的今天,是相当有用的。翻译 2017-01-23 15:09:52 · 16276 阅读 · 2 评论 -
Android TV开发总结(七)构建一个TV app中的剧集列表控件
前言:剧集类控件,在TV app中非常常见,今天将介绍构建一个TV app中的剧集列表控件,此控件上传到我的Github: https://github.com/hejunlin2013/EpisodeListView, 喜欢可以star。Agenda如下:原创 2017-02-05 18:26:12 · 5206 阅读 · 5 评论 -
是时候更新Android Studio 3.5了!不信,你看~
Google I/O 2018 大会,被开发者吐槽,不要老是搞那么多新特性,而应该多关注Android Studio的质量和稳定性。所有一直都有一些梗:垃圾软件,毁我青春。于是从Google I/O 2018 大会后,Google启动了对Android Studio专项工程:代号磐石(Project Marble),预意为专注于使集成开发环境(IDE)的基本特性和流程坚如磐石。磐石项目主要集中...原创 2019-05-18 16:42:56 · 4221 阅读 · 1 评论 -
被裁的第50天,我终于拿到心仪公司Offer
今天分享的是之前分享文章中被裁的小C,可以看这篇文《寒冬之下,被cai的那些人到底去哪了?》,最近他已经找到心仪公司今日头条Offer,并且即将入职,在应我要求下,他写了篇总结文如下。下文中的"我",不是鱼哥,是特指小C这两个月听的最多的两个词就是寒冬和 裁员,作为被裁大军中的一员,经历焦虑到担心,再到自信,最后到喜悦。焦虑的是那段被裁日子,不太好过,每天不敢下楼,就在房间里复习。也不敢告诉家里...原创 2019-02-21 15:16:44 · 13413 阅读 · 30 评论 -
简单总结下8.25技术大会感受
由于飞机延误两小时,在浦东机场码字,简单总结下昨天安卓巴士技术大会感受:1、这个时代变化很快,昨天Android还是如日中天,现在已经是各种细分领域。人工智能、大数据、机器学习、区块链,未来会做出更多有意思的东西。2、学无止境,技术要修炼内功。以后就算转行人工智能、大数据、机器学习也是思想贯通的。不要守护自己一亩三分地,要积极拥抱新技术和新革命。谁站在风口,谁可能在下一场革命中脱颖而出。...原创 2018-09-14 04:40:39 · 671 阅读 · 0 评论 -
关于Android Pie(Android 9.0),你想知道的都在这了
2018年8月7日-凌晨1点,谷歌发布了Android 9.0操作系统,它的名字是Android 9,被命名为Android Pie。让我们看看关于Android 9派你需要知道的一切。大纲如下: - Android Pie 新特性有哪些? - 官方Release Note更新说明 - 哪些设备第一时间将集成Android Pie? - Android Pie 源码在哪里下载?...原创 2018-08-08 00:34:48 · 26620 阅读 · 1 评论 -
JNI开发中,你需要知道的一些建议
本文原文是:http://developer.android.com/training/articles/perf-jni.html,翻译费了我不少功夫,但是我自己收获也很大。JNI全称Java Native Interface。它为Java与本C/C++之间提供了一种交互方式。JavaVM 及 JNIEnvJNI定义了两种关键数据结构,“JavaVM”和“JNIEnv”。它们本质上都是指向函数表...原创 2018-07-09 15:20:03 · 1863 阅读 · 0 评论 -
直播技术总结(五)如何快速起播直播流
经常会看到,很多公司都在带宽和卡顿中抉择,想把H.265编码格式做为视频编码格式普及开来,用于客户端播放,无论在TV上,还是手机上,由于很多设备不支持这种编码格式,所以往往要做适配。有人问,为什么大家都在说切H.265?H.265是ITU-T VCEG 继H.264之后所制定的新的视频编码标准。H.265标准围绕着现有的视频编码标准H.264,保留原来的某些技术,同时对一些相关的技术加以改进。新技术使用先进的技术原创 2017-06-04 18:14:54 · 9539 阅读 · 3 评论 -
SuperVideo,一款直播,点播,投屏并有的app
SuperVideo,一款直播,点播,投屏并有的app原创 2016-11-02 11:17:34 · 12007 阅读 · 12 评论