项目需求是实时同步 Android 手机屏幕画面至浏览器。这里有两个挑战,一是 Android 如何在应用内得到屏幕实时视频流,另外一个是如何在浏览器上作视频直播。通过一番折腾,肯定了以下的实现方案。期间,咱们也实现了手机摄像头的直播。
java
Android 系统是基于 Linux 2.6 内核开发的开源操做系统,而 linux 系统的内存管理有其独特的动态存储管理机制。不过 Android 系统对 Linux 的内存管理机制进行了优化,Linux 系统会在进程活动中止后就结束该进程,而 Android 把这些进程都保留在内存中,直到系统须要更多内存为止。这些保留在内存中的进程一般状况下不会影响总体系统的运行速度,而且当用户再次激活这些进程时,提高了进程的启动速度。
linux
关于模块化 (组件化) 这个问题,我想每一个开发者可能都认真的思考过。随着项目的开发,业务不断壮大,业务模块愈来愈多,各个模块间相互引用,耦合愈来愈严重,同时有些项目(好比咱们公司)还伴随着子应用单独包装推广,影子应用单独发布等等需求,从新调整架构迫在眉睫。今天,咱们就来聊聊模块化(组件化),这篇文章同时也是我这几年,对项目架构的理解。
android
想要你的各控件之间有很好的 "联动性" 动画效果, 学会使用这个控件能帮你解决这个问题.
程序员
详解介绍 Android 自定义 View 中 path 的使用,帮助理解自定义 view 绘制过程
面试
功能主要包含 5 点:算法
关于 recyclerView 你们必定不陌生,能够实现 listView,gridView,瀑布流的功能,高度的解耦,异常的灵活,经过设置它提供的不一样 LayoutManager,ItemDecoration , ItemAnimator 实现使人瞠目的效果。
数据库
无论你是新程序员仍是老手,你必定在面试中遇到过有关线程的问题。Java 语言一个重要的特色就是内置了对并发的支持,让 Java 大受企业和程序员的欢迎。大多数待遇丰厚的 Java 开发职位都要求开发者精通多线程技术而且有丰富的 Java 程序开发、调试、优化经验,因此线程相关的问题在面试中常常会被提到。
编程
开发直播 app 中要了解的原理
设计模式
从一个简洁的进度刻度绘制中了解自定义 View 的思路流程,理出咱们一步步实现自定义效果的思路。
浏览器
[文章内容来自Developers] AIDL(Android 接口定义语言)与您可能使用过的其余 IDL 相似。 您能够利用它定义客户端与服务使用进程间通讯 (IPC) 进行相互通讯时都承认的编程接口。 在 Android 上,一个进程一般没法访问另外一个进程的内存。 尽管如此…
功能强大的 Vitamio 视频播放器的使用教程
对于 Android6.0 运行时权限的处理方式网上有不少,包括注解,RxJava 等等。一直没有正面提到我关心的问题 -- 若是我不在 Activity 或者 Fragment 里面,须要运行时权限该怎么去作?致使我开始一直觉得运行时权限的处理必须要在 Activity 或者 Fragment 之中。
那么:
我有一个录音的自定义控件在不少页面须要使用怎么办?
我有一个联系人列表,要在 adapter 里面拨打电话怎么办?
我有一个定位的工具类要在多个页面使用怎么办?
等等...
咱们只须要把回调 onRequestPermissionsResult 方法放到 Activity 基类里面,经过工具类调出来,加一个处理结果的回调便可。那么一不作二不休,咱们有没有考虑过 Fragment 里面的处理实际上是多余的,咱们可不能够都放到 Activity 里面来处理,事实证实是能够的。因而就化繁为简产生了个人 XPermissionUtils
一般项目比较大的 APP 都面临着以下性能问题,APP 启动慢、界面跳转慢、事件相应慢、滑动和动画卡顿、展示内容慢等,有的公司处理的很好,有的还有很大的优化空间,对于性能优化,怎么去作,我总结了一下性能优化如何入手,Android 性能优化这个系列目前已经完成 11 篇,涉及到经常使用内存优化工具的使用,好比 Memory Monitor、MAT、Allaction Tracing、TraceView 等,也涉及到如何提升应用的启动速度以及页面的渲染速度,还有流畅度的检测。学会这些,基本上能够处理通常的性能问题了,这段时间须要研究插件化和算法,实在抽不出来时间去总结学习性能优化的相关知识了,往后会在此页面中更新。
常常遇到大段文本须要部分展现的场景,一般的作法是在隐藏的状态下文本末尾加上「显示全文」,在展开的状态下文本末尾加上「隐藏」来控制文本的展现状态。这个交互可能有不少种实现方法,本文则以一个简单的 TextView 来实现这些交互,封装后的 CollapsiableTextView 仅增长了不到 70 个额外的方法数。
RecyclerView 实现拖拽排序和侧滑删除
这是一份 2017 年 1,2 月份发布的 25 个最佳安卓库的列表,你应该会喜欢,虽然是按顺序排列的,但排名不分前后。让咱们开始吧!
CountDownButton 是一个具备倒计时功能的自定义按钮
可拖拽排序合并内容并分类的自定义控件
简书地址: http://www.jianshu.com/p/a51a...
[文章内容来自Developers] ###片断Fragment表示 Activity中的行为或用户界面部分。您能够将多个片断组合在一个 Activity 中来构建多窗格 UI,以及在多个 Activity 中重复使用某个片断。您能够将片断视为 Activity 的模块化组成部…
不再用为下载 apk 伤脑筋了。
因为最近项目开发须要用到自定义 SeekBar,因而又对 android 下的各类类型 drawable 进行了一个全面系统的认识,只能感慨 drawable 的功能仍是很强大的。经过自定义 SeekBar 有感而发,尝试用 ClipDrawable 实现音频录制过程的一个麦克风录制效果。
本文介绍了最近十分火热的开源移动端跨平台动画解决方案 Lottie 库. 结合相关软件安装与配置、代码集成等信息, 给你们分享初步上手 Lottie 的一些使用技巧与心得.
一个能够自由定制外观、支持拖拽消除的 MaterialDesign 风格 Android BadgeView
有几天没发文章了,一直有人在公众号问我关于观察者模式的问题,因此我决定抽时间写一写关于设计模式的内容。今天先介绍一些基础的东西。 六大原则 我之前在面试别的人的时候,老是喜欢聊聊设计模式,由于总感受功能部分都能写出来,可是代码质量和代码设计的东西熟练,才能更好地跟团队配合,方便…
volley、okHttp、retrofit 学习(一)之——你想知道的关于 volley 的请求过程
看到众多大神纷纷有了本身的开源项目,因而本身琢磨着也想作一个开源项目来学习下,由于每次无聊必刷的 app 就是今日头条,评论简直比内容都精彩,因此我打算仿今日头条来练练手,期间也曾放弃过,也遇到不少坑,拿出来跟你们分享一下,喜欢的记得给个 Star,看成是给个人鼓励和动力吧。
源码角度分析
一个五年 Android 开发者百度、阿里、聚美、映客的面试心经
学习的最佳方式就是阅读,对程序员来讲也是如此。若是你想成为一个更优秀的程序员,你必须阅读更多的代码,就是这么简单。书籍,博客,论坛在某种程度上都是有益的,可是没有什么能替代功能完善、代码详细的开源项目。整个 app 的全部相关资源都直接呈如今你面前。
这篇文章介绍开发者如何学习提升以构建更好的 app,我将分享一些本身受益过的教程和资料。
边翻译边学习,EventBus 官网介绍,若翻译不当请担待
实现天猫、京东等 APP 双 11 动态切换 icon 的功能
对 fragment 操做封装的工具类
其实 android 拍照这个地方仍是有不少注意事项的,我在上个项目中就遇到一些坑,所以我想把它记录下来,但愿能帮助一些跟我遇到的一样的问题的人
这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析。 转载请注明出处:http://blog.csdn.net/self_stu...。 对技术感兴…
咱们帮你搜集到一月份最好的 5 个 Android 类库,准备好花生、瓜子和饮料,来看看有什么吧!
讲述设计模式以外观模式
在基于 greenDao 框架下使用 Raw 文件下的数据库文件以及数据库升级实现方案。
列出了 android 中属性动画的基础知识点,让你能够轻轻松松就掌握它。
Android 的消息机制我以为是每个弄 Android 开发的人都要弄懂得问题,也有不少人对它进行研究,Android 的消息机制的重要性不强调,可是以为本身对 Android 的消息机制了解不深入,因此决定深刻源码,写下五篇博客以记之。由于 Message 全局池和 ThreadLocal 对 Android 的消息机制理解很重要,附上前两篇的博客地址。
Android 源码解析 Handler 系列第(一)篇 --- Message 全局池
Android 源码解析 Handler 系列第(二)篇 --- ThreadLocal 详解
由于和同事有约定再加上本身也喜欢作完一件事以后进行总结,所以有了这篇文章。这篇文章大部份内容都是面向整个程序员群体的,固然由于自己是作 Java 开发的,所以有一部份内容也是专门面向我们 Java 程序员的。