viclee

博观而约取 厚积而薄发

关于Java中Serializable的一些问题

在面试中我常常会考察Serializable相关的问题,我认为这是一个很基础的知识点,是对候选人基础是否扎实的考察。但是结果有点出乎意料,候选人往往只是知道它和序列化有关,而对于其中的细节以及更深层次的原理都不是很清楚。因此,我决定整理一下Serializable相关的一些问题,希望能够对不了解的...

2019-05-15 00:04:48

阅读数 15

评论数 0

SharedPreferences最佳实践

        Android开发中,我们经常会用到SharedPreferences,它是一种轻量的数据存储方式,通常用来存储一些简单的配置信息。看了网络上的一些文章,感觉都不是特别满意,因此希望能结合自己的经验和理解写一篇分析SharedPreferences的文章。本文不会讲解SharedP...

2019-01-08 23:48:13

阅读数 85

评论数 2

Android视频开发基础(五)

       今天这篇文章我们来讲点实用的内容。我们在进行需求开发的同时,有时候也需要去排查一些问题,今天就来讲讲我们可以借助哪些工具来分析和处理视频文件。由于本人使用的是mac,讲解均以mac为例。        今天主要讲解的几个工具是ffmpeg、ffprobe、qt-faststart和...

2018-12-23 23:04:02

阅读数 262

评论数 3

Android视频开发基础(四)

       前面几篇文章介绍了视频技术中最基础的概念以及Android中关于视频处理的一些知识,这些都是Android视频功能开发必须掌握的基础。这一篇文章作为这个系列的第四篇,主要来介绍直播相关的概念。        在这篇文章中,你可以学习到以下内容: 1.当前直播产品的现状和面临的挑战...

2018-12-17 21:28:57

阅读数 203

评论数 0

Android视频开发基础(三)

        接着之前两篇文章继续来讲Android视频开发这个主题。今天这篇文章,我们来聊一聊Android中MediaPlayer的DataSource。也许有的同学会觉得奇怪,DataSource有什么好讲的,我们直接调用MediaPlayer的setDataSource方法不就可以了。其...

2018-12-07 17:06:14

阅读数 289

评论数 0

Relinker源码分析

        作为源码分析的第一篇文章,我们先从一个相对简单的开源库开始:Relinker。这库由来已久了,github也有1000+的star。我在工作中虽然有用到这个库,却一直没仔细看过源码,今天我们就来分析一下。       开始之前先来讲讲背景。       开发中我们常常会遇到这...

2018-12-03 10:23:55

阅读数 407

评论数 2

Android视频开发基础(二)

       前一篇文章详细介绍了视频的一些基本概念,这些内容与Android系统本身没有密切关系,只是作为熟悉视频领域的一个基础,便于介绍接下来关于Android上视频处理的其他内容。继续来看Android上视频相关的内容。       Android支持的格式       先来看一下And...

2017-03-20 23:34:06

阅读数 3268

评论数 11

Android视频开发基础(一)

         最近项目中实现了短视频的功能,主要包括视频的编辑处理、上传和播放。这是第一次真正略深入的接触视频开发,项目中接触到许多新的概念,也踩了很多坑,整体感觉视频处理还是十分复杂的知识体系,需要花大量的精力和时间才能很好的掌握这项技术。        下面就谈一谈其中涉及到的一些基...

2017-03-16 00:04:44

阅读数 14887

评论数 8

Android VideoView播放本地视频短暂黑屏的解决方法

       新的大版本终于正式发布了,整整三个月,做的心力交瘁,导致好久都没有更新文章了。最近接触了许多新的知识,也算是忙碌中有所收获。希望接下来的时间工作上能够稍微松缓一些,让我可以利用在家的闲余时间把一些内容整理总结,慢慢消化一下。今天首先来谈一谈前段时间遇到的一个关于ViewView的问题...

2017-03-14 21:34:24

阅读数 17914

评论数 14

Android匿名共享内存和MemoryFile

       今天要讲的内容相对冷门,日常开发中的使用率较低。但是,在某些场景下,它也许可以带给我们一个新的思路,帮我们解决一些棘手的问题,因此我觉得有必要谈一谈Android中的匿名共享内存(Ashmem)。        首先来看一下什么是匿名共享内存(Ashmem)。Ashmem是一种共享...

2016-11-14 21:10:48

阅读数 8379

评论数 0

浅析Python运算符重载

Python语言中提供了运算符重载功能,这一点与C++有点类似,却又和C++有些许多的不同。Python的运算符重载是通过重写一些Python内置的方法实现的。这些运算符方法都是以双下划线开头和结尾的,类似于__X__的形式,python通过这种特殊的命名方式来拦截操作符,以实现重载。当Pytho...

2016-09-20 23:14:38

阅读数 9989

评论数 4

Android无法显示超大图问题的探索

       最近在做图片浏览功能时遇到了一个很蛋疼的问题,在开启硬件加速情况下,超大图无法正常显示(图的长宽有一个大于9000),而且程序不会crash,只是图片加载不出来,View显示为黑色。通过查看日志,发现系统打印出了下面的内容:   W OpenGLRenderer( 4014)...

2016-08-22 22:44:08

阅读数 3181

评论数 0

关于Base64编码的理解

       之前在很多业务中都有见过或者用到过Base64编码,但一直一知半解,没有对它有一个深入的认识和理解。今天就来聊一聊Base64编码的问题。        首先要明确的是,Base64是一种可逆的编码方式,提到编码方式,我们首先想到的肯定是Ascii、GBK、Unicode这些常用的...

2016-08-06 17:46:47

阅读数 7449

评论数 1

通过Python脚本读取apk信息

       本文将主要介绍通过Python脚本检测apk信息的功能,介绍具体的实现之前,首先介绍一个Android SDK中的开发工具aapt。        aapt即Android Asset Packaging Tool,我们可以在Android SDK的platform-tools目录...

2016-07-23 21:47:48

阅读数 8417

评论数 0

Java单例模式——并非看起来那么简单

         Java中单例(Singleton)模式是一种广泛使用的设计模式。单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在。一些管理器和控制器常被设计成单例模式。        单例模式有很多好处,它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可...

2016-07-20 23:48:19

阅读数 70535

评论数 15

深入理解Java的ThreadLocal

       Android中的多线程并发场景,通常是通过线程同步的方式去保证线程安全。对于共享资源,需要通过syncronized或者Lock等线程同步方法实现资源的互斥访问,才能确保数据访问的正确性。        今天要介绍的ThreadLocal为解决多线程并发问题提供了一种新思路。想必...

2016-07-18 22:19:27

阅读数 903

评论数 0

Android RelativeLayout和LinearLayout性能分析

       LinearLayout和RelativeLayout是Android中最常用的两个布局容器,在分析它们的性能之前,我们先来看一个问题。        为什么使用Android Studio新建一个Blank Activity时默认的layout是RelativeLayout,而不...

2016-05-22 14:32:58

阅读数 3319

评论数 1

贝塞尔曲线在Android中的应用

       今天要讲解的内容是Android中贝塞尔曲线的应用。可能很多人对贝塞尔曲线不甚了解,这里先对它的概念做一下简单介绍。        贝塞尔曲线由多个点组成:起始点、终止点以及0到n个相互分离的中间点。根据中间点的不同,可以分为线性贝塞尔曲线、二阶贝塞尔曲线、三阶贝塞尔曲线和高阶贝塞...

2016-05-14 21:25:38

阅读数 4320

评论数 7

Android中用到的设计模式

       Android系统使用Java语言进行开发,Android源码中设计模式的使用无处不在,以至于日常的开发中,也会根据不同的情况直接套用相应的设计模式。阅读Android源码的一大乐趣就是可以学习到Google大牛对设计模式的灵活运用。下面就来看一下Android系统都用了哪些常用的设...

2016-05-13 00:00:18

阅读数 3146

评论数 3

Java的Atomic类分析

Atomic包介绍        Java1.5的Atomic包名为java.util.concurrent.atomic。这个包提供了一系列原子类。这些类可以保证多线程环境下,当某个线程在执行atomic的方法时,不会被其他线程打断,而别的线程就像自旋锁一样,一直等到该方法执行完成,才由JVM...

2016-05-08 18:53:52

阅读数 7079

评论数 0

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