java的动态代理机制详解

在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,...

2019-04-18 14:13:59

阅读数 23

评论数 0

Android内核开发:图解Android系统的启动过程

学习任何软硬件系统,研究系统启动过程都是一种非常有效地起步手段,搞Android内核开发也不例外。网上有很多文章对Android启动相关代码进行分析和走读,大家可以先搜索阅读一下,我个人更喜欢更加直观的方式去理解未知的东西,包括图、表、系统输出的log信息等等,因此,本文准备通过一些流程图和log...

2019-04-13 15:33:00

阅读数 12

评论数 0

Android内核开发:系统启动速度优化

Android系统的启动优化主要分为三大部分: (1) Bootloader优化 (2) Linux Kernel的剪裁与优化 (3) Android OS部分的剪裁与优化 本文重点关注Android OS部分的启动优化,值得关注的优化点分别介绍如下: 1. 精简preloa...

2019-04-13 15:08:30

阅读数 22

评论数 0

写给 Android 应用工程师的 Binder 原理剖析

一. 前言 这篇文章我酝酿了很久,参考了很多资料,读了很多源码,却依旧不敢下笔。生怕自己理解上还有偏差,对大家造成误解,贻笑大方。又怕自己理解不够透彻,无法用清晰直白的文字准确的表达出 Binder 的设计精髓。直到今天提笔写作时还依旧战战兢兢。 Binder 之复杂远远不是一篇文章就能说清楚...

2019-04-12 00:48:13

阅读数 18

评论数 0

java多线程什么时候释放锁—wait()、notify()

由于等待一个锁定线程只有在获得这把锁之后,才能恢复运行,所以让持有锁的线程在不需要锁的时候及时释放锁是很重要的。在以下情况下,持有锁的线程会释放锁: 1. 执行完同步代码块。 2. 在执行同步代码块的过程中,遇到异常而导致线程终止。 3. 在执行同步代码块的过程中,执行了锁所属对象的wait...

2019-04-10 12:23:12

阅读数 35

评论数 0

stm32 JTAG和SWD的使用区别

http://blog.csdn.net/LEON1741/article/details/72846434   搞嵌入式开发和ARM开发搞了半辈子了,调试程序是不可避免的。接触了那么多的调试规范、调试工具、调试手段,彼此之间的关系却也不是特别清楚,今天就来捋一捋: JTAG协议 JTAG...

2019-02-27 14:53:18

阅读数 101

评论数 0

Mac安装android studio后卡在building gradle project info的解决方法

1.找到.gradle目录,一般在/User//下;  macOS Sierra 10.12.3可以直接快捷键 shift+command+. 显示隐藏的文件即可看到.gradle文件夹。 2.进入.gradle/wrapper/dists/gradle-3.3-all/55gk2rc...

2018-01-10 17:02:42

阅读数 188

评论数 0

Android签名详解

本文主要讲解Android应用程序签名相关的理论知识,包括:什么是签名、为什么要给应用程序签名、如何给应用程序签名等。1、什么是签名?       如果这个问题不是放在Android开发中来问,如果是放在一个普通的版块,我想大家都知道签名的含义。可往往就是将一些生活中常用的术语放在计算机这种专业...

2017-12-21 17:00:58

阅读数 105

评论数 0

Jsoncpp 使用方法大全

Json(JavaScript Object Notation )是一种轻量级的数据交换格式。简而言之,Json组织形式就和python中的字典, C/C++中的map一样,是通过key-value对来组织的,key是任意一个唯一字符串,value可以是bool,int,string 或者嵌套的一...

2017-11-15 09:41:42

阅读数 1324

评论数 0

sudo: no tty present and no askpass program specified 解决方法

sudo: no tty present and no askpass program specified 由于帐号并没有开启免密码导致的  假设当前帐号为abc 切换到root下   1    打开sudoers vi /etc/...

2017-10-09 12:03:14

阅读数 5383

评论数 0

linux下搜狗输入法不能输入中文的解决方案

1 问题 Ubuntu下一直在使用搜狗拼音, 之前能正常使用, 但是最近几天输入法开始抽风, 无法输出中文. 具体现象是, 可以呼出搜狗输入法界面, 但是候选词列表无显示 如下图所示 2 解决方案 2.1 删除配置文件,重启搜狗 ubuntu...

2017-08-22 14:31:11

阅读数 576

评论数 0

苹果开发者账号和证书那些事

1、 苹果开发者账号有四种类型,分别是: 个人开发者账号:99$一年,可以在AppStore上架,并且在app后面显示个人ID;每年最多只能添加一百个苹果设备对app进行真机调试;只要付费就可以申请;一般是个人使用或者小公司偶尔使用(AppStore显示的是个人名字,不是公司名)。 ...

2017-07-03 10:44:24

阅读数 1525

评论数 0

Genymotion virtualbox 提示错误 (VERR_PDM_DRIVER_NOT_FOUND).

查看详细错误:  The configured driver wasn’t found. either the necessary driver modules wasn’t loaded, the name was misspelled, or it was a misconfiguratio...

2017-05-17 14:32:51

阅读数 735

评论数 0

ROS环境变量的设置

#for fuerte对于fuerte版本 source /opt/ros/fuerte/setup.bash export ROS_WORKSPACE=你自己的工作文件路径 如:export ROS_WORKSPACE=~/dev/rosbook export ROS_PACKAGE_P...

2017-04-18 13:35:11

阅读数 3244

评论数 0

log4cplus编译出静态库liblog4cplus.a

在编译log4cplus的,configure默认不生成静态库文件,如果需要修改log4cplus中的代码,而目前项目已经大面积使用了log4cplus,并且是动态加载log4cplus.so文件的,覆盖log4cplus.so*文件就会导致现在已经启动的进程异常中止,所以如果有需要修改源码的项目...

2017-04-05 16:26:33

阅读数 1048

评论数 0

使用vdfuse挂载 mount vdi 文件

我的机器安装了Ubuntu virtualbox虚拟机,前几天升级虚拟机中软件时候,Ubuntu系统突然崩溃了,直接导致开不了机,里面有我一个星期的代码,也没做下拷贝,怪自己大意了,没想到系统会崩溃掉,当时我也跟系统一样崩溃了。 为了拷贝出里面的代码,网上查找了好多资料,发现是有解决方案的。找...

2017-03-13 16:20:26

阅读数 2298

评论数 0

什么是真正的实时操作系统

做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks,实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN上好多同学们都对实时、嵌入式这些概念似懂非懂,毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是...

2017-03-07 15:27:40

阅读数 622

评论数 0

Ubuntu中rc.local 中命令不执行

这两天需要在Ubuntu中配置开机启动的命令,有很多方式,在rc.local中配置是比较简单方便的一种,所以打算使用rc.local的方式进行配置。 我配置完后,确发现配置的sh脚本始终不执行,开始怀疑是rc.local没执行,用echo打印了些信息,发现都执行了。 这就造成了我的困惑,网上查了好...

2017-02-28 15:20:47

阅读数 15374

评论数 0

阻塞机制下的recv小结

ecv是socket编程中最常用的函数之一,在阻塞状态的recv有时候会返回不同的值,而对于错误值也有相应的错误码,分别对应不同的状态,下面是我针对常见的几种网络状态的简单总结。       首先阻塞接收的recv有时候会返回0,这仅在socket被正常关闭时才会发生。       而当拔掉设...

2017-02-25 00:08:25

阅读数 1438

评论数 0

recv()与send()设置超时

struct timeval timeout = {3,0}; //3秒钟  //设置发送超时 setsockopt(socket,SOL_SOCKET,SO_SNDTIMEO,(char *)&timeout,sizeof(struct timeval)); //设置接收超时 s...

2017-02-24 17:07:18

阅读数 1055

评论数 0

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