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

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

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

原创 用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 268

转载 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 311

原创 链表基本操作的函数实现。(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 381

原创 一个字符替换的算法

给定一个字符串把其中的空格替换成 (%) 这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 328

原创 Gallery2 的数据加载及渲染

图库主要的显示界面图库主要的显示界面包括:相册集AlbumSetPage,相册AlbumPage,图片预览PhotoPage,这些界面都有一个父类:ActivityState;界面的管理由StateManager负责。public class AlbumSetPage extends ActivityState{}public class StateManager {//根据传入的界面的.cl...

2017-08-21 18:51:44 3844 1

原创 camera2 (api2)打开预览过程(二)

使用camera的流程: openCamera() -> applySettings() -> setPreviewTexture() -> startPreview() ->autoFocus() -> takePicture()。打开camera设备的大致过程:1,  实例化CameraModule对象,即mCurrentModule表示当前的module,默认是...

2017-08-21 09:03:29 5771

原创 压缩目录,排除多个子目录

想从公司copy一份Android 平台完整的代码,方便在家时也可以看代码,因为文件很大,要先压缩,在压缩时不需要.repo,.git这些版本库相关的文件,做法:如果压缩时用--exclude 逐个列出要排除的文件很麻烦,所以先把不要的文件、目录找出来输出到一个文件excludefile.xml,这样方便查看都排除了那些文件,比直接用通配符:--exclude "*.git" 更详细。

2017-08-18 11:19:32 2390

原创 多个基于AIDL的server,Binder驱动怎么区分它们

一个进程要想提供Binder服务,必须要调用ProcessState::self()->startThreadPool();IPCThreadState::self->joinThreadPool();这两个方法,然后整个进程就进入一个Binder loop循环了。ProcessState负责打开Binder设备节点,做mmap内存映射,,IPCThreadState是负责跟Binde...

2017-08-09 19:38:22 549 3

转载 Binder:为什么要通过onTransact()调用目标方法

转载自:http://www.jianshu.com/p/b260051237fe Binder:为什么要通过onTransact()调用目标方法 0x00 背景最近被提出一串问题:为什么android.os.Binder要提供onTransact()方法给子类重写。为什么要通过Client:invokeMethod -> onTransact() -> Service:targetM...

2017-08-08 18:19:37 1774

转载 LeakCanary 中文使用说明

转载自:https://www.liaohuqiu.net/cn/posts/leak-canary-read-me/LeakCanary 中文使用说明 10 May 2015 LeakCanaryAndroid 和 Java 内存泄露检测。“A small leak will sink a great ship.” - Benjamin Franklin千

2017-08-02 17:04:46 306

原创 Camera2(api2) 打开过程(一)

C++层log的输出,如果不全,可以调整log的级别:adb shell dumpsys media.camera -v 1 ,至少改成>=1。 Camera2 打开过程 public void onCreateTasks(Bundle state)@ CameraActivity.java{ mFirstRunDialog = new FirstRunDialog(this...

2017-08-02 17:00:54 7096 1

转载 代码中dumphprof数据

转载自:https://gist.github.com/pyricau/4726389fd64f3b7c6f32    Dump the heap on OutOfMemoryError crashes in your debug builds.  Raw                                            OomExcep

2017-08-02 16:48:48 916

原创 Android 调试工具介绍

Android调试工具介绍查看帧率:adb shellsetprop debug.sf.showfps 1logcat | grep fps输出log:01-10 11:24:15.554 399 582 D SDM : HWCDisplay::DebugShowFps: fps=4在帧率偏低情况下,查看cpu,gpu利用率:adb shellsu...

2017-08-02 16:46:25 5480

转载 bitmap的六种压缩方式,Android图片压缩

转载自:http://blog.csdn.net/harryweasley/article/details/51955467 转载请注明出处,谢谢:http://blog.csdn.net/harryweasley/article/details/51955467Android中图片是以bitmap形式存在的,那么bitmap所占内存,直接影响到了应用所占内存大小,首先要知道bitma

2017-08-02 16:37:01 7003 1

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

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