2016年2月1日

编译android源代码(aosp)

摘要: 步骤1:按照官方的文档,下载源码,配置环境,并执行相应的命令。最好按照官方的硬件和系统配置build。 build的版本是6.0,源码目录是/home/koder/android-source-20151229 Requirements: 下载的源码很大,估计有30,40G左右。加上build,最好 阅读全文

posted @ 2016-02-01 16:16 wacao 阅读(7801) 评论(0) 推荐(1) 编辑

2016年1月12日

【Android】Fresco图片加载框架(二)————Producer

摘要: /*** 本文可以随意转载到任何网站或者App,* BUT* 转载也要按“基本法”,* 请注明原文出处和作者*/官方源码地址fresco官方高大上介绍(1)(注意:前方有堵墙)fresco官方高大上介绍(2)(注意:前方有堵墙)介绍:上一篇大概介绍了fresco这个lib的整体结构和流程,这篇主要介... 阅读全文

posted @ 2016-01-12 23:19 wacao 阅读(1810) 评论(0) 推荐(0) 编辑

2015年12月24日

【Android】Fresco图片加载框架(一)————源码简要分析

摘要: /*** 本文原创* BUT* 可以随意转载到任何网站或者App* BUT* 转载也要按“基本法”* SO* 请注明原文出处和作者*/官方源码地址fresco官方高大上介绍(1)(注意:前方有堵墙)fresco官方高大上介绍(2)(注意:前方有堵墙)前言虽然标题是fresco分析(一),但是并不代表... 阅读全文

posted @ 2015-12-24 01:45 wacao 阅读(3240) 评论(3) 推荐(2) 编辑

2013年9月10日

TSL(SSL)相关内容

摘要: 内容基本包括以下各个方面(出自维基百科):Transport Layer SecurityPublic-key cryptographySymmetric-key algorithmDigital signatureX.509在说SSL之前介绍相关一些相关的概念,这些东西大学老师都有讲过,就是基本忘光了,没学好啊。Sysmmetric-key algorithm:中文意思为对称钥算法。对称钥算法是一系列密码算法,它使用同一个密钥去加密明文和解密密文。这个密钥是在进行私密信息交流中,多方间共享的一个secret。正因如此,所以存在多方都有权获得这个密钥,这是它对比public-key crypt 阅读全文

posted @ 2013-09-10 12:08 wacao 阅读(375) 评论(0) 推荐(0) 编辑

2013年9月3日

谨慎使用AsyncTask

摘要: AsyncTask估计很多人都使用过这个东西,感觉很美好的东西,asynchronize 特性,多线程支持但不需要关心具体线程执行细节,杠杠的好玩意儿。而事实上呢,稍有不慎,就是大悲剧。AsyncTask有段注释: * AsyncTask is designed to be a helper class around {@link Thread} and {@link Handler} * and does not constitute a generic threading framework. AsyncTasks should ideally be * used for short op 阅读全文

posted @ 2013-09-03 21:24 wacao 阅读(834) 评论(0) 推荐(0) 编辑

2013年8月27日

解决:【android studio创建新工程时,卡在下载gardle】

摘要: 类题类似于:http://stackoverflow.com/questions/16580873/android-studio-stuck-at-gradle-download-on-create-new-project今天更新了以下studio(0.2.6),然后发现当我创建工程的时候一直卡在下载gradle那里,一开始以为是网速问题,一直等啊等,还是不行,搞了半天终于搞定。本人电脑是mac os,解决这个问题很简单,直接去http://services.gradle.org/distributions/gradle-1.7-bin.zip(版本可能升级了,到这里下载),然后吧下载好的zi 阅读全文

posted @ 2013-08-27 18:21 wacao 阅读(1742) 评论(2) 推荐(0) 编辑

2013年8月15日

How browsers work(浏览器是如何工作的)

摘要: How browsers workHow browsers workIntroductionThe browsers we will talk aboutThe browser's main functionalityThe browser's high level structureCommunication_between the components The rendering engine Renderin... 阅读全文

posted @ 2013-08-15 12:00 wacao 阅读(895) 评论(0) 推荐(0) 编辑

2013年8月5日

初识Github

摘要: Github搞了一下午,大概知道怎么操作github,记录一下。1.遵循官方文档https://help.github.com/articles/set-up-git#platform-linux,一步步配置好环境。用户名,密码,密码缓存等等。2.创建一个Repository。(可参见这里)点击这里,创建一个Repository。创建Public的for free,Private的for fee,穷屌丝就算了。当然也可以用命令行创建,先get一个curl,然后调用git api 去创建。参看这里http://stackoverflow.com/questions/2423777/is-it-p 阅读全文

posted @ 2013-08-05 21:58 wacao 阅读(1905) 评论(0) 推荐(0) 编辑

2013年5月22日

磁盘和文件系统

摘要: 摘自《鸟哥的linux私房菜》以旧有的 Windows 观点来看,你可能会有一颗磁盘并且将他分割成为 C:, D:, E:槽,那个 C, D, E就是分割槽(partition)。磁盘组成:磁盘的第一个扇区(sector磁区)主要记录了两个重要癿信息,分别是: 主要启动记录区(Master Boo... 阅读全文

posted @ 2013-05-22 11:47 wacao 阅读(493) 评论(0) 推荐(0) 编辑

2013年5月21日

Re-Learn C(The C Programming Language.2Nd)

摘要: Chapter 1 - A Tutorial Introductionprintf is not part of the C language; there is no input or output defined in C itself. printf is just a useful function from the standard library of functions that are normally accessible to C programs. The behaviour of printf is defined in the ANSI standard, howev 阅读全文

posted @ 2013-05-21 17:36 wacao 阅读(355) 评论(0) 推荐(0) 编辑

2013年5月20日

processor register

摘要: ​Incomputer architecture, aprocessor registeris a small amount ofstorageavailable as part of aCPUor other digital processor. Such registers are (typically) addressed by mechanisms other thanmain memoryand can be accessed more quickly. Almost all computers,load-store architectureor not, load data fro 阅读全文

posted @ 2013-05-20 16:00 wacao 阅读(327) 评论(0) 推荐(0) 编辑

2013年5月15日

深入探索透视投影变换

摘要: 深入探索透视投影变换引用自:原文(作者:Twinsen)-Twinsen编写-本人水平有限,疏忽错误在所难免,还请各位数学高手、编程高手不吝赐教-email: popyy@netease.com透视投影是3D固定流水线的重要组成部分,是将相机空间中的点从视锥体(frustum)变换到规则观察体(Canonical View Volume)中,待裁剪完毕后进行透视除法的行为。在算法中它是通过透视矩阵乘法和透视除法两步完成的。透视投影变换是令很多刚刚进入3D图形领域的开发人员感到迷惑乃至神秘的一个图形技术。其中的理解困难在于步骤繁琐,对一些基础知识过分依赖,一旦对它们中的任何地方感到陌生,立刻导致 阅读全文

posted @ 2013-05-15 13:15 wacao 阅读(486) 评论(0) 推荐(0) 编辑

2013年5月10日

CAMediaTimingFunction相关

摘要: 一:Animation Timing Curves1:Linear Animation Timing2:Ease-In Animation Timing3:Ease-Out Animation Timing4:Ease-In Ease-Out Animation Timing5:Custom Animation Timing自定义动画执行曲线设置We create a custom timing with the initWithControlPoints:::: method on CAMediaTimingFunction like this:C代码 - (CAMediaTimingFun 阅读全文

posted @ 2013-05-10 12:00 wacao 阅读(990) 评论(0) 推荐(0) 编辑

2013年5月6日

UML类图关系

摘要: 《The Unified Modeling Language User Guide;2nd 》的对于几种关系的描述In the UML, the ways that things can connect to one another, either logically or physically, are modeled as relationships. In object-oriented modeling, there are three kinds of relationships that are most important: dependencies, generalizatio 阅读全文

posted @ 2013-05-06 19:26 wacao 阅读(485) 评论(0) 推荐(0) 编辑

2013年5月3日

C声明阅读

摘要: C Right-Left Rule (Rick Ord's CSE 30 - UC San Diego)The "right-left" rule is a completely regular rule for deciphering Cdeclarations. It can also be useful in creating them.Right-left rule's defination : Start reading the declaration from the innermost parentheses, go right, and th 阅读全文

posted @ 2013-05-03 18:03 wacao 阅读(377) 评论(0) 推荐(0) 编辑

2013年4月23日

iOS并发编程

摘要: iOS和OS X使用异步设计方法(asynchronous design approach)去解决并发的问题,而不是直接使用线程。以下是两种解决并发执行的方法:GrandCentralDispatch(GCD)GCD帮组管理线程代码并把这部分代码移到系统层次。开发者需要做的只是定义需要完成的任务然后把其放到合适的dispatch queue(下面简写为DQ)中。GCD负责创建必须的线程和在这些线程上调度任务。OperationqueuesOperation Queues(下面简写为OQ)是Obj-C的对象,工作原理基本和DQ一样。所有的线程管理都由OQ管理。一些重要概念的简单解释:Dispat 阅读全文

posted @ 2013-04-23 18:45 wacao 阅读(472) 评论(0) 推荐(0) 编辑

2013年4月22日

Block和GCD介绍

摘要: Block Objectsblock object对比函数指针的好处:Block objects (informally, “blocks”) are an extension to C, as well as Objective-C and C++, that make it easy for programmers to define self-contained units of work. Blocks are similar to — but far more powerful than — traditional function pointers. The key differe 阅读全文

posted @ 2013-04-22 15:12 wacao 阅读(721) 评论(0) 推荐(0) 编辑

2013年4月9日

CALayer和UIView

摘要: At a GlanceUIView是在/System/Library/Frameworks/UIKit.framework定义,也就是处于Cocoa Touch层。CALyer是在/System/Library/Frameworks/QuartzCore.framework定义,也就是处于Media层。从iOS整个体系分层结构看,CALayer较UIView更底层。Layer相关描述:Core Animation本身不是绘画系统(drawing system),它是硬件中合成和操控app内容的基础(infrastructure)。这个基础的核心是layer对象,layer是用于管理和操控内容的 阅读全文

posted @ 2013-04-09 18:36 wacao 阅读(727) 评论(0) 推荐(2) 编辑

2013年3月5日

Memory Management in Cocoa Program

摘要: 内存管理模型基于对象的引用计数。一个对象至少有一个拥有者。如果一个对象没有拥有者,运行时系统会自动destroy它。为了保证正确清除掉拥有的调用,Cocoa设定了以下的基本准则。基本准则:创建一个对象,你就持有了它。(创建一个对象的方法往往是已“alloc”,“new”,“copy”或者“mutableCopy”为前序)可以通过retain去持有一个对象当不再需要对象时,就要清除掉持有对象的引用(通过发送release或者autorelease消息)不持有的对象不需要清除掉引用(例如[NSString stringWithFormat:""]的对象就是你没有持有的对象,不需 阅读全文

posted @ 2013-03-05 20:17 wacao 阅读(332) 评论(0) 推荐(0) 编辑

2013年3月4日

认识View Controller

摘要: 重复一万遍:基础很重要。。。。。内容基本来自官方文档,确保可信。@interface UIViewController : UIResponder <NSCoding, UIAppearanceContainer> {}@end继承(Inherits from)UIResponder。遵守(conform to)协议(protocol)NSCoding,UIAppearanceContainer和根对象NSObject。属于UIkit.framework,iOS2.0及之后的版本支持该类。作用概述(后面还会详细介绍View Controller的责任):ViewController 阅读全文

posted @ 2013-03-04 17:48 wacao 阅读(2608) 评论(0) 推荐(0) 编辑

2013年2月21日

volatile

摘要: 来源: Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有效使用 vo... 阅读全文

posted @ 2013-02-21 22:25 wacao 阅读(315) 评论(0) 推荐(0) 编辑

iOS分类和扩展(Categories和Extensions)

摘要: 分类(Category)分类能够做到的事情主要是:即使在你不知道一个类的源码情况下,向这个类添加扩展的方法。此外,分类能够保证你的实现类和其他的文件区分开。View Code 1 #import “UIViewController.h”2 @interface UIViewController(CustomView)3 -(void)extMethod;4 @end使用分类为类添加方法(Add Methods to Classes)通过在interface中声明一个额外的方法并且在implementation 中定义相同名字的方法即可。分类的名字(也就是括号括起来的CustomView)表示的 阅读全文

posted @ 2013-02-21 15:57 wacao 阅读(7543) 评论(3) 推荐(2) 编辑

Property Declaration Attributes

摘要: 题目不知道应该怎么翻译?硬是要翻译,只能是属性声明的特性。对于这部分内容,《The Object C 2.0 Programming Language》的介绍是:You can decorate a property with attributes by using the form @property(attribute[,attribute2,...]). Like methods,properties are scoped to their enclosing interface declaration.For propertydeclarations that use a comma 阅读全文

posted @ 2013-02-21 15:53 wacao 阅读(243) 评论(0) 推荐(0) 编辑

2013年2月18日

iOS Apps核心对象

摘要: UIApplication:处理来自系统的事件并将这些事件分发到开发者的自定义代码去处理。作为一个controller对象 ,它处理app的事件循环和协调其他上层的app行为。开发者自定义的app层逻辑位于app的delegate对象,与UIApplication联合一起工作。App Delegate Object:app delegate对象是一个自定义对象,在app启动的时候创建,通常在UIApplicationMain方法中创建。它最基本的工作就是负责app中的事件传递。Documents和data model Objects:Data model object存储app的内容,它根据. 阅读全文

posted @ 2013-02-18 11:55 wacao 阅读(275) 评论(0) 推荐(0) 编辑

2013年2月6日

iOS 系统框架分层结构

摘要: 简要介绍iOS各层的作用和包含的东西。Cocoa Touch Layer包含创建一个ios应用的关键框架(framework)。定义支撑起一个app的基础内容和核心技术,例如多线程、基于touch的输入、手势、标准的系统view contoller、push通知和一些高层次的系统服务。(因为名字的原因,初级开发者很容易被误导认为Cocoa Touch只是涉及到UI上的一些touch操作之类的东西)涉及的高级特性有:涉及的框架有:Media Layer包含提供多媒体体验的绘图和音视频技术。(Graphics technologies、Audio technologies and Video te 阅读全文

posted @ 2013-02-06 18:20 wacao 阅读(1707) 评论(0) 推荐(1) 编辑

2013年2月5日

android 动态注册JNI函数过程源码分析

摘要: 以MediaRecorder为例介绍android中,java层的native函数是如何能找到对应的jni层的函数的。MediaRecorder.java中,生命了这样的一个方法private static native final void native_init();那是怎么知道是这个方法的呢?MediaRecorder.java位于android.media包中,所以native_init的全路径是android.media.MediaRecorder.native_init。显而易见,将“.”替换成“_”就是jni函数的名字了。这里说的就是JNI函数的注册问题,就是将java层的nat 阅读全文

posted @ 2013-02-05 12:12 wacao 阅读(3759) 评论(0) 推荐(0) 编辑

2013年1月21日

android和ios系统框架

摘要: 1.Android系统框架Linux内核层:包含了Linux内核和一些驱动模块。Libraris层:提供android运行时库、Dalvik虚拟机、多媒体框架等。Framework层:android java世界的基础。Application层:应用程序。2.IOS系统框架可以参见《iOS 系统框架分层结构》 阅读全文

posted @ 2013-01-21 14:23 wacao 阅读(579) 评论(0) 推荐(0) 编辑

2013年1月15日

Java类加载

摘要: 类加载过程总共下面几个步骤:Java的动态扩展特性就是因为类的加载和连接是在程序运行过程中的。加载(Loading):加载在没有明确JVM规范,各个虚拟机自由处理。加载要做的事情:1.通过一个类的全限定名来获取定义此类的二进制字节流。2.将这个字节流所代表的静态存储结构转化为方法区域的运行时数据结构。3.在Java堆中生成一个代表这个类的java.lang.Class对象,作为方法区域数据的访问入口。加载过程是相对其他类加载过程中是唯一开发阶段可控的,可以自定义类加载器来加载类。验证(Varification):确保Class文件符合当前的虚拟机规范和保证安全性准备(Preparation): 阅读全文

posted @ 2013-01-15 23:14 wacao 阅读(275) 评论(0) 推荐(0) 编辑

JVM(Java虚拟机)

摘要: 数据类型:同Java语言一样,JVM支持两种类型:原始数据类型(Primitive types)和引用类型(Reference types)。注意是,JVM本身支持的数据类型,而不是某种语言。原始数据类型:原始数据类型包括:数字类型(numeric types)、布尔类型(boolean types)和返回地址类型(returnAddress type)。数字类型包括:整数类型(integral type)和浮点类型(floating-point type)。整数类型有:byte,short,int,long,char浮点类型有:float和double布尔类型:true和false返回地址类 阅读全文

posted @ 2013-01-15 23:13 wacao 阅读(291) 评论(0) 推荐(0) 编辑

2013年1月6日

Handler,Looper,MessageQueue(Message)

摘要: 1.Looper先介绍Looper吧,顾名思义就是环、回路,意味着循环。Looper是对消息循环的封装,可理解为一个消息队列,可以添加和循环获取其中内容。它与一个具体线程相关,从SDK中Looper的注释有一个最简单的例子,表明它和线程的关系: 1 class LooperThread extends Thread { 2 public Handler mHandler; 3 4 public void run() { 5 Looper.prepare(); 6 7 mHand... 阅读全文

posted @ 2013-01-06 16:52 wacao 阅读(600) 评论(0) 推荐(0) 编辑

导航