自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(137)
  • 收藏
  • 关注

原创 Ubuntu为安装的软件添加启动图标

以AndroidStudio为例1.拷贝AndroidStudio文件夹2.添加应用图标cd /usr/share/applicationssudo gedit studio.desktop添加以下内容:[Desktop Entry]Name=AndroidStudioComment=Edit text filesComment=AndroidStudioExec=/hom...

2019-07-30 11:24:50 2154

转载 Linux inotify功能及实现原理

简介: 当需要对 Linux®文件系统进行高效率、细粒度、异步地监控时,可以采用 inotify。可利用它对用户空间进行安全、性能、以及其他方面的监控。至于inotify的基本介绍可以看下面链接http://www.ibm.com/developerworks/cn/linux/l-inotify/index.html?ca=drs-这里主要说下自己试验的总结:何时需要自己调用i...

2019-07-25 10:29:20 4567

转载 Android 系统整体架构

前言看了Gityuan大神的博客,最近因为遇到一些工作上的问题踩了坑,决定正式开始阅读Android framework层源码,当然后面可能还会经历一个多月的毕设流程,等毕业回来工作也正式要迈上正轨了,好几个月没写博客了,前段时间因为感情上的问题消沉了几个月,好在现在走出来了,其实很早以前就想阅读framework了,趁着这段时间就开始吧。今天这篇文章主要梳理下Android整体的架构和系统启...

2019-07-12 16:31:37 399

转载 linux之DMA-BUF API使用指南

DMA-BUF API使用指南by JHJ(jianghuijun211@gmail.com)转载出自:http://blog.csdn.net/crazyjiang本文将会告诉驱动开发者什么是dma-buf共享缓冲区接口,如何作为一个生产者及消费者使用共享缓冲区。任何一个设备驱动想要使用DMA共享缓冲区,就必须为缓冲区的生产者或者消费者。如果驱动A想用驱动B创建的缓冲区,那么...

2019-07-12 14:13:59 1106

转载 Linux下文件描述符剖析

Linux文件IO open、dup、fork内核原理分析1、open一个文件一个Linux进程启动后,会在内核空间创建一个PCB进程控制块,PCB是一个进程的私有财产。这个PCB中有一个已打开文件描述符表,记录着所有该进程打开的文件描述符以及对应的file结构体地址。默认情况下,启动一个Linux进程后,会打开三个文件,分别是标准输入、标准输出、标准错误分别使用了0、1 、2号文件...

2019-07-12 11:30:50 143

转载 open()在Linux内核的基本实现

1.基本说明在用户态使用open()时,必须向该函数传入文件路径和打开权限。这两个参数传入内核后,内核首先检查这个文件路径存在的合法性,同时还需检查使用者是否有合法权限打开该文件。如果一切顺利,那么内核将对访问该文件的进程创建一个file结构。在用户态,通常open()在操作成功时返回的是一个非负整数,即所谓的文件描述符(fd,file deor);并且,用户态后续对文件的读写操作等都是通...

2019-07-12 11:24:05 3027

原创 linux 最大文件描述符fd

一、查看当前系统使用的打开文件描述符数,可以使用下面的命令: 1 2 [root@localhost ~]# cat/proc/sys/fs/file-nr 163201513506 其中第一个数表示当前系统已分配使用的打开文件描述符数,第二个数为分配后已释放的(目前已不再使用),第三个数等于file-max。二、进程最多打开的...

2019-07-12 11:18:23 580

转载 Mmap的实现原理和应用

很多文章分析了mmap的实现原理。从代码的逻辑来分析,总是觉没有把mmap后读写映射区域和普通的read/write联系起来。不得不产生疑问:1,普通的read/write和mmap后的映射区域的读写到底有什么区别。2, 为什么有时候会选择mmap而放弃普通的read/write。3,如果文章中的内容有不对是或者是不妥的地方,欢迎大家指正。围绕着这两个问题分析一下,其实在考虑...

2019-07-12 10:20:14 344

转载 linux之dup和dup2函数解析

理论介绍:1. 文件描述符在内核中数据结构在具体说dup/dup2之前,我认为有必要先了解一下文件描述符在内核中的形态。一个进程在此存在期间,会有一些文件被打开,从而会返回一些文件描述符,从shell中运行一个进程,默认会有3个文件描述符存在(0、1、2), 0与进程的标准输入相关联,1与进程的标准输出相关联,2与进程的标准错误输出相关联,一个进程当前有哪些打开的文件描述符可以通过/proc...

2019-07-12 10:03:15 211

转载 android 获取APP的唯一标识applicationId

获取APP唯一标识applicationId的方法为:getApplicationInfo().processName(),或getApplication().getPackageName(),或getApplicationInfo().packageName经测试,获取的都是gradle.build中的applicationId,而不是AndroidManifest.xml中的包...

2019-05-29 13:37:40 5699

转载 eglMakeCurrent()详解

eglMakeCurrent()详解在完成EGL的初始化之后,需要通过eglMakeCurrent()函数来将当前的上下文切换,这样opengl的函数才能启动作用。boolean eglMakeCurrent(EGLDisplay display, EGLSurface draw, EGLSurface read, EGLContext context)该接口将申请到的display,...

2019-05-29 13:26:04 2094

转载 从0开始的OpenGL学习-显示不同的纹理

本文主要解决2个问题:1、不同格式的图片,如何作为纹理使用(png、bmp)?2、两张纹理如何进行融合操作,并且通过融合因子去调整显示效果?一、不同格式的图片,如何作为纹理使用(png、bmp)?1.1 png格式不管三七二十一,直接把图片替换掉,看看效果。直接把图替换为png图片嗯?这诡异的显示是啥?第一反应,某些参数设置出错,尤其是glTexImag...

2019-05-28 17:21:45 748 2

转载 OpenGL ES实践教程多重纹理实现图像混合(图像合成)

教程OpenGL ES实践教程1-Demo01-AVPlayerOpenGL ES实践教程2-Demo02-摄像头采集数据和渲染OpenGL ES实践教程3-Demo03-MirrorOpenGL ES实践教程4-Demo04-VR全景视频播放其他教程请移步OpenGL ES文集。有简书的开发者问我如何使用在一张大图上贴一张小图,原始的需求是在检测人脸,在返回的范围(矩形)内贴上一张图片...

2019-05-28 17:20:13 3470

转载 Android - Binder 和 Service(BpInterface和BnInterface研究)

在 Zygote启动过程一文中我们说道,Zygote一生中最重要的一件事就是生下了 System Server 这个大儿子,System Server 担负着提供系统 Service的重任,在深入了解这些Service 之前,我们首先要了解 什么是Service?它的工作原理是什么?1. Service是什么? 简单来说,Service就是提供服务的代码,这些代码最终体现为一个...

2019-05-16 16:46:16 6829 4

转载 Android WiFiDisplay探究

1 WiFiDisplay简介1.1WiFiDisplay概述 WiFiDisplay(WFD)是WiFi联盟在已有技术的基础上,为了加速视/音频的传输分享而提出来的一个新概念。WiFi联盟对此成立了一个认证项目:Miracast-- 用来认证一个设备是否支持WiFiDisplay功能。 下图是WiFiDisplay功能的技术支撑体系,实际上最重要的部分就是WiFi Dire...

2019-05-09 13:53:18 585

转载 ubuntu 安装截图工具 Shutter,并设置快捷键 Ctrl+Alt+A

一、安装截图工具 Shutter1. 添加安装包软件源 (可选)sudo add-apt-repository ppa:shutter/ppa2. 更新源并安装 shuttersudo apt-get updatesudo apt-get install shutter3. 搜索 shutter 可看到已安装成功shutter安装成功二、设置 Shutter 快捷键1...

2019-04-25 15:22:53 272

转载 关于Android沉浸式状态栏字体颜色和图片背景自适应变化

最近开发Android音乐,遇到关于沉浸式状态栏的问题,当音乐封面背景图片和状态栏融合到一起时,如果状态栏的字体设置为白色或者浅色,这时背景图片的颜色也是白色,导致状态栏的字体几乎看不到的问题。如下图这时,如果只是单纯的设置状态栏的字体颜色,这样是不行,因为每播放一首歌,他得封面是不同的,有的颜色深,有的颜色浅,这时候要去判断背景图片的bitmap值,来设置不同的状态栏字体颜色,即所谓的自适应...

2019-03-29 14:43:46 1203

转载 android利用BitMap获得图片的像素数据

/** * 获得图片的像素方法 * * @param bitmap */ private void getPicturePixel(Bitmap bitmap){int width = bitmap.getWidth();int height = bitmap.getHeight(); // 保存所有的像素的数组,图片宽×高int[] pixel...

2019-03-29 14:41:27 3269

转载 Android 截取View,获取View的Bitmap的方法

需求 用户在一个Layout中编辑文字和图片。当用户点击保存按钮时,需要将layout里的所有view以一张图片的形式保存并显示。 这篇文章主要说的是如何获取View的Bitmap。bitmap的保存和显示不在此文讨论。方案一:使用系统API 优点:简单,不易崩溃 缺点:有可能得到null的bitmap。(原因是设备不同,显示的View也会不同,如果设置固定...

2019-03-29 14:39:04 2932 1

转载 Android Animation、ValueAnimator用法介绍

Animation 基本用法在我原来初学andorid时候讲过http://www.cnblogs.com/bokeofzp/p/4759030.html,基本方法有2种:1、res文件中创建anim文件夹,并添加XMl设置animation属性,2、代码中动态设置。但在做项目中设计到了一个需求,就是当图片在缩放到0.5f的时候需要开始旋转和平移图片。  这里我们不能简单的定义一个缩放动画和一...

2019-03-19 11:23:50 317

转载 Failure [DELETE_FAILED_INTERNAL_ERROR]之后rm apk卸载

今天用adb uninstall com.xx.xx卸载一个软件结果报错:Failure [DELETE_FAILED_INTERNAL_ERROR]最后没有办法,装了个kingroot,通过kingroot卸载。。。现在知道了:首先:adb shell pm list packages -s 找到要删除的包名获取包名的地址:adb shell pm path com.xx.xx挂...

2019-03-15 15:04:15 1071

转载 Android ADB命令大全(通过ADB命令查看wifi密码、MAC地址、设备信息、操作文件、查看文件、日志信息、卸载、启动和安装APK等)

ADB很强大,记住一些ADB命令有助于提高工作效率。 获取序列号: adb get-serialno 查看连接计算机的设备: adb devices 重启机器: adb reboot 重启到bootloader,即刷机模式: adb reboot bootloader 重启到recovery,即恢复模式: ...

2019-03-06 14:28:41 1569

转载 在不root手机的情况下读取Data目录下的文件

127|shell@android:/$cd/data cd/data shell@android:/data$ls ls opendirfailed,Permissiondenied你是没有权限的。正确使用adb读取data目录下的文件方式[plain]view plaincopyshell@android:/data$run-...

2019-03-06 11:25:19 2945

转载 使用dumpsys gfxinfo 测UI性能(适用于Android6.0以后)

原文地址:https://developer.android.com/training/testing/performance.html使用dumpsys gfxinfo 测UI性能dumpsys是一款运行在设备上的Android工具,将 gfxinfo命令传递给dumpsys可在logcat中提供输出,其中包含各阶段发生的动画以及帧相关的性能信息。> adb shell du...

2019-03-06 11:23:20 1431

转载 Android SurfaceFlinger SW Vsync模型

Android SurfaceFlinger Vsync这块比较复杂,最初在看这块的时候,迟迟不知道从何入手,网上看了各种SurfaceFlinger Vsync相关的博客,个人感觉紧紧是把代码流程给讲了一遍,当涉及到更具体一些知识,比如updateModelLocked里的时间计算时都没有一篇文章涉及到。自己硬着头皮看了好几星期,稍微有些心得。所以在这里写下博客将我所理解的Surfac...

2019-02-27 15:59:52 1963 1

转载 Android 消息机制原理研究 (Looper.addFd)

消息都是存放在一个消息队列中去,而消息循环线程就是围绕这个消息队列进入一个无限循环的,直到线程退出。如果队列中有消息,消息循环线程就会把它取出来,并分发给相应的Handler进行处理;如果队列中没有消息,消息循环线程就会进入空闲等待状态,等待下一个消息的到来。在编写Android应用程序时,当程序执行的任务比较繁重时,为了不阻塞UI主线程而导致ANR的发生,我们通常的做法的创建一个子线程来完成特定...

2019-02-26 17:28:29 2289

转载 C++11多线程std::thread的简单使用

在cocos2dx 2.0时代,我们使用的是pthread库,是一套用户级线程库,被广泛地使用在跨平台应用上。但在cocos2dx 3.0中并未发现有pthread的支持文件,原来c++11中已经拥有了一个更好用的用于线程操作的类std::thread。cocos2dx 3.0的版本默认是在vs2012版本,支持c++11的新特性,使用std::thread来创建线程简直方便。下面介绍下std:...

2019-02-26 10:38:30 264

转载 Android显示系统框架_Vsync机制_黄油计划_三个方法改进显示系统

5. Vsync机制5.1 黄油计划_三个方法改进显示系统vsync, triple buffering, vsync虚拟化参考文档:林学森 <深入理解Android内核设计思想>第2版 9.6节Getting To Know Android 4.1, Part 3: Project Butter - How It Works And What It Addedhttp...

2019-02-20 14:27:26 1236

转载 Android 4.4(KitKat)中VSync信号的虚拟化

Android 4.1(Jelly Bean)引入了Vsync(Vertical Syncronization)用于渲染同步,使得App UI和SurfaceFlinger可以按硬件产生的VSync节奏来进行工作。关于VSync的介绍详见博文http://www.androidpolice.com/2012/07/12/getting-to-know-android-4-1-part-3-proj...

2019-02-20 13:28:31 148

转载 Android 图形系统-Vysnc

简介本文讲解的内容是Android4.1以后的系统机制,将从整体上分析Android图形显示系统的结构,不深入分析每一层内部的代码实现,更多的是使用流程图和结构图来让大家理解Android是如何绘制、合成图形并显示到屏幕上。本文将从三个层次进行讲解,大致如下图:大体流程可以理解为上层生产,下层消费模型。其中每一层之间的数据传递是使用Buffer(图形缓冲区)作为载体:图形数据的载...

2019-02-19 16:21:14 387

转载 Android 应用程序主动请求Vsync

App Request Vsync/frameworks/base/core/java/android/view/ViewRootImpl.java[ViewRootImpl.java–>ViewRootImpl.scheduleTraversals()]    void scheduleTraversals() {        if (!mTraversalSchedule...

2019-02-19 15:48:47 1111

转载 快速理解 VSync

    前言    帧率 vs 屏幕刷新频率        帧率        屏幕刷新频率    VSync 是啥    VSync 有啥作用        单缓存        双重缓存Double Buffer        三重缓存Triple Buffer    更多文章前言本文讲解 VSync 产生的原因及其作用。内容涉及如下方面:    帧率 vs 屏幕...

2019-02-19 15:13:30 6965

转载 Android 神器 xposed 框架使用指南

1 简介xposed号称Android上最强大的神器,如果你还不知道xposed是啥,那么你真的out了,本篇博客,让博主带你来了解xposed。(1) xposed 是啥?xposed是一个框架,上面有很多模块,这些模块都依赖于xposed这个框架,之所以称xposed是第一神器,就是因为这些模块可以完成许多匪夷所思的功能,例如:修改微信的界面,自动抢红包模块,自定义程序的文本,防止微...

2019-02-19 13:14:00 2865

转载 【Android】Intent传递数据量过大的问题android.os.TransactionTooLargeException

在做相册多选时,相册选择界面跳转预览界面时需要通过Intent将所有照片的数据传递给PreviewActivity(预览界面),而当数据量大的时候程序会崩溃,错误信息是android.os.TransactionTooLargeException,后来通过查阅官方资料(https://developer.android.com/reference/android/os/TransactionToo...

2019-02-18 14:57:05 1578

转载 android 6.0 亮屏灭屏流程分析

亮屏、灭屏流程整个流程涉及的模块比较多,包括PowerManagerService、DisplayPowerControl、WMS、AMS。因此在分析完WMS之后,我们把这块也分析下。DisplayPowerControl我们知道灭屏流程的发起是在PowerManagerService中,会通过updatePowerState函数调用updateDisplayPowerStateLock...

2019-01-28 14:35:43 886

转载 一个Activity左右分别显示一个Fragment

 前天去面试,面试后让当场撸代码,面试官让写左边一个Fragment加载listview,右边也是一个fragment,加载Listview。之前几乎没写过这个,不过经过各种调试,最后撸出来了 ,效果差一点,我左边用的是ListFragment,右边是一个fragment,加载的是textview,不是listview(右边的不太符合要求)。这里把它补充完整,记录下来。这种文章网上有很多,代码大...

2019-01-24 16:41:25 1148

转载 .h与.hpp文件的区别

c++中的.hpp文件 hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再 将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用hpp将大幅度减少调用 project中的cpp文件数与编译次数,也不用再发布烦人的lib与dll,因此非常适合用来...

2019-01-24 15:03:10 670

转载 C++11右值引用和std::move语句实例解析

关键字:C++11,右值引用,rvalue,std::move,VS 2015OS:Windows 10 右值引用(及其支持的Move语意和完美转发)是C++0x加入的最重大语言特性之一。从实践角度讲,它能够完美解决C++中长久以来为人所诟病的临时对象效率问题。从语言本身讲,它健全了C++中的引用类型在左值右值方面的缺陷。从库设计者的角度讲,它给库设计者又带来了一把利器。从库使用者的角...

2019-01-21 16:32:22 198

转载 C++中的mutable关键字

mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。    在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。    我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改...

2019-01-21 16:28:41 189

转载 Android C++的sp指针简介

智能指针是c++ 中的一个概念,因为c++ 本身不具备垃圾回收机制,而且指针也不具备构造函数和析构函数,所以为了实现内存( 动态存储区) 的安全回收,必须对指针进行一层封装,而这个封装就是智能指针,c++的智能指针有很多实现方式,有auto_ptr ,  unique_ptr , shared_ptr 三种,还有其他的。android 中的sp 句柄类实际上就是google 实现的一种强引用的...

2019-01-21 15:55:18 1906

空空如也

空空如也

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

TA关注的人

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