自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lin20080410的专栏

从站在巨人的肩上,向成为巨人迈进... 互相学习!

  • 博客(27)
  • 资源 (10)
  • 收藏
  • 关注

转载 输出流设备决定了playbackthread

转载:点击打开链接,点击打开链接Android 音频框架概述Audio 是整个 Android 平台非常重要的一个组成部分,负责音频数据的采集和输出、音频流的控制、音频设备的管理、音量调节等,主要包括如下部分:Audio Application Framework:音频应用框架AudioTrack:负责回放数据的输出,属 Android 应用框架 API 类AudioRecord:负责录音数据的采...

2018-02-28 16:01:46 3657

转载 Android camera角度问题

转载:相机角度1. android相机简介由于Android系统的开放策略,Android手机呈现碎片化的趋势,兼容性问题一直是Android App 开发者头疼的难题。本文以Android相机预览方向为例,探索在Android机型适配上的一些思路。1.1 相机架构先了解下Camera的框架,它是分层的结构。由上向下分别是1)应用层2)Camera系统的Java类3)Camera的JNI代码4)C...

2018-02-27 17:46:36 6489

原创 Android ART虚拟机执行引擎-本地代码的执行(十)

以前面分析的虚拟机的启动流程 ART 虚拟机的启动 为例。zygote在调用AndroidRuntime的start函数时传入一个class名称:runtime.start("com.android.internal.os.ZygoteInit", args, zygote); 这个classname就是要被执行的类对象,一旦虚拟机启动完成,就会调用这个类的main方法。因为zygote程序本身有...

2018-02-26 22:14:02 1150

原创 Android ART虚拟机执行引擎-JIT(九)

Just-in-time compilation是一种动态编译,是在程序运行过程中才执行编译工作。相对于ART的核心技术ahead-of-time,JIT有几个有点:比AOT更节省存储空间;不需要在每次安装,或者系统升级、应用升级后都做AOT优化。因为不需要在程序安装时执行AOT预编译,所以不会出现漫长的安装等待,不会影响程序的启动速度。JIT的编译过程是在独立的线程中完成的,并且只编译有必要的函...

2018-02-25 21:15:33 1324

原创 Android ART虚拟机执行引擎-Interpreter(八)

ART虚拟机是一个Interpreter+JIT+AOT的共存环境。ART虚拟机中解释器的实现源码在art/runtime/interpreter中,其中与平台相关的汇编代码保存在目录art/runtime/interpreter/mterp中,因为interpreter有两个版本,一种是C语言实现的,一种是汇编版本的。汇编版本的解释器执行效率高,但是要对不同的硬件架构进行适配。解释器的任务就是解...

2018-02-25 16:08:06 2257

原创 求最大连续子序列的和

给出一个序列,求出最大连续子序列的和,并输出最大连续子序列。如:{-10, 1, 2, 3, 4, -5, -23, 100, 3, 7, -21},最大子序列是100,3,7,和是110.public class MaxSubSumDemo { public static void main(String[] args) { System.out.println("求最大子序列的和!")...

2018-02-24 19:28:39 306

原创 Galley、Camera中缩略图的生成

一,图库中缩略图的生成图库中对图片、video 的解码会通过ImageCacheRequest.java来完成,具体在run方法中:snapdragonGallery/src/com/android/gallery3d/data/ImageCacheRequest.javapublic Bitmap run(JobContext jc) { ImageCacheService ca...

2018-02-24 15:07:36 1703 1

原创 Android ART虚拟机中的线程管理(七)

一,线程的创建在java代码中可以有多种方式创建一个线程,常用的方法是:Thread thd = new Thread();这个创建会调用init,init2初始化一个线程:libcore/ojluni/src/main/java/java/lang/Thread.java private void init(ThreadGroup g, Runnable target, String na...

2018-02-24 07:31:38 1727

原创 Android ART VM启动流程(六)

接着前一篇博文 ART VM的启动流程,继续分析启动虚拟机的核心函数是startVM,frameworks/base/core/jni/AndroidRuntime.cppint AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote){ /* * Initialize the VM. ...

2018-02-14 19:35:51 1370

原创 Android ART VM的启动流程(五)

Android系统的第一个进程是init,init通过解析init.rc脚本来启动关键的守护进程和各种系统服务--其中包括zygote这个应用程序的孵化器。system/core/rootdir/init.zygote64.rc(这个文件会被import进init.rc中)service zygote /system/bin/app_process64 -Xzygote /system/bin -...

2018-02-14 19:30:37 1243

原创 Android中Gif的解码、播放

Gif的文件格式,可以参考另外两篇转载的博客:Gif文件格式,Gif文件格式项目中,会把Gif的解码、播放提交到一个线程池中执行,线程池的用法可以参考另一篇文章,ThreadPoolExecutor的使用。以下范例代码来源于图库Gallery,首先把Gif解码的任务提交到线程池:mThreadPool.submit(new GifDecoderJob(item), new GifDecoderLi...

2018-02-14 11:49:52 428

转载 gif 格式图片详细解析

转载:Gif图片格式1.概述~~~~~~~~  GIF(Graphics Interchange Format,图形交换格式)文件是由 CompuServe公司开发的图形文件格式,版权所有,任何商业目的使用均须 CompuServe公司授权。  GIF图象是基于颜色列表的(存储的数据是该点的颜色对应于颜色列表的索引值),最多只支持8位(256色)。GIF文件内部分成许多存储块,用来存储多幅图象或者...

2018-02-14 10:54:08 1125

转载 gif图片格式解析

转载:Gif文件格式gif图片格式解析飘飘白云整理参考:http://www.w3.org/Graphics/GIF/spec-gif89a.txt网络中文gif资料 简介:GIF(Graphics Interchange Format)是CompuServe公司开发的图像文件存储格式,1987年开发的GIF文件格式版本号是GIF87a,1989年进行了扩充,扩充后的版本号定义为GIF89a。 G...

2018-02-14 10:52:00 2001 1

原创 Android ART VM的文件格式-OAT(四)

一,与oat相关的文件后缀参考老罗的博客:OAT文件1).oat,OAT是由dex2oat产生的,本质上也是属于elf文件。2).odex,在Dalvik中,odex表示被优化后的dex文件;ART虚拟机中,它实际上是oat文件。oat文件除了遵循elf文件规范,又根据虚拟机的需求进行了扩展--最大的区别增加了两个重要的字段 oat data section 和oat exec section,其...

2018-02-14 07:40:36 1364

原创 Android 动态库的加载system.loadlibary(三)

System.loadlibary,System.load是怎么加载so库的?他们是在Runtime的启动过程中通过loadnativelibary来加载libjavacore.so的动态库,这个动态库是这两个函数的实现体。libcore/ojluni/src/main/java/java/lang/System.java public static void loadLibrary(Str...

2018-02-13 20:59:58 4512

转载 Android RecyclerView 使用完全解析

转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/45059587; 本文出自:【张鸿洋的博客】概述RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对其进行使用。 据官方的介绍,该控件用于在有限的窗口中展示大量数据集,其实这样功能的控件我们并不陌生,例如:ListView、G...

2018-02-13 17:16:30 210

转载 Android开发之RecyclerView的使用

转自http://blog.csdn.net/dmk877/article/details/50816933自Android 5.0之后,谷歌公司推出了RecylerView控件,RecylerView,我想看到一个新名词后大部分人会首先发出一个疑问,recylerview是什么?为什么会有recylerview也就是说recylerview的优点是什么?recylerview怎么用?接下来就对这...

2018-02-13 16:35:51 225

转载 ConcurrentHashMap 底层实现原理与线程安全问题

Java集合 博文:https://zhangshixi.iteye.com/blog/673789https://www.cnblogs.com/xiaoxi/category/929860.html-------------------------------------------------转自:ConcurrentHashMap原理术语定义术语 英文 解释...

2018-02-13 11:00:49 14675 1

转载 Java HashMap实现原理

转:Java HashMap原理Java集合 (HashMap,LinkedHashMap,HashSet)参考:https://www.cnblogs.com/xiaoxi/category/929860.htmlHashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间的区别...

2018-02-13 10:04:11 479

转载 Java 8系列之重新认识HashMap

转载:Java8 hashmap摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介Java为数据结构中的映射定义了一个接口j...

2018-02-13 10:01:20 167

原创 Android ART VM可执行文件格式-ELF(二)

ART虚拟机,通过dex2oat将dex预编译成机器码的oat文件,是基于linux中的可执行文件格式ELF所做的扩展。ELF(Executable and Linkable Format)的处理流程:它至少支持三种文件形态:可重定向文件(Relocatable File),可执行文件(Executable File),可共享的对象文件(Shared Object File)。Relocatabl...

2018-02-12 21:58:24 1046

转载 Android运行时ART简要介绍和学习计划

转自:老罗的博客ART VMAndroid运行时ART简要介绍和学习计划         Android在4.4就已推出新运行时ART,准备替代用了有些时日的Dalvik。不过当时尚属测试版,主角仍是Dalvik。 直到今年的Google I/O大会...

2018-02-12 20:54:27 326

原创 Android ART虚拟机(一)

Android的应用程序开发语言首选的是java,所以Android虚拟机或多或少都会借鉴JVM中的一些设计思想和技术实现。虽然严格意义上讲Android的dalvik/art并不是纯正的java虚拟机(因为没有完全遵循JVM规范),但是本质上跟hotspot等jvm又有很多相似。所以先理解java虚拟机对理解Android虚拟机是会有很大帮助的。java虚拟机解决的核心问题是:write onc...

2018-02-12 09:15:25 5936

原创 Android Dalvik虚拟机基础

Android Dalvik虚拟机(尽管现在被art取代,但不代表它一无是处,了解dalvik有助于理解art)在Android 4.4之前,Dalvik一直是Android中默认的虚拟机,后面推出了ART运行环境机制,逐步完全取代了Dalvik。Dalvik 和art都可以支持已经转换为.dex格式的java应用程序的运行。 一、Dalvik VM,JVM的差异:1)多数JVM都是基于堆栈的,而...

2018-02-11 16:56:28 752

原创 Android 查看进程内存的方式

查看Android系统,单个进程、多个进程内存的使用情况,通常有那些方法:1,通过Android API函数使用ActivityManager查看可用内存,具体是其内部类MemoryInfo。ActivityManager.MemoryInfo memInfo = new ActivityManager.MemoryInfo();am.getMemoryInfo(memInfo);

2018-02-06 22:28:27 5349

原创 Android中的线程模型-ThreadPoolExecutor (十二)

上一篇 Android的线程模型:Android线程模型介绍了 Android中使用线程跟java中没有太多区别,只要继承Thread类或者实现Runnable接口就可以,只是这种实现方式要跟主线程通信需要通过message queue;另一种并行编程方法是AsyncTask,这是Android开发的专门简化多线程实现的类,可以不用繁琐的looper,handler等机制就可以与主线程通信,但是A...

2018-02-06 19:59:06 315

原创 Android的Multilib Build

在应用的Android.mk中,有一个全局变量:LOCAL_MULTILIB := 32它的值可以是32,64,both,表示可以编译的apk可以运行在32位、64位,或者32&64位硬件平台,因为支持multilib build,所以zygote的启动脚本.rc也有多个版本:init.zygote32.rcinit.zygote32_64.rc //支持32,64位系统,但是32

2018-02-05 22:42:14 2782

simple-ffmpeg-player.zip

基于ffmpge实现的简单的播放器.仅包含音视频处理相关代码,不涉及UI.主要作为学习ffmpeg的笔记记录.适合小白,大牛请绕行哈...

2020-03-13

simplePlayer.zip

基于ffmpge实现的简单的播放器.仅包含音视频处理相关代码,不涉及UI.主要作为学习ffmpeg的笔记记录.适合小白,大牛请绕行哈...

2020-03-13

jetty-libs-9.4.zip

jetty-client-9.4.24.v20191120, jetty-continuation-9.4.24.v20191120 jetty-http-9.4.24.v20191120 jetty-io-9.4.24.v20191120 jetty-security-9.4.24.v20191120 jetty-server-9.4.24.v20191120 jetty-servlet-9.4.24.v20191120 jetty-util-9.4.24.v20191120

2019-11-26

Gif文件的解码

Gif图片文件的解码过程

2018-02-14

android studio3.1匹配的gradle版本最新4.4

android studio3.1匹配的gradle版本最新4.4,gradle-4.4-20171031235950+0000-all.zip

2017-12-25

release3.1

cglib/cglib/3.1 Code Generation Library maven依赖 &lt;!-- https://mvnrepository.com/artifact/cglib/cglib --&gt; <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>3.1</version> </dependency>

2017-11-21

android make 介绍

android make 介绍 Make 文件说明 整个 Build 系统的入口文件是源码树根目录下名称为“Makefile”的文件,当在源代码根目录上调用 make 命令 时,make 命令首先将读取该文件。 Makefile 文件的内容只有一行:“include build/core/main.mk”。该行代码的作用很明显:包含 build/core/main.mk 文 件。在 main.mk 文件中又会包含其他的文件,其他文件中又会包含更多的文件,这样就引入了整个 Build 系统。 这些 Make 文件间的包含关系是相当复杂的,图 3 描述了这种关系,该图中黄色标记的文件(且除了 $开头的文件) 都位于 build/core/ 目录下。 Android 源码中包含了许多的模块,模块的类型有很多种,例如:Java 库,C/C++ 库,APK 应用,以及可执行文件 等 。并且,Java 或者 C/C++ 库还可以分为静态的或者动态的,库或可执行文件既可能是针对设备(本文的“设备”指 的是 Android 系统将被安装的设备,例如某个型号的手机或平板)的也可能是针对主机(本文的“主机”指的是开发 Android 系统的机器,例如装有 Ubuntu 操作系统的 PC 机或装有 MacOS 的 iMac 或 Macbook)的。不同类型的模块 的编译步骤和方法是不一样,为了能够一致且方便的执行各种类型模块的编译,在 config.mk 中定义了许多的常量, 这其中的每个常量描述了一种类型模块的编译方式,这些常量有: BUILD_HOST_STATIC_LIBRARY:= $(BUILD_SYSTEM)/host_static_library.mk BUILD_HOST_SHARED_LIBRARY:= $(BUILD_SYSTEM)/host_shared_library.mk BUILD_STATIC_LIBRARY:= $(BUILD_SYSTEM)/static_library.mk BUILD_RAW_STATIC_LIBRARY := $(BUILD_SYSTEM)/raw_static_library.mk BUILD_SHARED_LIBRARY:= $(BUILD_SYSTEM)/shared_library.mk BUILD_EXECUTABLE:= $(BUILD_SYSTEM)/executable.mk BUILD_RAW_EXECUTABLE:= $(BUILD_SYSTEM)/raw_executable.mk BUILD_HOST_EXECUTABLE:= $(BUILD_SYSTEM)/host_executable.mk BUILD_PACKAGE:= $(BUILD_SYSTEM)/package.mk BUILD_PHONY_PACKAGE:= $(BUILD_SYSTEM)/phony_package.mk BUILD_HOST_PREBUILT:= $(BUILD_SYSTEM)/host_prebuilt.mk BUILD_PREBUILT:= $(BUILD_SYSTEM)/prebuilt.mk BUILD_MULTI_PREBUILT:= $(BUILD_SYSTEM)/multi_prebuilt.mk BUILD_JAVA_LIBRARY:= $(BUILD_SYSTEM)/java_library.mk BUILD_STATIC_JAVA_LIBRARY:= $(BUILD_SYSTEM)/static_java_library.mk BUILD_HOST_

2017-11-16

如何分析JAVA crash

如何分析JAVA crash 为什么程序会Crash? 什么是异常? 如何分析JAVA Crash 程序执行时发生了无法处理的异常 崩溃分为 Java Crash 和 Native Crash

2017-11-16

Arm公司培训资料

ARM7总线接口,ARM_THUMB指令,ARM编程技巧,ARM架构,ARM嵌入式开发,ARM处理器内核介绍

2013-12-20

ADB的安装卸载及使用

adb的使用介绍,包括adb的安装,adb的卸载,以及adb的常用的命令

2013-09-27

空空如也

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

TA关注的人

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