- 博客(88)
- 资源 (5)
- 收藏
- 关注
原创 HTTPS的理解
一个Cipher Suites(加密算法套件)是以下4个算法的组合:Authentication(认证)算法:有RSA,ECDSA,DH等;Encryption(加密)算法:AES-128, AES-256, AESGCM256等;Message Authentication Code(消息认证, MAC)算法:有AEAD, SHA1, SHA256等;Key Exchange(密钥交换...
2019-09-23 15:23:34
282
原创 Android中SharedPreferences的理解
SharedPreferences的创建通过Context的getSharedPreferences(String name, int mode)返回创建的SharedPreferences.
2017-10-16 19:59:39
536
原创 从截屏调用功能看Android Binder的调用流程
以截屏功能为例,分析一下Android中Binder通信的流程。class ISurfaceComposer: public IInterface { DECLARE_META_INTERFACE(SurfaceComposer); // flags for setTransactionState() enum { eSynchronous = 0x01,
2017-09-12 11:11:39
530
原创 深入浅出Android消息通信机制
消息通信是Android系统中使用相当普遍的一种线程间通信方式。既然是线程间的通信,就一定存在共享的对象,一定需要处理线程间的同步。本文对Handler、Looper和MessageQueue所实现的消息通信机制做深入的剖析。 图1. Android消息机制的框架一、HandlerHandler用于发送和处理Message和Runnable对象(两者统称为消息),即Handler
2017-08-16 08:01:10
943
原创 Android中MediaCodec的使用
一、主屏幕信息的获取 SurfaceComposerClient类提供了获取主屏幕信息的方法,获取结果保存在DisplayInfo结构体中,如果要监听屏幕方向变化,则可以轮询getDisplayInfo( )函数来实现。sp<IBinder> mainDpy = SurfaceComposerClient::getBuiltInDisplay( ISurfaceComposer::
2017-08-12 14:01:52
3683
转载 一篇讲述Android图像合成的文章
Android图形显示系统——下层显示4:图层合成上(合成原理与3D合成) https://yq.aliyun.com/articles/57390?spm=5176.100239.blogcont57389.9.8YGrd1
2017-08-10 21:46:27
528
原创 C++沉思录“字符图像”的程序分析
《Ruminations on C++》一书中有一例子,要求显示“character strings“为“framed pictures”。一、题目给定一个字符串数组,编写程序,依次支持以下功能: 1. 显示“字符图像”: 按每行显示一个字符串的方式,打印出矩形字符阵列。矩形高为字符串数组的大小,宽为最长的字符串长度。 2. 对“字符图像”加框:上下左右各加一行; 3. 对两副“字符图像”横
2017-07-29 21:43:26
318
原创 Android中Graphic的理解
APP进程private int relayoutWindow(WindowManager.LayoutParams params, int viewVisibility, boolean insetsPending) throws RemoteException { float appScale = mAttachInfo.mApplicationScale
2017-07-23 17:08:11
1070
原创 wait()和waitpid()的理解
#include <sys/wait.h>pid_t wait(int *stat_loc);pid_t waitpid(pid_t pid, int *stat_loc, int options);wait()和waitpid()函数用于获取调用者子进程的状态信息。可以通过设置参数来获取已中止(terminated)或结束(stopped)的子进程的状态信息。如果两个或多个子进程的状态信息同时
2017-06-18 20:37:56
512
原创 ffmpeg命令使用总结
ffmpeg的使用选项:-f formats alaw PCM A-law f32be PCM 32-bit floating-point big-endian f32le PCM 32-bit floating-point little-endian f64be
2017-06-13 17:43:08
2072
原创 linux中的线程本地存储pthread_key_t和pthread_once
Linux中提供了这样一种机制:同一进程的多个线程之间既可以共享某个全局变量,也可以做到每一个线程单独使用它,独立设置、获取它的值,而不影响别的线程的使用。这种机制就是线程本地存储(Thread Local Storage, TLS)。#include <pthread.h>int pthread_key_create(pthread_key_t *key, void (*destructor)(v
2016-12-18 22:15:40
1075
原创 socketpair的用法和理解
socketpair()函数的声明:#include <sys/types.h>#include <sys/socket.h>int socketpair(int d, int type, int protocol, int sv[2]);socketpair()函数用于创建一对无名的、相互连接的套接子。如果函数成功,则返回0,创建好的套接字分别是sv[0]和sv[1];否则返回-1,错误码保存
2016-12-17 22:09:33
6572
1
转载 如何搭建一个独立博客——简明Github与Hexo教程
前言买过域名和主机,折腾过wordpress,个人博客也搭建起来了,本来是准备写技术文章,分享,但是折腾那些东西花费了太多的时间,认真写作反而少了。现在决定换成hexo写博客,专注写作分享,少折腾。本文主要参考cnfeat的《如何搭建一个独立博客——简明Github Pages与Hexo教程》,原文很详细,还有Zippera的《hexo系列教程》为什么选择Hexohexo是一个
2016-10-15 16:25:00
535
原创 欢迎使用优快云-markdown编辑器
MarkDown实例本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键代码示例:service installd /system/bin/installd cla
2016-10-09 19:43:19
200
转载 epoll多线程的例子
/* ============================================================================ Name : epoll_multithreads.c Author : Version : Copyright : Your copyright notice Description :
2016-08-22 07:53:30
760
转载 Epoll代码实例
#include #include #include #include #include #include #include #include #include #include #define MAXEVENTS 64static int set_non_block(int sockfd) { int flags, s; flags = fcntl(s
2016-08-19 18:44:07
271
转载 理解Cookie和Session机制
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。Cookie机制Co
2016-08-12 16:20:10
533
转载 Linux中select函数的使用举例
/* For sockaddr_in */#include /* For socket functions */#include /* For fcntl */#include /* for select */#include #include #include #include #include #include #include #define MAX_LINE
2016-07-23 20:53:31
412
转载 swap扩展的方法
swap 介绍:当物理内存占用完了后,当系统还需要更多的物理内存时,物理内存中inactive pages ,就move到swap空间。swap 空间是在位于硬盘上的,因此访问速度较物理内存慢。当机器的物理内存发生变化时,swap 分区也要做相应的扩展:有三种方法可以对swap 分区进行扩展:一、扩展正在使用的swap 分区的逻辑卷(推荐使用此种方式)二、新建swap 分区,
2015-09-29 09:50:42
779
转载 C语言getopt()函数的使用
getopt(分析命令行参数) 相关函数表头文件 #include定义函数 int getopt(int argc,char * const argv[ ],const char * optstring);函数说明 getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和
2015-09-20 23:02:19
376
转载 C/C++中的日期和时间 time_t与struct tm变换
摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)1.概
2015-07-09 10:00:01
652
转载 Android中对GridView, ListView等滚动控件的Touch事件onInterceptTouchEvent,onTouchEvent理解
在开始正文之前,首先得感谢http://blog.youkuaiyun.com/guitk/article/details/7057155提供的一篇转载文章,里面说的内容和插图让我对TouchEvent的事件传递迅速有了一个大致的印象。但是文章里面有说的不全面不详细的地方,特发此博客记录个人对于这类问题的理解,用来补充和完善,有不妥的地方,也欢迎大家批评讨论。 正如命名一样,onInter
2015-06-09 18:20:24
718
转载 Android中Bitmap和Drawable
一、相关概念1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象2、Canvas画布,绘图的目的区域,用于绘图3、Bitmap位图,用于图的处理4、Matrix矩阵二、Bitmap1、从资源中获取Bit
2015-06-06 16:08:55
372
原创 Android中像素单位的理解
dip:device independent pixels (设备独立像素)。不同设备不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。dp: density independent pixels(与密度无关的像素),它与像素密度有关。像素密度的单位dpi是Dots Per Inch的缩写,即每英寸像素数量。不同的手机/平板
2015-05-25 15:45:24
1432
转载 Android系列---JSON数据解析
一、什么是jsonjson(Javascript Object Notation)是一种轻量级的数据交换格式,相比于xml这种数据交换格式来说,因为解析xml比较的复杂,而且需要编写大段的代码,所以客户端和服务器的数据交换格式往往通过json来进行交换。尤其是对于web开发来说,json数据格式在客户端直接可以通过javascript来进行解析。json一共有两种数据结构,一种是以
2015-04-29 16:05:15
367
原创 HttpClient的使用指南
使用HttpClient可以在客户端发送Post请求,请求访问服务端的Servlet,具体的实现如下:public void sendPostMethod(){ DefaultHttpClient httpclient = new DefaultHttpClient(); //参数代表目标地址 HttpPost httppost = new HttpPost
2015-04-22 23:22:18
657
原创 使用Builder模式代替来创建实例
引入:考虑有这样一个类的设计,它用来表示包装食品外面的营养标签,包含以下内容:每罐的含量(servingSize)营养品的种类(servings)卡路里(calories)脂肪含量(fat)钠含量(sodium)糖含量(carbohydrate)。其中前两个是必须的,后面几项是可选的。对于这样的类,应该用哪种构造方法或者静态方法来编写呢?一种常用的方法是采用重叠
2015-04-06 15:09:53
653
原创 DownloadProvider介绍
一、介绍DownloadProvider提供了一个保存数据的格式,如content://downloads/my_downloads/1,或content://downloads/all_downloads/2。第三方应用可以使用DownloadManager的enqueue(Request)方法来请求下载,并可以使用ContentResolver的query()方法来查询,注意这里只能查到他
2015-04-05 23:57:30
8514
转载 Android中的颜色设置
1、在android中经常看到设置的颜色为八位的十六进制的颜色值,例如:123public static final class color { publicstatic final int lightblue=0x7f040000;}或者在Java
2015-03-04 19:54:25
431
原创 Animator介绍
一、ObjectAnimator重要的方法:public static ObjectAnimator ofFloat(Objecttarget, String propertyName, float... values);构造并返回一个ObjectAnimator对象。注意values值的意义:1.如果values只有一个值,表示动画的结束值;2.如果有两个值,意味着一
2015-02-03 22:21:04
1076
转载 自定义ViewGroup来理解View的scrollTo()方法
本文主要用于帮助理解View的scrollTo()方法,并穿叉了View的一些知识点。一、自定义ViewGroup自定义的ViewGroup有3个LinearLayout组成,在滑动时屏幕上一次只会显示一个LinearLayout,在构造函数中完成了布局的初始化,如下:public class MultiViewGroup extends ViewGroup { private st
2015-01-25 23:53:20
558
转载 RelativeLayout介绍
1. RelativeLayout用到的一些重要的属性:第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 android:layout_alig
2015-01-15 23:37:04
429
原创 BaseAdapter与CursorAdapter的结合使用举例
一、 CursorAdapter的介绍需要由子类实现的两个方法:public abstract View newView(Context context, Cursor cursor,ViewGroup parent);public abstract void bindView(View view, Context context, Cursorcursor);对外提供的公共方法
2015-01-14 23:34:31
624
转载 ContentObserver与DatasetObserver的区别
1. ContentObserver ContentObserver主要是通过Uri来监测特定的Databases的表,如果该Databases表有变动则会通知更新cursor中的数据。 如果使用ContentProvider操作数据库,在ContentProvider的query()方法中会通过Cursor.setNotificationUri()注册uri描述的表,在ins
2015-01-13 15:13:33
456
ACM中的跳马问题(c++)
2010-11-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人