自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GNU __attribute__分析

1 概述__attribute__机制可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。主要有用于改变所申明或定义的函数或数据的特性。2 规范语法格式为:__attribute__ ((attribute-list))其位置约束为:放于声明的尾部“;”之前。attribute_适用于函数的声明

2015-11-29 22:12:41 391

原创 CPP Study

1、C++基本语法说明命名空间 namespace 定义:namespace name{ int index; 。。。。。。 } ,大括号内的内容都属于name这个命名空间,用法,name::index,或者先引用using namespace name;然后直接使用index。 c++标准命名空间为std,其所有类库都放在了该命名空间下;2、构造函数对象创建时自己调用构造

2015-11-29 17:36:29 475

原创 c++运算符重载

1、概述基本数据类型间的运算符没有重载的必要,所以运算符重载主要是面向对象之间的。1.1 能够重载的运算符+ - * / % ^ & | ~ ! = < > += -= *= /= %= ^= &= |=<< >> <<= >>= == != <= >= && || ++ -- , ->* -> () []new new[

2015-11-29 16:14:43 344

原创 C++ const

const用法分类1.1 常变量: const 类型说明符 变量名1.2 常引用: const 类型说明符 &引用名1.3 常对象: 类名 const 对象名1.4 常成员函数: 类名::fun(形参) const1.5 常数组: 类型说明符 const 数组名[大小] 1.6 常指针: const 类型说明符* 指针名 ,类型说明符* const 指针名1.7 常函数

2015-11-28 17:43:47 447

原创 Android使用gradle的管理本地Maven服务器

1 环境说明操作系统 Ubuntu 14.04(x64)maven maven3.3.9jdk jdk-1.8.0_65nexus nexus2.11.4gradle gradle2.92安装分别解压缩,然后添加进PATH环境变量。3使用使用maven$M2_HOME/conf/settings.xml: Maven全局配置${USER_HOME}/.m2/s

2015-11-25 11:05:16 3316 2

原创 Handler Looper MessageQueue的应用

1 概述前面几篇介绍了Handler、Looper、MessageQueue的源码实现原理,理解了原理,下一步我们要知道的就是怎么用好这些内容.2 获取Message对象首先,不建议使用new Message方法,而是使用Message.obtain()方法,因为obtain()方法内部有一套消息池机制,首先从消息池获取可用消息,没有的时候才新建消息,这样就避免创建多余的消息对象造成内存浪费。 获

2015-11-23 20:27:40 490

原创 Gson用法整理

1 概述Gson是Google提供的一款json解析工具,用来在Java对象和Json数据之前进行映射。其源代码位于github.解析需要注意:1、类里面的属性名必须和json字段里面的key一模一样,或者使用@SerializedName指定别名和json中的名字一模一样。2、{} 代表一个对象 3、[]代表一个List4、如果不想些get/set方法,需要吧属性设置为public5、如果

2015-11-23 16:00:37 1199 1

原创 Parcelable与Serializable区别

概述把对象转化为字节序列的过程叫序列化,反之把字节序列恢复成对象叫反序列化。Parcelable对象主要用于内存变量,是为了Android不同组件间高效传输数据而设计的,而Serializable的作用是为了保存对象的属性到本地文件,数据库,网络流,RMI以方便数据传输,因为其序列化使用了反射,且会生成大量的临时变量(会造成频繁的GC),故效率要相对慢。Serializable是Java的一个标志接

2015-11-21 10:46:46 870 1

转载 XCode快捷键

刚开始用Xcode是不是发现以前熟悉的开发环境的快捷键都不能用了?怎么快捷运行,停止,编辑等等、都不一样了。快速的掌握这些快捷键,能提供开发的效率。其实快捷键在Xcode的工具栏里都标注有,只是有的符号和你的键盘上的符号对应不起来罢了。下面截图工具栏里的快捷键总结一下常用快捷键的用法。 一、关于运行调试1、运行,停止,都在工具栏的Product里。Comma

2015-11-17 21:06:48 362

原创 Handler Looper MessageQueue之MessageQueue

2、MessageQueue2.0概述MessgaeQueue就是一个队列,用来存储消息,MessageQueue属于某一个Looper。Java层的MessageQueue包含一个mPtr变量,保存了Native层的NativeMessageQueue的地址。MessageQueue对外提供了几个方法: 1、新建队列:主要是在native层的NativeInit方法实现。 2、元素入队:enq

2015-11-17 11:58:04 417 1

原创 Handler Looper MessageQueue之Handler

1、HandlerHandler.java文件位于framework/base/core/java/android/os/Handler.java1.1 创建handler源码中提供了7种handler构造方法public Handler()public Handler(Callback callback)public Handler(Looper looper) public Handler

2015-11-17 11:55:05 416 1

原创 Handler Looper MessageQueue之Looper

3 Looper线程Looper首先是一个在线程run方法中调用了Looper.prepare()和Looper.loop()方法的线程。3.1 looper的prepare该方法位于/frameworks/base/core/java/android/os/Looper.java中。prepare方法会初始化一个looper线程,并且吧该looper存储到线程的ThreadLocal中(关于Thr

2015-11-17 11:51:42 584

原创 Executor线程池解析

1 概述Executor 框架是一个根据一组执行策略调用,调度,执行和控制的异步任务的框架。其位于java.util.concurrent包中。它提供了一种将”任务提交”与”任务运行”分离开来的机制。 线程池有两个作用:1、避免thread不断创建销毁的开销;2、通过使用线程池可以限制这些任务所消耗的资源,比如最大线程数,最大的消息缓冲池等,已达到最佳的运行效果。其包含了一系列的接口,和实现类,

2015-11-17 11:43:05 797

原创 为android源码添加新设备支持概述

1目录结构概述源码根目录下的device目录中保存的是各个厂商相应的代码,故我们可以在这里创建一个自己的目录,比如以公司名称命名,比如felix。公司目录下是自己的设备目录,可以有多个,比如weatherfish。 这样,我们在device目录下就由了felix/weatherfish目录.2 vendorsetup.sh在上面创建的目录下,新建一个vendorsetup.sh文件,用于在lunc

2015-11-14 10:51:16 1793 1

转载 移动端图片格式调研

图片通常是移动端流量耗费最多的部分,并且占据着重要的视觉空间。合理的图片格式选用和优化可以为你节省带宽、提升视觉效果。在这篇文章里我会分析一下目前主流和新兴的几种图片格式的特点、性能分析、参数调优,以及相关开源库的选择。Index几种图片格式简介移动端图片类型的支持情况静态图片的编码与解码JPEGPNGWebPBPG动态图片的编码与解码GIFAPNG

2015-11-12 19:42:38 486

原创 mac下编译android源码

按照官网的配置来设置下载源码 然后编译报错,是因为xcode版本问题,最新的xcode版本的sdk是10.11,而android编译使用的是10.10最新, 详情查看build/core/combo/mac_version.mkbuild_mac_version := $(shell sw_vers -productVersion)mac_sdk_versions_supported := 1

2015-11-10 12:31:04 822 1

转载 Sublime

Sublime Text 3 Mac 指南 | kpman | code var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-40497628-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.cr

2015-11-09 14:02:25 426 1

转载 Crontab

crontab 介紹crontab 是 Linux 內建的機制,可以根據設置的時間參數來執行例行性的工作排程。上述這張圖可以清楚的顯示出前五項參數應該要帶進去的數字。 依序是分鐘, 小時, 日期, 月份, 星期, command 參數為0-59, 0-23, 1-31, 1-21, 0-6, 需要執行的command※ 月份參數為0代表星期日參數特殊字符意義【*】:星號,代表任何時刻都接受的意思

2015-11-09 13:53:08 307

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2015-11-09 12:20:06 334

空空如也

空空如也

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

TA关注的人

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