11 47045039

尚未进行身份认证

暂无相关简介

等级
TA的排名 10w+

submodule + gradle配置实现动态打包

项目背景 最近的项目是一个通用的播放框架。内部集成了目前市面上主流的视频网站的播放sdk,比如爱奇艺、腾讯、华数等。另外,还需要支持明流的url播放。这个通用的播放框架需要在多个项目中使用,各个项目需要支持的播放方式也是不一样的。有的项目只需要支持url播放,有的项目需要支持所有的播放方式。如果统一的只提供一个jar或者aar,将导致只需要url播放的应用也需要集成一个巨大无比的库。而且,这个

2017-05-23 16:04:44

submodule集成第三方库

Maven集成第三方库在Android Studio中,原生支持maven仓库,可以简单的几行配置项就可以集成第三方的jar或者aar。如下两步即可实现:配置jcenter地址 配置依赖 这种方式简单方便,支持广泛,但是也存在一些痛点:需要第三方库编译打包完成,并上传到maven仓库。GitHub上很多项目并不支持maven下载。简单方便,但不够灵活。如果是一个庞大的第三方库,即使你只想使用其

2017-05-23 14:49:38

主流插件框架分析

前言目前移动端产品功能越来越复杂,模块不断增加,APK体积也不断增长。由于Android Dalvik最初设计的问题,单个.dex文件方法数最多是65536个。因此,APK难免会遇到64K方法数限制的问题。 Google官方提供了MultiDex解决方案。但是该解决方案,有比较大的局限性。应用进程启动时MultiDex需要在主线程去做DEXOPT操作,中间涉及到文件读写、文件验证、数据复制、反射

2017-03-10 14:35:25

Web Cache的实现

CDN将图片、视频和网页等内容存储到离用户最近的地方,实现为大量用户的就近服务,减少对源服务器和骨干网络的压力。负载均衡系统和内容管理系统都是为了更好的实现各个CDN节点协同工作。所以,CDN的本质上等于分层分布式集群Cache + 智能访问调度。根据缓存内容的不同,可以将Cache设备分为Web Cache和流媒体Cache。Web Cache服务器主要缓存静态网页等内容,也具备文件下载和流媒体

2016-11-26 16:16:50

CDN架构

CDN公司在整个互联网中部署了数以百计的节点(Cache服务器集群)。这些Cache服务器都分布在各个网络运营商的IDC机房中,位置尽量靠近用户网络。CDN系统将内容从源站复制到各个节点,在内容提供者更新内容时,CDN系统将更新后的内容重新分发到各个节点。当用户请求内容时,CDN系统将选择一个最优的节点向用户提供内容。这个挑选最优节点的过程,就是负载均衡。而这个最优节点,可能最接近用户,或者有一条与

2016-10-11 18:06:41

CDN基础知识

CDN的基本概念CDN,content distribute network(内容分发网络)或者content delivery network(内容交付网络)。很显然,CDN的任务是将内容从源站传递给用户。联网的设计理念是:网络是中立的,是无控制的,任何人都无决定权;网络是应用无关的,它的任务就是将数据更好更快的进行端对端的传输。常说的互联网由两层组成:一层是以TCP/IP为代表的网络

2016-10-08 17:15:41

CDN专栏

最近看了《CDN技术详解》一书,结合自己在工作中的实践,整理总结,作为自己的读书笔记。 以下文章中所有插图均截取自《CDN技术详解》。1. cdn基础知识 2. cdn的技术架构 3. web cache实现 4. 流媒体cdn技术

2016-09-29 15:01:10

volatile关键字解析

本文转载Java并发编程:volatile关键字解析   volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatil

2016-07-20 12:08:52

MVP模式

2016-07-18 11:35:10

Android资源文件的管理

android程序中,不管是普通的drawable、anim、color、layout、value等类型的资源文件,还是raw类型的资源文件,或者asset类型的资源文件,所有的资源文件都是通过AssetManager管理的。其中asset资源文件,在打包apk时,不会有任何的改动,会被原封不动的打包进apk内,可以通过文件名和路径访问;而raw资源文件打包时也会原封不动的打包,只不过使用资源id访

2016-07-12 22:16:40

ANR机制

ANR全称是application not responsing,也就是程序无响应。在android系统中,和程序崩溃一样,都是程序设计编码的问题。 android应用中,当你的touch、key等事件得不到及时响应时,在一定的延时之后,系统就会弹出ANR的警告。此时,用户可以选择结束程序或者继续等待。本文将主要从分析ANR原理,以及如何避免ANR。一、ANR产生的原因在android程序中,所有的

2016-07-08 00:48:07

TCP/IP分层结构

2016-06-23 11:12:48

zygote启动流程

在Android系统中,所有的应用程序和系统服务京城system server都是由zygote进程fork出来的。本文简单分析zygote的启动过程。1、init.rc init进程是linux系统启动的第一个进程,后续启动的所有进程都是init进程的直接或者间接fork出来的,zygote进程也是一样。service zygote /system/bin/app_process -X

2016-06-13 23:40:35

JNI相关知识

本文转载,原文链接要素 :1、 该函数大全是基于C语言方式的,对于C++方式可以直接转换 ,例如,对于生成一个jstring类型的方法转换分别如下: C编程环境中使用方法为:(*env) ->NewStringUTF(env , “123”) ; C++编程环境中(例如,VC下)则是: env ->NewStri

2016-06-08 11:56:13

media server分析

media server是android的一个重要服务,主要是与多媒体相关的一些系统服务。在 ServiceManager相关中我们已经分析了,media server是在系统init.rc脚本中启动的,并且在service manager之后。由于media server中包含了media player、audio flinger、camera等多个service相关的东西,本文则只取其中的med

2016-05-30 23:57:52

ServiceManager启动流程

ServiceManager是一个系统服务进程,在系统init.rc脚本中启动。其代码位于目录/frameworks/base/cmds/servicemanager下。1、init.rc init.rc文件存放在/system/core/rootdir/目录下。service servicemanager /system/bin/servicemanager class core

2016-05-27 00:30:10

native binder相关类

android native binder相关的类在/frameworks/native/libs/binder/目录下,对应的头文件在/frameworks/native/include/binder/目录下。不同版本的源码,路径可能会有不同。1、ProcessState.cppProcessState::ProcessState() : mDriverFD(open_driver())

2016-05-24 22:57:35

Java aidl分析

1、IBinder接口定义:public String getInterfaceDescriptor();public boolean pingBinder();public boolean isBinderAlive();public IInterface queryLocalInterface(String descriptor);public void dump(FileDescrip

2016-05-23 23:14:25

ubuntu 14.04使用codeblock

ubuntu codeblock

2016-05-17 09:39:53

JNI相关

http://blog.csdn.net/qinjuning/article/details/7595104

2016-04-08 10:12:16

查看更多

勋章 我的勋章
    暂无奖章