源码

Handler源码分析

蹲街弑〆低调 提交于 2019-12-19 19:39:11
Handler源码分析 Activity启动时的Looper 当程序运行时,会先执行 ActivityThread 的 main 方法。会执行 Looper.prepareMainLooper() 方法和 Looper.loop() 方法。 Looper.prepareMainLooper() public static void prepareMainLooper ( ) { prepare ( false ) ; synchronized ( Looper . class ) { if ( sMainLooper != null ) { throw new IllegalStateException ( "The main Looper has already been prepared." ) ; } sMainLooper = myLooper ( ) ; } } 其中又会进入 prepare 方法中,会发现调用了 sThreadLocal.set(new Looper(quitAllowed)); 其中通过 new Looper() 方法 private Looper ( boolean quitAllowed ) { mQueue = new MessageQueue ( quitAllowed ) ; mThread = Thread . currentThread

源码编译安装 MySQL 5.5.x 实践

我怕爱的太早我们不能终老 提交于 2019-12-19 18:26:13
1.安装cmake MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具。 因此,我们首先要在系统中源码编译安装cmake工具。 # wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz # tar zxvf cmake-2.8.4.tar.gz # cd cmake-2.8.4 # ./configure # make # make install 2.确保以下所需系统软件包已经被安装 通过 rpm -qa | grep name 的方式验证以下软件包是否已全部安装。 gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* 如果缺少相关的软件包,可通过yum -y install 的方式在线安装,或直接从系统安装光盘中找到并通过rpm -ivh 的方式安装。 3. 安装前的系统设置 建立mysql安装目录及数据存放目录 # mkdir /opt/mysql # mkdir /opt/mysql/data 创建用户和用户组 # groupadd mysql # useradd -g mysql mysql 赋予数据存放目录权限 # chown mysql

Android从源码层100%屏幕适配

拈花ヽ惹草 提交于 2019-12-19 13:43:22
1.首先写一个获取比例的工具类 public class AutoUtils { private Context context ; private static AutoUtils instance ; //标准值 public static final float STANDARD_WIDTH = 1080f ; public static final float STANDARD_HEIGHT = 1920f ; //实际设备信息 public static float displayMetriceWidth ; public static float displayMetriceHight ; public static AutoUtils getInstance ( Context context ) { if ( instance == null ) { instance = new AutoUtils ( context ) ; } return instance ; } private AutoUtils ( Context context ) { this . context = context ; WindowManager windowManager = ( WindowManager ) context . getSystemService (

HttpSession使用和源码分析

南楼画角 提交于 2019-12-19 12:40:46
HttpSession源码 HttpSession接口位于javax.servlet.http包下,和cookie位于同一个包 源码如下: public interface HttpSession { //返回session创建时间 public long getCreationTime(); //返回sessionId,Id由服务器自动创建,不会重复 public String getId(); //返回session最后一次活跃的时间 public long getLastAccessedTime(); public ServletContext getServletContext(); //设置session超时时间 public void setMaxInactiveInterval(int interval); public int getMaxInactiveInterval(); public HttpSessionContext getSessionContext(); //获取session属性 public Object getAttribute(String name); public Object getValue(String name); //返回session中存在的属性名 public Enumeration<String>

centos如何安装Python3

二次信任 提交于 2019-12-19 11:49:14
centos如何安装Python3 摘自:https://www.cnblogs.com/Mr-wangxd/p/7028285.html Linux下默认系统自带python2.6的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3那么我们知道编译安装源码包和系统默认包之间是没有任何影响的,所以可以安装python3和python2共存   首先去 Python 官网下载python3的源码包,网址:https://www. python .org/   进去之后点击导航栏的Downloads,也可以鼠标放到Downloads上弹出菜单选择Source code,就是源码包的意思,这里选择最新版本3.5.1,当然下面也有很多其他历史版本,点进去之后页面下方可以看到下载链接,包括源码包、Mac OSX安装包、Windows的安装包      这里选择第一个下载即可,下载的就是源码包:Python-3.5.1.tgz,下载好之后上传到服务器,开始准备安装   释放文件: tar -xvzf Python-3.5.1.tgz   进入目录: cd Python-3.5.1/   添加配置: ./configure --prefix=/usr/python   这里配置自己的安装目录,接下来编译源码: make   执行安装: make install  

直播系统源码的主要作用

泪湿孤枕 提交于 2019-12-19 10:13:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 首先来看一下整个直播流程的几个关键步骤: 1、主播客户端,将本地采集的视频推送到CDN; 2、CDN对视频流进行缓存以及转发; 3、观众客户端,拉取CDN中缓存视频流进行播放;可以看到CDN在这里起到了关键的作用,2016也是一个CDN崛起的年代,网宿、快网、七牛、高升、蓝汛、观止云、腾讯云、百度云、阿里云等CDN纷纷表示对直播进行了支持,直播也逐渐成为了CDN的标配。另外,CDN直播中常用的流媒体协议包括RTMP,HLS,HTTP FLV等。RTMP(Real Time Messaging Protocol)是基于TCP的,由Adobe公司为Flash播放器和服务器之间音频、视频传输开发的开放协议。 HLS(HTTP Live Streaming)是基于HTTP的,是Apple公司开放的音视频传输协议。 HTTP FLV则是将RTMP封装在HTTP协议之上的,可以更好的穿透防火墙等。 直播源码的功能,优质的直播源码是可以进行二次开发的,而且也可以搭建以下功能: 1. 靓号:靓号就是一串相同的数字,比较好记,有利于满足粉丝的虚荣心、靓号有三位数的、四位数的、五位数的、六位数的。 2. 座驾:有小毛驴、魔法扫把、乌龟、飞马、火灵马、凌鹰 按月购买、主要应用在商城上(类似于秀场似的商城,主要购买装备之类的东西)

简单源码解读之猜想验证

大城市里の小女人 提交于 2019-12-19 10:12:14
一、背景 最近有一个朋友问,为啥 ArrayList 空参构造方法和有参构造方法的参数为 0 所用的空元素数组不用同一个。 空参构造方法: /** * Constructs an empty list with an initial capacity of ten. */ public ArrayList ( ) { this . elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA ; } 带初始容量的构造方法: /** * Constructs an empty list with the specified initial capacity. * * @param initialCapacity the initial capacity of the list * @throws IllegalArgumentException if the specified initial capacity * is negative */ public ArrayList ( int initialCapacity ) { if ( initialCapacity > 0 ) { this . elementData = new Object [ initialCapacity ] ; } else if ( initialCapacity =

Eclipse常用设置

北战南征 提交于 2019-12-19 09:54:55
转自:https://www.cnblogs.com/maoniu602/p/3585049.html 用惯了VS,再回过去用Eclipse真是一件痛苦的事。so,在这里记录下使用过程中的一些设置以做备忘。 1、代码自动提示   在我们忘记方法名或者想偷懒时,代码自动提示很管用。不过Eclipse默认是输入"."后才会出现包或类成员的提示,也就意味着我们必须先输入一个完整的类名,提示才能出来;或者每次都按下 alt + / 。如何才能让它每次只要输入字母之后,也能出现提示呢?在这里可以设置: Window -> Preferences -> Java -> Editor -> Content Assist -> Auto Activation(自动活化) delay是自动弹出提示框的延时时间,我们可以修改成100毫秒;triggers这里默认是".",只要加上" abcdefghijklmnopqrstuvwxyz"或者"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",嘿嘿!这下就能做到和VS一样的输入每个字母都能提示啦: 7、HTML、JavaScript、JSP文件代码自动提示   第二点我们说到了Java文件中的代码自动提示,其它类型的文件比如HTML、JavaScript、JSP如果也能提供提示那不是更爽了

【Activiti系列学习】--4.从Github克隆Activiti并研究源码结构

烈酒焚心 提交于 2019-12-19 02:45:46
Activiti 6.0源码初探 一、Github工作方式 Activiti Admin为Activiti官方管理员所维护的库。 采用从官方库fork一份到自己的库,然后再克隆,可以实现在修改完本地代码后交到自己的库中,而若是直接从官方克隆是不能实现的。若我们提交到自己的库中的代码是有价值的,可以向官方库发起一个请求,他们的运维管理员通过之后,会将代码推送到官方库,这样就为开源软件做贡献。并且一个项目的fork数体现了该项目的受欢迎程度。若要实时更新Activiti的代码,可以从Activiti库中pull一份,然后提交到自己的库中。 二、克隆源码并编译 1.克隆源码 git clone git@github.com :shaoyucao/Activiti.git 2.进入到Activiti中并进行checkout创建分支操作cd cd Activiti git checkout -b study6 activiti-6.0.0 #以activiti-6.0.0为分支分化一个新分支study6,并切换到study6 3.编译 mvn clean test-compile #mvn clean清除编译生成的文件,mvn test-compile ,对源码进行编译,包括test/java,main/java下面的源码 发现编译前后两者的文件内容是不一样的 编译前: 编译后: 编译完成后

WPF--扫雷游戏源码

有些话、适合烂在心里 提交于 2019-12-19 02:28:39
WPF–扫雷游戏源码: XAML源码: < Window x : Class = "WPF编程.MainWindow" xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns : x = "http://schemas.microsoft.com/winfx/2006/xaml" xmlns : d = "http://schemas.microsoft.com/expression/blend/2008" xmlns : mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns : local = "clr-namespace:WPF编程" mc : Ignorable = "d" Title = "扫雷" Height = "600" Width = "600" Icon = "img/logo.ico" WindowStartupLocation = "CenterScreen" Loaded = "Window_Loaded" > < Grid > < Grid . RowDefinitions > < RowDefinition Height = "30" > < / RowDefinition