$ sudo apt-get install subversion
$sudo adduser svnuser
$sudo addgroup subversion
$sudo addgroup svnuser subversion
使用@ViewDebug.ExportedProperty注解,我们可以在android提供的工具Monitor(或已经废弃的DDMS)中的Hierarchy Viewer中调试View的属性。我们可以直接观察View的某个变量或方法的值,实时观察View的状态变化。
在Ubuntu系统(14.04)中里,使用代理有一种通用方式:系统设置 –> 网络 –> 网络代理 –> 应用到整个系统,这里设置的代理是全局代理,整个系统都会走这个代理设置。但一般我们不会这样使用,我们需要对我们指定的工具或软件设置代理。
apt-get工具可以使用-o参数来使用配置字符串,或使用-c参数使用指定配置文件。
APT工具集使用的默认配置文件是/etc/apt/apt.conf,打开后发现文件默认是空文件。但是当我们设置了全局代理后,文件的内容变为:
Acquire::http::proxy "http://127.0.0.1:8087/";
Acquire::https::proxy "https://127.0.0.1:8087/";
因此我们知道了apt-get设置代理的方法:
Show Moregit使用http/https代理的方法如下:
打开命令行,设置如下环境变量:
$ export http_proxy=http://127.0.0.1:8087
$ export https_proxy=http://127.0.0.1:8087
GoAgent 是使用跨平台语言 Python 开发的代理软件,利用 Google App Engine 的服务器充当代理,帮助我们浏览一些被封锁或被过滤的内容。由于GFW等的封锁,很多的技术资料网站或某些资源网站都无法访问或访问困难。免费的GoAgent在这方面给予了很大的帮助。
Show More在Android中,我们使用LayoutInflater来解析布局xml文件并生成对应的View对象的继承树。LayoutInflater提供了两个常用的方法:
1. inflate(int resource, ViewGroup root);
2. inflate(int resource, ViewGroup root, boolean attachToRoot);
我们经常使用第一个函数来解析布局文件:
inflater.inflate(R.layout.my_layout, null);
但是,你可能没有意识到,这样使用常常是不恰当的,甚至是错误的,使用这种方法往往实现不了我们预期的显示效果。
Show More我们都知道,Android UI是线程不安全的,如果在子线程中尝试进行UI操作,程序就有可能会崩溃。相信大家在日常的工作当中都会经常遇到这个问题,解决的方案应该也是早已烂熟于心,即创建一个Message对象,然后借助Handler发送出去,之后在Handler的handleMessage()方法中获得刚才发送的Message对象,然后在这里进行UI操作就不会再出现崩溃了。
Show Moregithub是使用最为广泛的git远程仓库管理平台,很多优秀的开源代码使用github进行托管。但是由于网络或地域的问题,不是每个人都能享受到它的便捷性。当你的代码托管到github,急需使用时却突然无法访问github,这将是致命的灾难。因此将代码托管到多个平台以做备份就很有必要了。中国目前也有许多git托管平台,包括开源中国社区代码托管、CSDN代码托管平台等,可以为国内开发者提供代码托管服务。
打开github项目下的.git/config文件,在[remote “origin”]节点下增加新的url,这个url必需是先到对应的托管平台创建repository之后才有用。也可以创建新的remote节点,譬如[remote “all”],在新的节点下添加url。
Show More自定义 View 的实现方式大概可以分为三种,自绘控件、组合控件、以及继承控件。
自绘控件的意思就是,这个 View 上所展现的内容全部都是我们自己绘制出来的。绘制的代码是写在 onDraw() 方法中的,控件可以自己定义 View 的绘制方式。
下面我们准备来自定义一个计数器 View,这个 View 可以响应用户的点击事件,并自动记录一共点击了多少次。新建一个 CounterView 继承自 View,代码如下所示:
Show More基于 android 2.3.3_r1 代码研究
相信大家在平时使用 View 的时候都会发现它是有状态的,比如说有一个按钮,普通状态下是一种效果,但是当手指按下的时候就会变成另外一种效果,这样才会给人产生一种点击了按钮的感觉。当然了,这种效果相信几乎所有的 Android 程序员都知道该如何实现,但是我们既然是深入了解 View,那么自然也应该知道它背后的实现原理应该是什么样的,今天就让我们来一起探究一下吧。
Show More