自定义博客皮肤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的专栏

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

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

转载 Camera2框架从Java层到C++层类关系

转自:http://blog.csdn.net/hejjunlin/article/details/53138945 Agenda:getSystemService(Context.CAMERA_SERVICE)CameraManager.getCameraIdList()ICameraService.aidlICameraService.cppcamera2中从Java层

2017-10-20 14:54:37 773

转载 Camera框架之Camera2

转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52751055 前言:监于5.0之后Google用的是Camera2相关API取代之前的Camera,过时的Camera虽然精典,但不再进行介绍,可自行查阅相关资料。今天本文是在正式深入代码前对Camera2的一个补充。上篇中

2017-10-20 14:10:42 889

原创 C++ 中函数的一些概念

梳理一些C++中函数的一些概念,比如隐藏,想说清隐藏,就肯定要提到重载,覆盖。先说重载的一些特征:1),在相同的范围内,也即是要在同一个类中,成员函数之间的重载。2),函数名字相同,但是参数不同。3),virtual关键字可以有,可以没有,从以上特征看出,重载函数的区分是根据参数的不同,编译器会根据参数为每个重载函数产生不同的内部标识符。比如函数:void func(i

2017-10-19 22:13:05 439

原创 指针操作动态内存

因为指针“可变”的特性,常用它操作动态内存。1,如何通过指针来申请动态内存?如果函数的参数是一个指针,是否能通过这个参数获取到期望的内存?void getMemory(char *p, int num){ p = (char*)malloc(sizeof(char) * num);}void testGetMem(){ char *str = NULL; getMemo

2017-10-19 06:52:33 582

原创 C++中引用,指针和数组的比较

C++中引用和指针的比较引用是c++中的概念,int var;int&ref = var;以上代码中,ref是var的引用,var是被引用物,ref相当于var的别名,对ref的任何操作就是对var的操作,所以ref既不是var的拷贝,也不是指向var的指针,其实ref就是var它自己。引用的一些规则:1)引用被创建的同时必须被初始化(指针可以在任何时候被初始化)。

2017-10-17 06:48:27 340

转载 Android总结篇系列:Android广播机制

点击打开链接转自:http://www.cnblogs.com/lwbqqyumidi/p/4168017.html  Android总结篇系列:Android广播机制1.Android广播机制概述Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器)。广播作为Android组件间的通信

2017-10-13 16:57:23 538

转载 用Happen-Before规则,分析单例模式-懒汉式写法

转自: http://www.iteye.com/topic/260515 编写Java多线程程序一直以来都是一件十分困难的事,多线程程序的bug很难测试,DCL(Double Check Lock)就是一个典型,因此对多线程安全的理论分析就显得十分重要,当然这决不是说对多线程程序的测试就是不必要的。传统上,对多线程程序的分析是通过分析操作之间可能的执行先后顺序,然而程序执行顺序十分复杂,

2017-10-12 20:05:48 493

转载 java同步中的ReentrantLock和synchronized

转自 ->点击打开链接 https://www.ibm.com/developerworks/cn/java/j-jtp10264/index.html多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个Thread 类,可以用它来构建、启动和操纵线程,Java 语言

2017-10-12 07:35:45 267

转载 Java并发编程:volatile关键字解析

转自:http://www.cnblogs.com/dolphin0520/p/3920373.htmlJava并发编程:volatile关键字解析   volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  vo

2017-10-10 06:18:49 195

原创 activity的启动模式,startactivity的过程

Android:launchMode用于指定Activity被启动的方式,主要包括两个方面:即Activity是否为单实例,及Activity归属的task。不管是那种方式,被启动的Activity都要位于Activitytask的栈顶。1),standard,默认状态,这种模式下Activity是多实例的,系统总是启动一个新的Activity来满足要求,即使之前已...

2017-09-28 19:59:34 2414

原创 android 中c/c++层用到的同步机制

Android 中的同步机制。       什么是同步,什么是互斥?       如果多个(包括两个)进程间存在时序关系,需要协同工作以完成一项任务,就叫同步。       如果他们之间并不满足协同的条件,而只是因为共享具有排他性的资源时所产生的关系,就叫互斥。       C/C++层用到的同步机制。一,Mutex进程间的同步Mutex,Mutual Exclusion的

2017-09-25 18:27:28 907

原创 android事件处理,对事件的接收处理,(6)

六,对事件的接收,从ViewRootImpl.java 说起。       为什么要从ViewRootImpl说起呢?还记得前面说inputChannel通道的时候,是从添加一个窗口开始的,那么添加窗口就是从ViewRootImpl的setView开启的。       ViewRootImpl.javapublic void setView(View view,WindowManage

2017-09-19 17:14:04 935

原创 android事件处理,把事件通知到焦点窗口,(5)

五,接下来的问题是InputDispatch是怎么把事件通知到到焦点窗口InputTarget的呢?先看下InputTarget的定义,InputDispatcher.h一个inputtarget表明了怎样把一个输入事件分发给一个特定的窗口。struct InputTarget {       enum{              //这个flag指示 事件应该发给前台应用

2017-09-19 17:11:01 1022

原创 android事件处理,InputDispatch怎么处理事件的?(4)

四,InputDispatch怎么处理事件的?InputDispatch的循环同样是通过InputDispatchThread的ThreadLoop调用dispatchOnce实现的。在分发事件的处理中,如果事件类型是TYPE_KEY,将分发给dispatchKeyLocked。InputDispatcher.cppvoidInputDispatcher::dispatchOnce

2017-09-19 17:08:07 891

原创 Android事件处理过程,InputDispatchThread和InputReaderThread的协作,(3)

三、另一个线程InputDispatchThread,它的实现核心是InputDispatch。InputDispatchThread和InputReaderThread是要协同工作的,那是怎么协作的呢?前面说过这两个线程是在frameworks/native/services/inputflinger/InputManager.cpp中创建的。InputManager::InputM

2017-09-19 17:03:33 831

原创 Android 事件处理过程,读取事件线程,(2)

二、InputReaderThread,       InputManager创建的两个主要线程之一InputReaderThread,它的主要工作是轮询设备节点是不是有新的事件发生,这是一个独立的循环线程。他的运行通过前面提到的 mReaderThread→run()这个run方法启动的,这个run方法接着调用_threadLoop,InputReaderThread的核心实现类是Input

2017-09-19 17:01:46 562

原创 Android 事件处理过程,(1)

Android 事件处理过程 一、事件主要包括按键-keyEvent,触屏-motionEvent,事件投递的过程分为几个部分,源信息的采集->WindowManagerService分配->应用程序处理。Android通过访问/dev/input节点来获知当前发生的事件。WindowManagerService是窗口的管理者,记录了系统中所有窗口的状态信息,所以它能够判断应该

2017-09-19 16:57:53 1102

原创 字符串排列,for循环嵌套递归

字符串的排列,就是给定一个字符串abc,输出能排列出的所有的字符串,如:abc,acb,bac,bca,cba,cab,写这个算法主要是想练习for循环中嵌套递归是怎么执行的,其实单纯的递归算法还是相对好理解的,你想找一个问题的递归算法,就是先把问题分成更小的子问题,并且这个分割还要是有限的,得有终止递归的条件,然后就是用什么方法解决最小的问题。算法写出来后,验证算法的正确行,运行下最直观,也

2017-09-10 22:55:23 1405

原创 环形链表,约瑟夫问题,(7)

一个经典的环形链表问题,有1,2,3,,,,n这些数字排成一个圆圈,从1开始每次删除第m个数字,求出这个圆圈中最后的数字。当然也可以说先从数字k开始,数到m删除这个数字,然后就从1开始,数到m删除这个数字,原理是一样。这里是从1开始,数到m删除这个数字。其实一个单向非循环链表也是可以模拟这个应用的,就是当指针知道最后一个节点时,让他转到头结点继续遍历。下面的实例是环形链表,尾节点的下一

2017-09-04 22:36:31 339

原创 Camera (api1)的打开过程

Camera (api1)的打开过程 setModuleFromIndex()@CameraActivity.javaà{           mPhotoModule = new PhotoModule();mPhotoModule.init(this,mCameraPhotoModuleRootView);         mCurrentModule= mPh

2017-09-04 18:29:39 916

原创 链表合并(6)

有两个递增排序的链表,把他们合并后的节点仍然是递增排序的。这个问题的思路比较简单,首先比较p1,p2头结点,把较小的节点(比如是p1)赋值给mergeHead节点,然后,把p1->Next跟p2比较,以此类推,每次比较两个节点,所以这里可以考虑用递归。#include #include "ListCommon.h"using namespace std;ListNode* mer

2017-09-03 14:43:06 241

原创 反转链表,(5)

实现链表的反转,比如原来是 1->2->3->4->5;翻转后就是 5->4->3->2->1,

2017-09-03 12:49:11 198

原创 从尾部查找一个单向链表的第几个节点。(4)

给定一个单向链表,查找出从尾部开始的第k个节点,也就是倒数第k个节点,这里假定是从1开始计数的,即尾节点是第一个节点。如图,假如要查找的是倒数第3个节点,一种思路就是从头结点开始遍历,遍历到尾部,得出链表的长度n,然后再从头开始遍历到 n-k+1个节点,就是倒数第k个,这么做要遍历链表两次。还有一个思路,定义两个指针,p1st,p2d,开始都指向头结点,如果p1st指向尾部节点时,刚好

2017-09-02 21:42:52 893 1

转载 编码问题,unicode,string

转:http://blog.csdn.net/z69183787/article/details/25742307unicode编码简而言之就是将每一个字符用16位2进制数标识。但是通常都用4位的16进制数标识。例如:1)中文字符串"你好"的unicode码为:\u60\u597d;2)英文字符串"ab"的unicode码为:\u0061\u0062;其中\u是标

2017-09-01 16:49:59 1625 1

原创 用O(1)时间,删除一个链表节点(3)

有这样一个问题,给定一个单向链表的头结点pHead和要删除的节点pDeleted,但是要求在O(1)时间完成。可能先想到的就是从头结点往前遍历,找到要删除的节点pDeleted,这样就知道了它的前后节点,但是这样的时间是O(n)。这里的思路是:把pDeleted的下一个节点pNode1的值赋给pDeleted,同时让pDeleted指向pNode2,然后把pNode1删掉,pDelet

2017-08-31 22:52:32 347

转载 callable,Executor,Future

转:http://blog.csdn.net/zhangzhaokun/article/details/6615454 在再度温习Java5的并发编程的知识点时发现,首要的就是把Runnable、Callable、Executor、Future等的关系搞明白,遂有了下述小测试程序,通过这个例子上述三者的关系就一目了然了。在java5以后,一个可以调度执行的线程单元可以有三种方式定义:

2017-08-31 19:41:05 267

转载 Android内存优化

转:http://www.cnblogs.com/ldq2016/p/6635774.html 智能手机发展到今天已经有十几个年头,手机的软硬件都已经发生了翻天覆地的变化,特别是Android阵营,从一开始的一两百M到今天动辄4G,6G内存。然而大部分的开发者观看下自己的异常上报系统,还是会发现各种内存问题仍然层出不穷,各种OOM为crash率贡献不少。Android开发发展到今天也是已经

2017-08-31 19:29:38 446

转载 Callable Feature

转:http://blog.csdn.net/ghsau/article/details/7451464  接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。        Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功

2017-08-31 19:19:25 758

转载 图片加载库-Glide

在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech。这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会上发布的官方app。毫无疑问,这个库引起了我的兴趣。于是我花了一个晚上研究和把玩它,将它的实现原理分析清楚以后,我决定写一篇博文分享一些自己的经验。在开始之前我想说,Glide和Picasso有90%的

2017-08-31 18:49:36 290

转载 图片加载库-Fresco

转载:http://blog.csdn.net/theone10211024/article/details/45646963 在Android设备上面,快速高效的显示图片是极为重要的。过去的几年里,我们在如何高效的存储图像这方面遇到了很多问题。图片太大,但是手机的内存却很小。每一个像素的R、G、B和alpha通道总共要占用4byte的空间。如果手机的屏幕是480*800,那么一张屏幕大小

2017-08-31 18:46:47 327

转载 Picasso 图片下载缓存库

转:http://blog.csdn.net/theone10211024/article/details/45604373对于Bitmap的对象池,重用对象,通常使用WeakReference来保存要引用的Bitmap对象,这里需要加一个引用队列,在发生GC时,可以对Bitmap做recycle处理。https://www.jianshu.com/p/f86d3a43eec5http...

2017-08-31 14:53:55 564

转载 EventBus的使用

相关文章:1、《EventBus使用详解(一)——初步使用EventBus》2、《EventBus使用详解(二)——EventBus使用进阶》一、概述EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。

2017-08-31 14:40:01 213

原创 反方向打印链表。(2)

给出一个链表的头节点,从尾部逆序打印链表。这里有2中实现思路,一种是用stack,先从头节点开始,依次把链表节点入栈,然后再依次弹出。第二种思路是递归,实际递归的本质也是用栈来实现的。#include #include #include "ListCommon.h"using namespace std;//用stack实现void printListR

2017-08-28 22:56:12 310

原创 链表基本操作的函数实现。(1)

如下是一个模拟的链表的基本操作,主要有创建链表,连接链表,打印链表,删除链表等,后面有关链表的算法都依赖这个文件中函数实现。ListCommon.h//链表的结构struct ListNode{    int m_nValue;    ListNode* m_pNext;};//通用的操作函数ListNode* CreateListNode(int

2017-08-28 22:48:22 929 1

原创 用两个栈实现一个队列算法

栈:后进先出,队列:先进先出。用两个栈实现一个队列,主要实现队列中的两个函数,appendTail,尾部追加,deleteHead,在头部删除节点,用了一个模板类,队列的元素可以是任意类型,int,char都可以,其中类模板中构造函数,析构函数,appendTail,deleteHead的声明和实现都要写在.h中,把实现写在.cpp中,会提示这些方法没定义。模板定义挺特殊的。Analo

2017-08-27 12:20:16 379

原创 一个字符替换的算法

给定一个字符串把其中的空格替换成 (%) 这3个字符。#include using namespace std;void strRepace(char chArray[], int maxLen){    if(chArray == NULL)        return ;//计算空格数    int numsOfSpace =0;

2017-08-26 22:05:52 469

原创 使用位运算 的2个算法

1,不用临时变量,交换两个值:#include using namespace std;void swapValue(int num1,int num2){//通过亦或运算符^,交换两个值,不适用临时变量,第一步:num1 = num1^num2,num2=num2^num1,相当于num2 =num2^num1^num2;也等于num1^num2^num2,因为num2^

2017-08-26 11:46:31 362

原创 哈希表,找出第一个出现一次的字符

在一个字符串中,找出第一个出现一次的字符,把每个字符做为hash表中的key,出现的次数做为对应的值。#include using namespace std;char getFirstNotRepeatChar(const char *pStr){    if(pStr == NULL)        return '\0';//一个char字符占8个

2017-08-24 22:16:10 347

原创 二分法 -算法

二分法查找,这个算法要求数据要是有序的。比如有这样的问题:找出一个数组中,两个数的和小于等于15,然后输出他们,否则就单独输出较大的数。#include using namespace std;void binarySearch(int *array, int length){    if(array == NULL || length == 0)        ret

2017-08-23 22:49:46 543

原创 字符转整数 算法

把一个字符串转成整数:#include using namespace std;long long strToInt(const char* str){    long long num = 0;    bool minus = false;    cout     if(str != NULL && *str != '\0'){        if(*st

2017-08-22 23:00:45 327

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关注的人

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