- 博客(288)
- 资源 (3)
- 收藏
- 关注
转载 java的动态代理机制详解
在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。在java的动态代理机制中,有两个重要的类或接口...
2019-04-18 14:13:59 316
转载 Android内核开发:图解Android系统的启动过程
学习任何软硬件系统,研究系统启动过程都是一种非常有效地起步手段,搞Android内核开发也不例外。网上有很多文章对Android启动相关代码进行分析和走读,大家可以先搜索阅读一下,我个人更喜欢更加直观的方式去理解未知的东西,包括图、表、系统输出的log信息等等,因此,本文准备通过一些流程图和log信息,来探索一下Android的启动过程。首先,给出一张图,图片来自这里,我觉得它画得很好,...
2019-04-13 15:33:00 489
转载 Android内核开发:系统启动速度优化
Android系统的启动优化主要分为三大部分:(1) Bootloader优化(2) Linux Kernel的剪裁与优化(3) Android OS部分的剪裁与优化本文重点关注Android OS部分的启动优化,值得关注的优化点分别介绍如下:1. 精简preload的classes和resource前面介绍过,由于所有的Android应用程序...
2019-04-13 15:08:30 1290
转载 写给 Android 应用工程师的 Binder 原理剖析
一. 前言这篇文章我酝酿了很久,参考了很多资料,读了很多源码,却依旧不敢下笔。生怕自己理解上还有偏差,对大家造成误解,贻笑大方。又怕自己理解不够透彻,无法用清晰直白的文字准确的表达出 Binder 的设计精髓。直到今天提笔写作时还依旧战战兢兢。Binder 之复杂远远不是一篇文章就能说清楚的,本文想站在一个更高的维度来俯瞰 Binder 的设计,最终帮助大家形成一个完整的概念。对于应用层开...
2019-04-12 00:48:13 216
转载 java多线程什么时候释放锁—wait()、notify()
由于等待一个锁定线程只有在获得这把锁之后,才能恢复运行,所以让持有锁的线程在不需要锁的时候及时释放锁是很重要的。在以下情况下,持有锁的线程会释放锁: 1. 执行完同步代码块。 2. 在执行同步代码块的过程中,遇到异常而导致线程终止。 3. 在执行同步代码块的过程中,执行了锁所属对象的wait()方法,这个线程会释放锁,进行对象的等待池。 除了以上情况外,只要持有锁...
2019-04-10 12:23:12 1732
转载 stm32 JTAG和SWD的使用区别
http://blog.csdn.net/LEON1741/article/details/72846434 搞嵌入式开发和ARM开发搞了半辈子了,调试程序是不可避免的。接触了那么多的调试规范、调试工具、调试手段,彼此之间的关系却也不是特别清楚,今天就来捋一捋:JTAG协议JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE ...
2019-02-27 14:53:18 745
转载 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/55gk2rcmfc6p2dg9u9ohc3hw9文件夹下,删除.part文件3.去gradle网站:htt
2018-01-10 17:02:42 356
转载 Android签名详解
本文主要讲解Android应用程序签名相关的理论知识,包括:什么是签名、为什么要给应用程序签名、如何给应用程序签名等。1、什么是签名? 如果这个问题不是放在Android开发中来问,如果是放在一个普通的版块,我想大家都知道签名的含义。可往往就是将一些生活中常用的术语放在计算机这种专业领域,大家就开始迷惑了。计算机所做的事情,或者说编程语言所做的事情,不正是在尽可能地模拟现实吗?所以,
2017-12-21 17:00:58 346
转载 Jsoncpp 使用方法大全
Json(JavaScript Object Notation )是一种轻量级的数据交换格式。简而言之,Json组织形式就和python中的字典, C/C++中的map一样,是通过key-value对来组织的,key是任意一个唯一字符串,value可以是bool,int,string 或者嵌套的一个json。关于Json 格式可以参考官方网站。 Jsoncpp 是一个用来处理 Json文本的开
2017-11-15 09:41:42 2130
转载 sudo: no tty present and no askpass program specified 解决方法
sudo: no tty present and no askpass program specified由于帐号并没有开启免密码导致的 假设当前帐号为abc切换到root下 1 打开sudoersvi /etc/sudoers2 添加免密码abc ALL = NOPASSWD: ALL
2017-10-09 12:03:14 7531
转载 linux下搜狗输入法不能输入中文的解决方案
1 问题Ubuntu下一直在使用搜狗拼音, 之前能正常使用, 但是最近几天输入法开始抽风, 无法输出中文.具体现象是, 可以呼出搜狗输入法界面, 但是候选词列表无显示如下图所示2 解决方案2.1 删除配置文件,重启搜狗ubuntu 下搜狗的配置文件在 ~/.config 下执行如下指令cd ~/.configfind
2017-08-22 14:31:11 4274
转载 苹果开发者账号和证书那些事
1、 苹果开发者账号有四种类型,分别是:个人开发者账号:99$一年,可以在AppStore上架,并且在app后面显示个人ID;每年最多只能添加一百个苹果设备对app进行真机调试;只要付费就可以申请;一般是个人使用或者小公司偶尔使用(AppStore显示的是个人名字,不是公司名)。企业开发者账号:299$一年,不可以在AppStore上架(所以也就不需要苹果的审核就能直接批量安装
2017-07-03 10:44:24 2513
转载 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 misconfiguration. (VERR_PDM_DRIVER_NOT_FOUND). 这个是virtulbox里网络设置
2017-05-17 14:32:51 1546
转载 ROS环境变量的设置
#for fuerte对于fuerte版本source /opt/ros/fuerte/setup.bashexport ROS_WORKSPACE=你自己的工作文件路径如:export ROS_WORKSPACE=~/dev/rosbookexport ROS_PACKAGE_PATH=$ROS_WORKSPACE:/opt/ros/fuerte/share:/opt/ros/f
2017-04-18 13:35:11 4783
转载 log4cplus编译出静态库liblog4cplus.a
在编译log4cplus的,configure默认不生成静态库文件,如果需要修改log4cplus中的代码,而目前项目已经大面积使用了log4cplus,并且是动态加载log4cplus.so文件的,覆盖log4cplus.so*文件就会导致现在已经启动的进程异常中止,所以如果有需要修改源码的项目,建议静态加载。生成静态库的方法为:./configure --enable-static编译
2017-04-05 16:26:33 3247
原创 使用vdfuse挂载 mount vdi 文件
我的机器安装了Ubuntu virtualbox虚拟机,前几天升级虚拟机中软件时候,Ubuntu系统突然崩溃了,直接导致开不了机,里面有我一个星期的代码,也没做下拷贝,怪自己大意了,没想到系统会崩溃掉,当时我也跟系统一样崩溃了。为了拷贝出里面的代码,网上查找了好多资料,发现是有解决方案的。找回文件的过程,主要参考了这篇文章:http://www.blogbus.com/lnote-lo
2017-03-13 16:20:26 4396
转载 什么是真正的实时操作系统
做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks,实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN上好多同学们都对实时、嵌入式这些概念似懂非懂,毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platform team封装好的API。所以在此总结一下这些概念,加深自己的理解,同时也
2017-03-07 15:27:40 796
原创 Ubuntu中rc.local 中命令不执行
这两天需要在Ubuntu中配置开机启动的命令,有很多方式,在rc.local中配置是比较简单方便的一种,所以打算使用rc.local的方式进行配置。我配置完后,确发现配置的sh脚本始终不执行,开始怀疑是rc.local没执行,用echo打印了些信息,发现都执行了。这就造成了我的困惑,网上查了好多解决方案,试了好多种方法,最终发现是有shell的问题造成的。有些命令需要在bash shell
2017-02-28 15:20:47 25135
转载 阻塞机制下的recv小结
ecv是socket编程中最常用的函数之一,在阻塞状态的recv有时候会返回不同的值,而对于错误值也有相应的错误码,分别对应不同的状态,下面是我针对常见的几种网络状态的简单总结。 首先阻塞接收的recv有时候会返回0,这仅在socket被正常关闭时才会发生。 而当拔掉设备网线的时候,recv并不会发生变化,仍然阻塞,如果在这个拔网线阶段,socket被关掉了,后果可能就
2017-02-25 00:08:25 3263
原创 recv()与send()设置超时
struct timeval timeout = {3,0}; //3秒钟 //设置发送超时setsockopt(socket,SOL_SOCKET,SO_SNDTIMEO,(char *)&timeout,sizeof(struct timeval));//设置接收超时setsockopt(socket,SOL_SOCKET,SO_RCVTIMEO,(char *)&timeou
2017-02-24 17:07:18 2403
转载 adb通过wifi或usb方式完成调试
1.简介在默认情况下adb是通过USB连接的,但是adb也支持通过wifi连接,前提是使用adb命令的电脑终端与待调试的手机在同一网段下。这样,在没有usb或者远程下都可以完成调试手机。但是手机的调试模式改为wifi后,手机连接usb就会无效,包括充电。可以将手机在wifi下切回USB即可。2.连接USB线转为WIFI(前提adb通过usb连接)cmd:
2017-02-09 16:28:50 6200 1
转载 Ubuntu 出现apt-get: Package has no installation candidate问题
安装软件的时候出现了Package has no installation candidate的问题,如:# apt-get install Reading package lists... DoneBuilding dependency tree... DonePackage aptitude is not available, but is referred to by
2017-01-13 15:42:50 584
转载 iOS开发时如何使用 Launch Screen Storyboard
原文:http://useyourloaf.com/blog/using-a-launch-screen-storyboard/静态启动图片启动图片是iOS加载App的时候系统响应的直观呈现。近几年,随着屏幕尺寸的增多,制作相应的静态图片就变成一件十分让人头疼的事。在下面,我列举了一些 启动图片的尺寸(尺寸包括状态条区域)。为了简洁,我省略了横屏的版本:iPad 2 and iPa
2016-12-22 14:01:37 5027
原创 android获取图片原始长宽,获取视频第一帧的缩略图
BitmapFactory.Options opts = new BitmapFactory.Options();opts.inSampleSize = 1;opts.inJustDecodeBounds = false;Bitmap bm = BitmapFactory.decodeFile(imageFile.getAbsolutePath(),opts);int width=opts
2016-12-22 09:41:27 4650
转载 动画黄金搭档:CADisplayLink & CAShapeLayer
我们在开发中有时会遇到一些看似非常复杂的动画,不知该如何下手,今天的这篇文章中我会讲到如何利用CADisplayLink和CAShapeLayer来构建一些复杂的动画,希望能在你下次构建动画中,给你一些启发。在接下来的文章中,我们会构建如下的一个动画:该动画是在du的轮廓中进行,类似一个镂空效果,轮廓的填充是用双波浪的形式,类似于水流慢慢注入容器的过程。动画使用CADi
2016-12-21 16:08:57 470
转载 pushViewController自定义动画
实现的主要代码如下:[objc] view plain copy print?CATransition *transition = [CATransition animation]; transition.duration = 1.0f; transition.timingFunction = [CAMediaTimingFunc
2016-12-18 13:16:58 1097
转载 【Java线程】锁机制:synchronized、Lock、Condition
http://www.infoq.com/cn/articles/java-memory-model-5 深入理解Java内存模型(五)——锁 http://www.ibm.com/developerworks/cn/java/j-jtp10264/ Java 理论与实践: JDK 5.0 中更灵活、更具可伸缩性的锁定机制http://blog.csdn.net/ghsau/artic
2016-12-16 14:43:40 368
原创 实现TextView的垂直滚动,更新文字时自动滚动到最后一行
要点::android:scrollbars="vertical" //设置scrollbars属性为verticalandroid:scrollbarStyle="insideOverlay" //scroll样式android:scrollbarFadeDuration="2000" //scrollbar从出现到消失的时间例子:1)xml中设置:T
2016-12-04 14:26:34 7877 2
转载 Android UI开发: 横向ListView(HorizontalListView)及一个简单相册的完整实现 (附源码下载)
本文内容:1、横向ListView的所有实现思路;2、其中一个最通用的思路HorizontalListView,并基于横向ListView开发一个简单的相册;3、实现的横向ListView在点击、浏览时item背景会变色,并解决了listview里setSelected造成item的选择状态混乱的问题。众所周知,ListView默认的方向是垂直的,但有些时候人们更喜
2016-12-04 13:47:39 455
转载 Android广播机制总结
1.Android广播机制概述Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器)。广播作为Android组件间的通信方式,可以使用的场景如下:1.同一app内部的同一组件内的消息通信(单个或多个线程之间);2.同一app内部的不同组件之间的消息通信(单个进程);3.同一app具有多个进程
2016-11-08 14:42:06 287
转载 Android系统关机或重启的几种实现方式
默认的SDK并没有提供应用开发者直接的Android系统关机或重启的API接口,一般来讲,实现Android系统的关机或重启,需要较高的权限(系统权限甚至Root权限)。所以,在一般的APP中,如果想要实现关机或重启功能,要么是在App中声明系统权限,要么是通过某种“间接”的方式,比如广播或反射,来间接实现系统关机或重启。再者,就是放在源码环境中进行编译,这样做有一个好处,就是可以直接调用Andr
2016-11-04 10:40:43 2125
转载 Android利用root权限开关机、休眠和唤醒
在Android的设备中如果我们想重启手机或者关机或,一般是需要在源码的环境下编译apk,并赋予其相应地系统权限,而如果想唤醒设备则需要wakelack。源码编译APP还是比较麻烦的,不过由于android的内核属于Linux,那么在获取root权限的android设备商自然可以使用linux的开关机,唤醒休眠命令。 (1)重启设备[java] view
2016-11-04 10:30:44 3205 3
转载 用户手势检测-GestureDetector使用详解
一、概述当用户触摸屏幕的时候,会产生许多手势,例如down,up,scroll,filing等等。一般情况下,我们知道View类有个View.OnTouchListener内部接口,通过重写他的onTouch(View v, MotionEvent event)方法,我们可以处理一些touch事件,但是这个方法太过简单,如果需要处理一些复杂的手势,用这个接口就会很麻烦(因为我们要自己根
2016-11-04 10:25:43 317
原创 java.util.Properties类,保存时保留注释及格式不变
Properties调用store方法保存时,会把文件中原来的注释给冲掉,而且顺序会发生错乱,网上查找解决方案时,有人遇到了相同的问题,并给出了解决方案。如下:改进Properties,实现了SafeProperties.javaimport java.io.BufferedReader;import java.io.BufferedWriter;import
2016-11-02 11:18:13 9425
原创 设置屏幕亮度 和 音乐音量
代码如下:layout.xmlSeekBar android:id="@+id/volumeSeekBar" android:layout_width="353dp" android:layout_gravity="center_vertical" android:layout_height="wrap_content" android:
2016-11-01 11:52:25 696
转载 iOS 延迟执行方法
延迟执行的几种方法. 1.performSelector(NSObject)方法 2.NSTimer方法 3.GCD方法 4.sleep(NSThread)方法延迟执行代码:- (void)delayDo : (id)sender { NSLog(@"do:%@",sender);}1.performSelector(NSObject)方法 这
2016-10-30 00:30:31 466
原创 Android呼吸灯效果两种实现
最近项目要做个呼吸灯实现,有两种方式,实现呼吸灯效果本质上都是使用ImageView动画,实现alpha值变化。第一种方式,直接使用动画实现,代码如下: private final int BREATH_INTERVAL_TIME = 1000; //设置呼吸灯时间间隔 private AlphaAnimation animationFadeIn; private
2016-10-29 12:21:44 10348 1
转载 daimajia的图片轮播开源项目配置
daimajia一个关于图片轮播开源项目AndroidImageSlider,先看下效果图。 幻灯片切换动画效果,可直接从网络或本地文件中获取图片。点击图片开始/暂停,滑动等待几秒后重新开始轮播。Step1: Gradlecompile "com.android.support:support-v4:+"compile 'com.squareup.picasso:pi
2016-10-29 12:13:29 643
转载 Android实现自定义带文字和图片的Button
在Android开发中经常会需要用到带文字和图片的button,下面来讲解一下常用的实现办法。一.用系统自带的Button实现 最简单的一种办法就是利用系统自带的Button来实现,这种方式代码量最小。在Button的属性中有一个是drawableLeft,这个属性可以把图片设置在文字的左边,但是这种方式必须让icon的背景色是透明的,如果icon的背景色不是透明的话,会导致点击
2016-10-26 16:25:28 4171
转载 TextView设置个别字体样式
1 SpannableString msp = new SpannableString("测试"+XM+"更换当前号码将从手机发送一条普通短信进行验证");2 msp.setSpan(new ForegroundColorSpan(Color.BLUE), 2, XM.length()+2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 印象
2016-10-25 15:21:28 980
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人