<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[AnnaLoad的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/AnnaLoad</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; AnnaLoad]]></copyright><item><title><![CDATA[《Effective Java》第10章 并发]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/69681159</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/69681159</guid><author>AnnaLoad</author><pubDate>Sat, 08 Apr 2017 18:31:57 +0800</pubDate><description><![CDATA[本章给出一些建议帮忙程序员编写出清晰，正确，文档组织良好的并发程序。]]></description><category></category></item><item><title><![CDATA[《Effective Java》第9章 异常]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/69676742</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/69676742</guid><author>AnnaLoad</author><pubDate>Sat, 08 Apr 2017 17:13:55 +0800</pubDate><description><![CDATA[充分发挥异常的优点，可以提高程序的可读性，可靠性和可维护性，如果使用不当，它们也会带来负面影响。]]></description><category></category></item><item><title><![CDATA[《Effective Java》第8章 通用程序设计]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/69666709</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/69666709</guid><author>AnnaLoad</author><pubDate>Sat, 08 Apr 2017 14:39:50 +0800</pubDate><description><![CDATA[本章主要涉及Java语言的具体细节，讨论了局部变量的处理，控制结构，类库的用法，各种数据类型的用法，以及两种不是语言本身提供的机制（reflection和native method，虚拟机JVM提供支持的）的用法。]]></description><category></category></item><item><title><![CDATA[《Effective Java》第7章 方法]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/69665908</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/69665908</guid><author>AnnaLoad</author><pubDate>Sat, 08 Apr 2017 12:48:25 +0800</pubDate><description><![CDATA[本章主要讨论方法设计的几个面：如何处理参数和返回值，如何设计方法签名，如何为方法编写文档。]]></description><category></category></item><item><title><![CDATA[《Effective Java》第6章 枚举与注解]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/54232197</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/54232197</guid><author>AnnaLoad</author><pubDate>Sun, 08 Jan 2017 17:10:40 +0800</pubDate><description><![CDATA[Jdk 1.5发行版本新增了两个引用类型家族：一种新的类称作枚举类型（enum）；另一种新的接口称作注解类型（annotation type）]]></description><category></category></item><item><title><![CDATA[《Effective Java》第5章 泛型]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/54171212</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/54171212</guid><author>AnnaLoad</author><pubDate>Sat, 07 Jan 2017 17:05:46 +0800</pubDate><description><![CDATA[Java 1.5发行版本中增加了泛型，在没有泛型之前，从集合中读取到的每一个对象都必须进行类型转换，如果有人不小心插入了类型错误的对象，在运行时的转换处理就会出错。

而有了泛型之后呢，可以告诉编译器每个集合中都接受那些对象类型，编译器自动地为你的插入进行转化，并在编译时告知是否插入了类型错误的对象，这样尽早的暴露错误，保证后续的运行安全。]]></description><category></category></item><item><title><![CDATA[《Effective Java》第4章 类和接口]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/53964759</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/53964759</guid><author>AnnaLoad</author><pubDate>Mon, 02 Jan 2017 12:23:20 +0800</pubDate><description><![CDATA[类和接口是Java程序设计语言的核心，那么类和接口的设计上必然会有一些大师的指导性原则，能够指导我们设计出有用，健壮和灵活的类和接口。]]></description><category></category></item><item><title><![CDATA[《Effective Java》第3章 对于所有对象都通用的方法]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/53861013</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/53861013</guid><author>AnnaLoad</author><pubDate>Sat, 24 Dec 2016 20:48:18 +0800</pubDate><description><![CDATA[Object类默认为所有类的基类，其虽然为一个具体的类，但是它的设计主要是为了扩展，而它的所有非final的方法(equals, hashCode, toString, clone和finalize)都有明确的通用约定, 如果在自定义类时要重写这些方法，需要注意主动遵守这些约定，不然一些依赖于这些约定的类（如HashMap和HashSet）将无法正确工作。


通用概念
1.值类：表示值的]]></description><category></category></item><item><title><![CDATA[《Effective Java》第2章 创建和销毁对象]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/53706228</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/53706228</guid><author>AnnaLoad</author><pubDate>Sat, 17 Dec 2016 14:01:59 +0800</pubDate><description><![CDATA[学习一门语言有三个重要的部分必须要掌握：语法（该门语言的结构如何），词汇（如何用该语言命名你想要讨论的事物），用法（如何用惯用和高效的方式表达日常事物）。 那么《Effective Java》就是描述Java语言的用法很不错的一本书，阅读学习本书能够为程序员提供很多很好的编写Java代码的建议，从写代码的时候就避免掉进一些不必要的陷阱，减轻后续的debug的工作量。 也就是借鉴牛人们的经典建议，避]]></description><category></category></item><item><title><![CDATA[设计模式-可复用面向对象软件的基础  [读书笔记]]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/51172013</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/51172013</guid><author>AnnaLoad</author><pubDate>Sun, 17 Apr 2016 10:26:07 +0800</pubDate><description><![CDATA[1.将软件与设计模式比拟为城市与建筑模式，那么在面向对象的解决方案里，我们将对象和接口看成墙壁和门窗，模式的核心在于提供了相关问题的解决方案。
  在软件设计中可能会遇到很多类似的问题，在每次遇到类似问题时我们不必全都新想办法来解决，而可以复用之前解决类似问题的方案，解决问题多之后就
  会有针对特定问题有特定(相对固定)的方式方法来解决，这相对固定的方式方法就是设计模式，其也算是经验总结。]]></description><category></category></item><item><title><![CDATA[Android Building System 分析]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/50923857</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/50923857</guid><author>AnnaLoad</author><pubDate>Fri, 18 Mar 2016 15:27:18 +0800</pubDate><description><![CDATA[本文转自Thinker，原文链接地址如下：
http://heaven.branda.to/~thinker/GinGin_CGI.py/show_id_doc/393



想要了解一個系統，我常會從 makefile 或是 building system 下手， 以了解系統組成元素為何? 目錄結構為何? 對於 Android ，我也不例外。
 透過了解 building syste]]></description><category></category></item><item><title><![CDATA[JNI Study Notes]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/50718886</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/50718886</guid><author>AnnaLoad</author><pubDate>Mon, 22 Feb 2016 20:52:30 +0800</pubDate><description><![CDATA[1.JNI的初步认识


Java语言的执行环境是JVM（JAVA虚拟机），JVM其实是主机环境中的一个进程，每个JVM虚拟机进程在本地环境中都对应有一个JavaVM的结构体，用来记录当前JVM进程的相关环境数据。该结构体在创建Java虚拟机时被返回，在JNI中创建JVM的函数为JNI_CreateJavaVM。


在JNI的双向调用(JavaC/C++)过程中，JNIEnv是一个很]]></description><category></category></item><item><title><![CDATA[Android Build (1) -- Source Code Build Steps]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/50687263</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/50687263</guid><author>AnnaLoad</author><pubDate>Mon, 22 Feb 2016 20:41:13 +0800</pubDate><description><![CDATA[1.下载过Android整套源代码的亲应该很熟悉的一个操作就是product编译前的几个步骤，
   source build/envsetup.sh
   lunch $ComboName
   make -j4
2.那么第一步source的envsetup.sh有些什么作用呢？让我们来看一下envsetup.sh中的内容，
   其实其就是一些shell脚本方法的集合，方便平台deb]]></description><category></category></item><item><title><![CDATA[Android Proguard介绍]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/50378817</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/50378817</guid><author>AnnaLoad</author><pubDate>Wed, 23 Dec 2015 14:58:11 +0800</pubDate><description><![CDATA[ProGuard算是Android上的一大利器，主要进行java代码的裁剪压缩，优化，混淆以及预校验，在日常工作中有时会出现一些很奇怪的问题，明明我的代码里面有
这个类，属性或者接口，可是为啥到用的时候死活提示就没有了呢？这类奇葩问题在还没有接触ProGuard的亲面前可谓是相当无语，当你知道有ProGuard之后一切
都迎刃而解了，都是ProGuard在做优化裁剪的时候可能没有human b]]></description><category></category></item><item><title><![CDATA[Android Code Style Guidelines for Contributors]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/49336495</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/49336495</guid><author>AnnaLoad</author><pubDate>Sun, 25 Oct 2015 12:18:57 +0800</pubDate><description><![CDATA[英文原文地址:
https://source.android.com/source/code-style.html#java-language-rules



刚入门在进行软件开发的时候，可能在写code的时候有的亲是随心所欲想怎么写就怎么写，只要功能OK就行，而有的亲呢可能会想我的变量名要怎么见名知意， 我的
code要怎么写才健壮等等，当然我更看好后一种想法的小伙伴了，因为有一个]]></description><category></category></item><item><title><![CDATA[Android IPC 进程间通信实现理解]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/48006801</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/48006801</guid><author>AnnaLoad</author><pubDate>Fri, 28 Aug 2015 13:49:01 +0800</pubDate><description><![CDATA[众所周知，Android中的IPC(进程间通信)采用了Binder机制，那么要理解进程间通信是如何实现的，理解Binder机制就相当关键了。
首先，为什么Android的IPC要采用Binder机制呢，查阅资料，Binder机制的优点在于其少了一次拷贝过程，传统的IPC需要将发送端
发送的数据从用户空间copy到内核空间，在给到接受者时，再从内核空间copy给接受者，一次IPC请求需要两次拷贝]]></description><category></category></item><item><title><![CDATA[Avoiding memory leaks  ----  Context Leak 篇]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/47315631</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/47315631</guid><author>AnnaLoad</author><pubDate>Thu, 06 Aug 2015 13:50:23 +0800</pubDate><description><![CDATA[原文地址:http://android-developers.blogspot.tw/2009/01/avoiding-memory-leaks.html




Android applications are, at least on the T-Mobile G1, limited to 16 MB of heap. It's both a lot of memory for a ]]></description><category></category></item><item><title><![CDATA[关于Surface,Window,View,SurfaceView,Bitmap的理解]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/47169123</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/47169123</guid><author>AnnaLoad</author><pubDate>Mon, 03 Aug 2015 16:53:32 +0800</pubDate><description><![CDATA[当启动一个Activity的时候在startActivity的后期会给当前启动的Activity添加一个window,而如上翻译所述WindowManager在创建window的同时会为其创建一个surface用来绘制界面用，Activity启动之后对应的Window对象其实是PhoneWindow,PhoneWindow中创建了当前窗口中的根view---DecorView,之后此window对应的View tree就挂在这个DecorView上，窗口上所有的View会通过Canvas调用Hwui相关的接]]></description><category></category></item><item><title><![CDATA[chromium之国际化]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/46515741</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/46515741</guid><author>AnnaLoad</author><pubDate>Tue, 16 Jun 2015 11:10:43 +0800</pubDate><description><![CDATA[转载地址:http://blog.sina.com.cn/s/blog_54e1b5250100rr61.html

说到国际化，首先得明白这个概念，其实说白了就是支持多种语言。chromium在Windows平台怎么做的呢？简单的将就是将每一种语言打包成一个dll，在程序启动的时候根据操作系统的语言配置、本地程序配置和程序参数指定等因素决定一个语言类型，然后加载这个对应的dll。这些dll有]]></description><category></category></item><item><title><![CDATA[Apache Tomcat+OpenGrok 安装配置]]></title><link>https://blog.youkuaiyun.com/AnnaLoad/article/details/43604221</link><guid>https://blog.youkuaiyun.com/AnnaLoad/article/details/43604221</guid><author>AnnaLoad</author><pubDate>Sat, 07 Feb 2015 16:20:53 +0800</pubDate><description><![CDATA[之前有过一段web应用开发的经历，最近想要能够通过一种尽量快的方式来检索本地的Android的Source Code,所以今天研究一下怎么在本地机器部署
OpenGrok, 配置完成记录一下[ubuntu 12.04].
1.安装JDK 1.7
   sudo apt-get install openjdk-7-jdk
   vi /etc/profile 将export JAVA_HOM]]></description><category></category></item></channel></rss>