- 博客(80)
- 资源 (14)
- 收藏
- 关注
转载 Kotlin 编译源码
Kotlin 编译源码clone kotlin 源码工程git clone git@github.com:JetBrains/kotlin.git,工程较大 保证外网通畅配置Java环境...
2020-07-22 16:02:41 804 1
原创 编译方舟编译器
环境:Mac OSParallels Desktop 安装Ubuntu 16.04安装基础包:sudo apt-get -y install openjdk-8-jdk ...
2019-09-27 08:00:00 5117
原创 Linux 完全公平调度器
读书笔记,Linux 系统编程 第六章高级进程管理完全公平调度器Linux调度器为完全公平调度器,简称为CFS。和最近华为鸿蒙提出的确定时延调度相反。完全公平调度器和传统...
2019-09-26 10:44:56 495
转载 工程依赖替换线上Maven依赖插件--绿豆荚
绿豆荚 绿豆荚是什么?开源地址:https://github.com/JackyAndroid/GreenBeanPods绿豆荚的起源是主工程中需要依赖大量的内部mave...
2019-02-12 11:43:03 710
转载 Kotlin 实践及原理
Kotlin 实践及原理如代码格式异常,可点击原文查看语法回顾常量与变量JavaString name = "Amit Shekhar";final String nam...
2019-02-11 16:23:36 1319
原创 开源!类美团外卖Maven仓库一键切源码工具
绿豆荚Github地址 绿豆荚是什么?绿豆荚的起源是主工程中需要依赖大量的内部maven仓库,通常会有几十个。这时就有一个问题,如果主工程中maven仓库需要升级或者修复问题,那该怎么操作?一般就是先在maven仓库的git repo中修改,然后发布到内网的maven中心,然后再在主工程中升级maven仓库版本号,再验证问题是否修复,以及功能是否满足需求。这么长的流程经常出现,那我们能...
2019-01-29 11:38:02 1838 2
原创 IntelliJ IDEA 引用搜索原理
注:如果排版格式有问题,点击最后的原文链接查看IntelliJ IDEA 我们都很熟悉,强大的开源IDE。Android Studio 就是基于IDEA社区版开发的。平常我们会经常使用到Find Usage 功能,查找一个类或者方法的引用,那我们看看它内部是如何实现的?IDEA 在Github上是开源的,地址:https://github.com/JetBrains/intellij-comm...
2018-05-23 17:12:16 2566 1
转载 年后找工作的你,如何写一封好的简历?
如何选一个好的简历模板?好的简历样式,能给面试官留下良好的第一印象。以下为几个较好的简历模板网站:五百丁(http://www.500d.me/)乔布简历(http://...
2018-03-12 08:00:00 519
转载 善变的架构
架构会有多善变?上图是一个常见的App分层架构,之后随着业务发展,架构会如何变化呢?再看微信在两个阶段结构图:阶段1:阶段2:可以看到微信在阶段1架构类似于常见的App分...
2018-03-11 18:04:11 211
转载 一线互联网公司内部面试题库 v1.1
这些面试题都是馆主肉身带回来的,绝对保证真实性。馆主也是一线公司都踩过点的人了,一开始是因为一线公司题库都有很大相似性,后来白天面试完,晚上就把面试题和答案整理下来,慢慢...
2017-11-26 18:24:10 626
原创 关于Dalvik,我们该知道些什么?
Dalvik和JVM的区别 Dex文件的结构 Dalvik如何加载Class Dalvik和JVM的区别Dalvik和JVM最主要区别是它们分别具有不同的类文件格式和指令集。Dalvik使用的是dex(Dalvik Executable)格式的类文件,而Java虚拟机使用的是class格式的类文件。Dalvik的指令是基于寄存器的,而JVM的指令是基于堆栈的,因此Dalvik需要更多的指令空间
2017-08-23 10:29:28 882
原创 Too many classes in --main-dex-list, main dex capacity exceeded | 主Dex引用太多怎么办?
主 dex 里面会有 Application、Activity、Service、Receiver、Provider、Instrumentation、BackupAgent 和 Annotation。当这些类以及直接引用类比较多的时候,都要塞进主 dex ,就会引发 main dex capacity exceeded build error 。在Lollipop之前的设备上,主Dex仅仅被Frame
2017-08-23 10:28:30 2483
原创 Hello Kotlin
前世今生 有什么样的语法? 语法是怎么实现的? 如何编译的? 迁移成本 为我们带来什么改变? 前世今生设计出发点Concise — 简洁Safe — 安全Interoperable — 协作目标Statically typed programming language for modern multiplatform applications 静态类型编程语言用于现代多平台应用
2017-08-23 10:27:13 1716
原创 JVM 答疑解惑
JVM是什么? 平常接触的东西都存在哪里? 类如何加载? 怎么运行? 清洁工怎么工作?JVM是什么?Java 虚拟机屏蔽了与具体操作系统平台相关的信息,使得 Java 语言编译程序只需生成在 Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java 虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。Java 虚拟机就像一个熟悉多个国家语
2017-08-23 10:26:11 696
原创 数据库到底哪家强?
目前大部分开源数据库都是基于SQLite发展而来,如SQLBrite、OrmLite、DBFlow、GreenDao等等,还有一个是Realm框架不是基于 SQLite 创建,它建立了自己独特的数据库存储引擎。那这么多框架到底有什么区别,那种更适合自己的产品呢? 我们先看基于SQLite发展而来的框架,这方面主要分成两条发展路线,一条是Rx或者叫做对象映射(OM)路线,一条是对象关系映射(ORM)
2017-08-23 10:25:06 2891 3
原创 Android模块化与组件化--多模块区分编译
模块化与组件化–多模块区分编译 示例地址:https://github.com/JackyAndroid/Android-Architecture-Fairy/tree/master/multi-variants-library Android-Architecture-Fairy开源项目重点分析主流技术与架构设计,欢迎star有时我们一个项目中存在多个产品形态,且不同产品需要不同的编译
2016-11-26 18:00:23 3189
原创 国内一线互联网公司内部面试题库
欢迎在GitHub或者CSDN上关注我GitHub: https://github.com/JackyAndroidCSDN: http://blog.csdn.net/rain_butterfly国内一线互联网公司内部面试题库在线阅读地址面试题来自于百度、小米、乐视、美团、58、猎豹、360、新浪、搜狐内部题库熟悉本文中列出的知识点会大大增加通过前两轮技术
2016-07-18 22:22:37 37227 15
原创 来,谷歌安卓浏览器源码就在这!
谷歌浏览器安卓版源码项目本项目是世界级的安卓架构理清本项目业务逻辑完全可以胜任国内一线公司工程师本项目会长期跟进并升级谷歌浏览器内核版本,欢迎star
2016-07-10 11:27:40 20208 33
原创 Android 一个窗口是怎么创建出来的?
前言在WmS看来窗口并不是Window类,而是一个View类。WmS收到用户消息后,需要把消息发送到窗口,View类其实并不能直接接受传递过来的消息,而接受消息的必须是IWindow类,实现IWindow类的是ViewRoot.W类,每一个W内部都包含了一个View变量。WmS不在意该窗口是哪个应用程序的,WmS按一定得规则判断哪个窗口处于活动状态,然后把用户消息给W类,W类再把用户消息传
2015-12-22 15:03:56 3810 5
原创 Android Context 到底是什么?
什么是Context?一个Context意味着一个场景,一个场景就是我们和软件进行交互的一个过程。比如当你使用微信的时候,场景包括聊天界面、通讯录、朋友圈,以及背后的一些数据。那么从程序的角度来看,Context是什么?其实一个Activity就是一个Context,一个Service也是一个Context。一个应用程序可以认为是一个工作环境,用户在这个工作环境中会切换到不同的场景,这就像一个助理,
2015-12-16 22:40:55 6137 4
原创 我眼中的Android Framework
我眼中的Android Framework在开发中我们会遇到各种各样的非常奇怪的问题,有些问题是百思不得骑姐。其实这些问题大都是因为我们不了解安卓内部运行原理,知其所以然才是我们的目的。—前言任何控制类程序都有一个入口,安卓程序也是。 framework包含三个部分:服务端、客户端、linux驱动。服务端服务端主要包含两个重要的类:WindowManagerService和ActivityMana
2015-09-26 23:00:27 16419 5
原创 Android 设计模式-单例模式
Android 设计模式-单例模式什么情况下需要单例模式?一些类提供公共功能供别人调用,本身不会处理业务逻辑类会被许多类和线程调用设计单例模式public class Singleton{private static Singleton mSingleton;private Singleton(){}public static Singleton getInstance(){if(m
2015-05-22 20:05:40 1618 1
原创 东半球最好的TV桌面开源项目
欢迎在GitHub或者CSDN上关注我GitHub: https://github.com/JackyAndroidCSDN: http://blog.csdn.net/rain_butterflyAndroidTVLauncher这是一个TV 桌面,包含了一个Leanback 桌面(最低版本是17)和一个普通桌面(最低版本是15),Leanback桌面是基于Leanback库开发符合Android
2015-04-08 16:30:01 22690 28
转载 让我们如此享受的慢性毒药
时刻提醒自己,不要忘记了最初的梦想。大学一毕业,我就道南京找男朋友云了。云的表舅在南京有家公司,他毕业后一直在那里工作,每个月拿1000出头的工资打发日子.我自己找了家小小的文化公司打工,每月1000元的微薄收入,也算高高兴兴上班了. 从此。我和云开始了看似快乐的生活.每天下班后便相拥在租来的小屋里看电视 。从下午6点的新闻一直到晚上十点的黄金剧场再到深夜的午夜剧场。每天持续6~7个小时躺在
2015-01-14 11:50:38 3109 3
原创 Android 代码检查工具SonarQube
代码检查工具能帮我们检查一些隐藏的bug,代码检查工具中sonar是比较好的一个。官网Sonar 概述 Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显
2014-12-26 14:51:03 22830 7
原创 Android 外网连接解决方案
有时候我们连接上一个没有外网连接的WiFi或者有线就会出现这种极端的情况,目前Android SDK还不能识别这种情况,一般的解决办法就是ping一个外网。方案:/** * @author suncat * @category 判断是否有外网连接(普通方法不能判断外网的网络是否连接,比如连接上局域网) * @return */ public static final boolea
2014-12-12 10:44:49 15883 2
原创 Android 视频深入解析
Android自带的播放视频有几种方法: 第一种方式是使用MediaPlayer 结合SurfaceView 来播放,通过MediaPlayer来控制视频的播放、暂停、进度等; 第二种方式是使用VideoView 来播放,这个类其实也是继承了SurfaceView 类,并且实现了MediaController. MediaPlayerController 这个用于控制媒体播放的接口,另外在
2014-12-02 17:43:50 8185
原创 Android 常用adb shell 命令
调试Android程序有时需要adb shell 命令,adb全称Android Debug Bridge ,就是起到调试桥的作用。通过adb我们可以在Eclipse中通过DDMS来调试Android程序,说白了就是debug工具。adb通过监听Socket TCP 5554等端口让IDE和Qemu通讯。默认情况下当我们运行Eclipse时adb进程就会自动运行。adb是一个C/S模式的程序,由三
2014-11-07 16:35:49 28606
原创 Android 动画深入解析
动画在安卓的一些娱乐应用上面应用非常广泛,在不牺牲性能的情况下,可以带来很好的体验,下面就详细讲解一下安卓动画的实现方式。学知识就学个明明白白。动画类型Android的animation由四种类型组成 XML中 alpha渐变透明度动画效果scale渐变尺寸伸缩动画效果translate画面转换位置移动动画效果rotate画面转移旋转动画效果 JavaCode中 AlphaAnimation渐
2014-09-28 16:39:41 10936
原创 Android 应用启动速度优化
现在很多的应用一开始点击的时候总会出现黑屏或者白屏,甚至前段时间微信也有同样的问题。其实白屏或者黑屏还是一些其他的东西,都是因为Android 主题的问题,只要自己自定义一个启动主题,问题完美解决。解决如下:style文件中添加: @drawable/splash true 只要设置一个和启动activity一样的背景即可。manifest中引用:<acti
2014-09-28 15:38:08 12123 1
原创 Android 最常用的快速开发工具类
Android开发的工具类能很好的封装一些常用的操作,以后使用起来也非常方便,我把我经常使用的工具类分享给大家。FileCache:package com.pztuan.common.util;import java.io.File;import android.content.Context;public class FileCache { private File cacheDir
2014-09-24 17:20:59 11795 3
原创 Android 最火快速开发框架AndroidAnnotations使用详解
Android 最火的快速开发框架androidannotations配置详解文章中有eclipse配置步骤,Android 最火快速开发框架AndroidAnnotations简介文章中的简单介绍,本篇注重讲解AndroidAnnotations中注解方法的使用。@EActivity 示例:@EActivity(R.layout.main)public clas
2014-08-22 14:54:42 10653 10
原创 Android 最火快速开发框架AndroidAnnotations简介
在上一篇Android 最火的快速开发框架androidannotations配置详解中介绍了在eclipse中配置androidannotation的步骤,如需配置请参考。1.目标 androidannotation框架要促进Android应用程序的编写和维护。相信简单的代码有明确的意图是实现这些目标的最佳途径。 当我们都沉浸在开发Android应用程序时,我们常常会
2014-08-21 18:23:19 12430
原创 Android 最火的快速开发框架androidannotations配置详解
以前给大家介绍的xUtils是国内比较火的快速开发框架,但是它的注解机制不是太稳定而且注解可选也比较少,今天给大家介绍一个国外的一个框架主要专注于注解的开发,简化Android代码编写,因为配置注意事项较为复杂,所以先详细介绍一下配置: git官网:https://github.com/excilys/androidannotations下载完解压目录如上,AndroidAn
2014-08-21 16:59:27 16528 3
原创 Android Proguard 详解
一般的商业项目都需要对代码进行加密,Android提供了一种代码混淆方法,介绍如下:一、代码混淆都做了什么?1、代码混淆通常主要是去除不必要的代码,是用一些晦涩难懂的名称来重命名类,属性,方法等,以达到减小代码体积,增加反编译难度的目的。(如果我们的应用是收费的或者保密的,那么我们就很有必要通过代码混淆来提高我们代码的安全性)二、在Eclipse中启用ProGuard1、确定And
2014-08-21 09:51:16 9906
原创 Android 接口回调机制详解
在使用接口回调的时候发现了一个经常犯的错误,就是回调函数里面的实现有可能是用多线程或者是异步任务去做的,这就会导致我们期望函数回调完毕去返回一个主函数的结果,实际发现是行不通的,因为如果回调是多线程的话你是无法和主函数同步的,也就是返回的数据是错误的,这是非常隐秘的一个错误。那有什么好的方法去实现数据的线性传递呢?先介绍下回调机制原理。回调函数 回调函数就是一个
2014-07-29 17:32:35 12161 2
原创 gc overhead limit exceeded eclipse错误解决方案
在Eclipse打包的时候报错:gc overhead limit exceeded eclipse原因是Eclipse默认配置内存太小需要更改Eclipse安装文件夹下的eclipse.ini文件。Eclipse.ini默认文件如下:-startupplugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar-
2014-07-28 09:50:16 12700
原创 Android Material Design带来的UI变革
谷歌Matias Duarte称,“Material Design是美丽和大胆的,因为干净的排版和布局简单且容易理解。内容才是焦点。谷歌I/O 014开发者大会上宣布全新的设计语言“Material Design”,适用于旗下所有平台,包括 Android、Chrome OS 和网页。 谷歌Matias Duarte称,“Material Design是
2014-07-27 17:04:46 7842
myeclipse 10注册机
2012-10-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人