true

Javac与JIT编译

转载地址 编译过程不论是物理机还是虚拟机,大部分的程序代码从开始编译到最终转化成物理机的目标代码或虚拟机能执行的指令集之前,都会按照如下图所示的各个步骤进行:     继续阅读
MXlwq's avatar
MXlwq 5月 25, 2016
 | 

Gradle多渠道打包

转载自stormzhang 由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这再也不是事了。 友盟多渠道打包废话不多说,以友盟统计为例,在AndroidManifest.xml里面会有这么一段:123<meta-data android:name="UMENG_CHANNEL" android:value="Channel_ID" /> 里面的Channel_ID就是渠道标示。我们的目标就是在编译的时候这个值能够自动变化。 第一步 在AndroidManifest.xml里配置PlaceHolder123<meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" />     继续阅读
MXlwq's avatar
MXlwq 5月 23, 2016
 | 

Gradle命令与导入第三方包

转载自stormzhang Android Studio + Gradle的组合用起来非常方便,很多第三方开源项目也早都迁移到了Studio,为此今天就来介绍下查看、编译并导入第三方开源项目的方法。 Sublime + Terminal编译并查看源码首先来给大家介绍一种简便并且个人最喜欢的一种办法。很多时候我们在GitHub上看到一个不错的开源项目,一般有两种需求,阅读源码和查看运行效果,如果是单纯的查看源码我更喜欢用一些轻量级编辑器,如vim,sublime等,vim不是很熟练,所以个人一种都习惯用sublime来查看并阅读源码(实际开发还是Android Studio、Eclipse等IDE更有效率);至于查看运行效果首先得需要apk,对于一些开源项目已提供apk下载,那就好办,直接安装到手机即可。 而对于一些没有提供apk下载的,则需要自己手动编译打包。 下面以9GAG为例来讲解下命令行Gradle编译的过程。 切换到9GAG项目的根目录,执行 ./gradlew -v 来查看下项目所用的Gradle版本     继续阅读
MXlwq's avatar
MXlwq 5月 23, 2016
 | 

Gradle基础

转载自stormzhang Gradle 基本概念Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。 下面就以我的开源项目9GAG来详细讲解下和Gradle相关的知识, 和Gradle相关的几个文件一般有如下几个:红色标记部分从上到下咱们来一步步分析:     继续阅读
MXlwq's avatar
MXlwq 5月 23, 2016
 | 

SlidingMenu开源分析

本文为 Android开源项目源码解析中 SlidingMenu 部分项目地址:SlidingMenuDemo 地址: 功能介绍现在主流 App 的导航栏一般有两种,一种是主界面上面 3-4 个 Tab 下面搭配 ViewPager + Fragment,另一种就是侧边栏,如果主导航超过 3 个 Tab 时,建议使用侧边栏作为 App 的主导航。SlidingMenu 是一个强大的侧边栏导航框架,并且已经被一些比较牛的 App 使用,主要特点如下:(1) 侧边栏可以是一个 Fragment,包含任何 View(2) 使用简单方便,支持左滑和右滑等(3) 自定义侧边栏显示动画 总体设计SlidingMenu 总体由三个主要的类组成。(1) SlidingMenu 继承自 RelativeLayout,对外暴露 API 给用户,同时在添加 CustomViewAbove 和 CustomViewBehind(2) CustomViewAbove 继承自 ViewGroup,主要用来处理触摸屏事件(3) CustomViewBehind 继承自 ViewGroup,主要用来配置参数,显示侧边栏的 Menu 部分     继续阅读
MXlwq's avatar
MXlwq 5月 22, 2016
 | 

设计模式(Java)_3

上一篇:设计模式(Java)_2 行为型模式Chain of Responsibility ( 责任链模式 )Command ( 命令模式 )Interpreter ( 解释器模式 )Iterator ( 迭代器模式 )Mediator ( 中介者模式 )Memento ( 备忘录模式 )Observer ( 观察者模式 )State ( 状态模式 )Strategy ( 策略模式 )TemplateMethod ( 模板方法 )Visitor ( 访问者模式 )     继续阅读
MXlwq's avatar
MXlwq 5月 20, 2016
 | 

设计模式(Java)_2

上一篇:设计模式(Java)_1下一篇:设计模式(Java)_3 结构型模式Adapter ( 适配器模式 )Bridge ( 桥接模式 )Composite ( 组合模式 )Decorator ( 装饰模式 )Facade ( 外观模式 )Flyweight ( 享元模式 )Proxy ( 代理模式 )     继续阅读
MXlwq's avatar
MXlwq 5月 20, 2016
 | 

设计模式(Java)_1

20160725更新下一篇:设计模式(Java)_2 设计模式Design Patterns 可复用面向对象软件的基础 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 什么是设计模式 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。代码规范 首先是要注意注释文档的格式,注释文档将用来生成HTML格式的代码报告,所以注释文档必须书写在类、域、构造函数、方法、定义之前。 注释文档由两部分组成——描述、块标记。描述部分用来书写类的作用或者相关信息,块标记部分必 注释的种类:文件头注释、构造函数注释、域注释、方法注释和定义注释。文件头注释需要注明该文件的创建时间、文件名、命名空间信息。构造函数注释采用描述部分注明构造函数的作用。方法注释采用描述部分注明方法的功能,块标记注明方法的参数、返回值、异常等信息。     继续阅读
MXlwq's avatar
MXlwq 5月 19, 2016
 | 

计算机网络各层协议

转载地址 网络层协议:包括:IP协议、ICMP协议(Internet控制报文协议)、ARP协议(地址解析协议)、RARP协议(反向地址转换协议)。传输层协议:TCP协议、UDP协议。应用层协议:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS。     继续阅读
MXlwq's avatar
MXlwq 5月 02, 2016
 | 

Java多线程

20160505修改部分代码20160506添加进程同步 继承Thread类123456789101112131415161718192021class Thread1 extends Thread { public void run() { int ticket = 5; while (ticket > 0) System.out.println(Thread.currentThread().getName() + "剩余" + (ticket--)); }}public class Main { public static void main(String[] args) { Thread1 mTh1 = new Thread1(); Thread1 mTh2 = new Thread1(); mTh1.start(); mTh2.start(); }} 运行结果:Thread-1剩余5Thread-1剩余4Thread-1剩余3Thread-1剩余2Thread-0剩余5Thread-1剩余1Thread-0剩余4Thread-0剩余3Thread-0剩余2 Thread-0剩余1一个继承了Thread的类的实例对象,无论调用多少次start方法,结果都只有一个线程在运行     继续阅读
MXlwq's avatar
MXlwq 5月 01, 2016
 |