自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android自定义音量弹窗

GitHub地址:https://github.com/lyric315/CustomVolueAdjust定义CustomVolueAdjust是一个Android自定义音量弹窗Demo,当用户按下音量按键后,将系统音量弹窗替换为我们自定义的音量弹窗。原理Android系统音量按键的控制逻辑在PhoneWindow类中//PhoneWindow的onKeyDown用于方法处理音量按键...

2018-11-22 14:14:34 2013

原创 手机通过WiFi连接adb

在通过WiFi连接ADB之前,需要确保三件事:确保PC正确安装了ADB驱动并且能够识别你的Android设备 。Android设备USB调试模式已打开。用USB数据线将PC与设备相连接。然后执行以下命令:adb kill-serveradb start-serveradb tcpip 5555adb connect xxx.xxx.xxx.xxx:5555其中xxx.xxx.xxx.x

2017-06-07 13:12:46 514

原创 Android svg 绘制三角形

三角形作为一个基本的Shape,在Android中是不支持的。 以前我们这样来定义三角形: <rotate android:fromDegrees="45" android:toDegrees="45" android:pivotX="-40%" android:pivotY="80%">

2017-06-05 23:47:59 3311 1

原创 Physics-based Animation 学习总结

Android O 出来了,带来了一种全新的动画 Physics-based Animation 先上Demo地址:https://github.com/lyric315/SpringAnimationTest 效果图: 概述Physics-based Animation依赖于物理规律,在动画中表现出高度的现实感。 在我们的日常生活中,当一个变化发生时,我们会自然而然的意识到它会伴随着一段物理

2017-05-25 22:54:34 2143

原创 ActivityThread读书笔记2-onResume的调用时机

之前一片文章,学习了ActivityThread是App的真正入口,他在内部维护了一个ApplicationThread对象,他和远程的ams进行通信。当创建Activity时,调用ams通过Binder机制调用ApplicationThread对象的方法,进而调用ActivityThread中的handleResumeActivity方法,最终调用Activity中的onResume()方法。在以

2017-03-07 15:37:45 1229 1

原创 Mac下安装artifactory的正确姿势

确定你安装了JAVA SDK 8在你开始之前,请确定你现在已经安装了Java 8,否则Artifactory将无法运行。你可以通过java -version这个命令获取Java的版本:$ java -versionjava version "1.8.0_40"Java(TM) SE Runtime Environment (build 1.8.0_40-b27)Java HotSpot(TM)

2017-03-06 17:15:01 1478

原创 Mac下安装artifactory的正确姿势和简单使用

确定你安装了JAVA SDK 8在你开始之前,请确定你现在已经安装了Java 8,否则Artifactory将无法运行。你可以通过java -version这个命令获取Java的版本:$ java -versionjava version "1.8.0_40"Java(TM) SE Runtime Environment (build 1.8.0_40-b27)Java HotSpot(TM)

2017-03-06 17:12:00 1888

原创 Android UI优化工具——Hierarchy Viewer

Hierarchy Viewer工具Hierarchy Viewer能够很便捷可视化的查看各种View嵌套关系,是一个很好的研究xml视图结构的工具。 主要有两个用途: (1)分析当前页面视图层级; (2)分析布局的时间统计(Measrue、Layout、Draw)所需要的具体时间。 有利于发现潜在的渲染瓶颈,并解决之。

2017-03-01 15:02:25 1010

原创 Android UI优化

Android UI渲染机制渲染模型分类从Android 3.0开始(API L11),Android开始全面使用硬件加速来进行2D渲染,硬件加速是指Android中在View上进行绘制的图形图像都使用GPU来进行绘制,使用硬件加速,在大部分时候都让绘制更加流畅,但付出的代价是需要消耗更多的内存资源。软件绘制模型软件绘制模型,这里由CPU主导绘图,按照以下2个步骤绘图:

2017-03-01 14:54:14 815

原创 Jenkins的安装与Android项目构建

什么是JenkinsJenkins是一个用Java编写的开源的持续集成工具。Jenkins提供了软件开发的持续集成服务。它运行在Servlet容器中(例如Apache Tomcat)。它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和和RTC),可以执行基于Apache Ant和Apache Maven的项目,以

2017-02-28 22:43:49 521

原创 ActivityThread笔记1

APP入口是ActivityThread,入口是一个main方法

2016-10-12 16:31:08 443

原创 布局优化——include、merge 、ViewStub

在项目开发中,UI布局是我们都会遇到的问题,如果布局过于复杂,层级过深,不仅会影响阅读性,还会导致性能降低。Android官方给了几个优化的方法include、merge、ViewStub。这里我们我们简单的介绍下使用方法,注意事项,并从源码角度分析他们的好处,注意事项。布局重用标签标签是我们最常用的标签,能够重用布局文件。把一套布局封装起来,使用的时候使用include标签引入即可:include

2016-10-10 17:02:11 697

原创 Retrofit简单原理分析

Retrofit原理分析之前学习了怎么使用Retrofit,现在来学习它的原理。Retrofit使用接口+注解的形式来定义一个网络请求,在通过OkHttp来执行网络请求。现在有很多开源使用了注解Annotation,如Dagger2、ButterKnife等,以及Retrofit。所不同的是他们利用注解干的事却不一样。Dagger2、ButterKnife他们在编译期间就处理注解生成代码,提供依赖注

2016-09-30 12:00:01 3324 1

原创 Retrofit入门

Retrofit是什么Retrofit是一个类型安全的HTTP客户端,支持Android和Java.它是Square公司开源的项目,当前版本2.0。在实际开发中,我们Retrofit配合OKHTTP来使用。我们使用OKHTTP当做传输层,使用Retrofit在OKHTTP之上,使用Java的接口描述我们的HTTP协议。 简单的说: 使用Retrofit转换HTTP 的API协议成一个java的In

2016-09-28 21:02:04 484

原创 Dagger2的使用

之前已经学习了注解和依赖注入的相关知识,现在来学习Dagger2框架 dagger2的大名我想大家都已经很熟了,它是解决Android依赖注入的一个类库(DI类库)。Dagger2没有使用反射技术,而是在变异阶段使用生成代码实现完整依赖注入的框架,而且框架生成的代码就像我们自己手写的,很容易了解其原理。

2016-09-09 00:13:33 381

原创 EventBus的源码分析

通过这片文章可以回答以下两个问题 1、为啥EventBus的事件处理方法必须申明为Public?但是我用protected也是OK的 2、粘性事件的原理,为啥发送多次Event,只有最新的event能够得到处理?EventBus类图 EventBus的类结构相对来说比较简单。其中最核心的类为EventBus和SubscriberMethodFInder

2016-09-07 23:29:27 825

原创 EventBus 使用123

EventBus是针一款对Android的发布/订阅事件总线。它简化了应用程序内各组件间、组件与后台线程间的通信,并且代码的可读性更好,耦合度更低。

2016-09-07 23:14:49 493

原创 LinkedHashMap深入学习

1、LinkedHashMap继承制HashMap,与之不同的是,LinkedHashMap重的节点LinkedEntry,双向链表来保存所有元素。。它记录了按照插入顺序排列的下一个节点和上一个节点; /** * LinkedEntry adds nxt/prv double-links to plain HashMapEntry. */ static class

2015-09-14 11:02:54 486

原创 HashMap源码学习笔记

HashMap的底层主要是基于数组和链表来实现的,它之所以有相当快的查询速度主要是因为它是通过计算散列码来决定存储的位置。HashMap中主要是通过key的hashCode来计算hash值的,只要hashCode相同,计算出来的hash值就一样。如果存储的对象对多了,就有可能不同的对象所算出来的hash值是相同的,这就出现了所谓的hash冲突。学过数据结构的同学都知道,解决hash冲突的方法有很多

2015-08-17 16:45:47 627

原创 华为上机题之输出身高差值最小的俩个人

要从5个人中选取2个人作为礼仪,其中每个人的身高范围为160-190,要求2个人的身高差值最小(如果差值相同的话,选取其中最高的两人),以升序输出两个人的身高。 Smple     input:161 189 167 172 188     Sample outPut: 188 189    分析:    看到这个题,最小想到的全排问题,从5个人中抽2个人出来,一共有10中

2015-08-17 16:39:59 1151

原创 华为上机题之去除字符串中最大最小的数

输入一串数,以‘,’分隔,输出所有数中去掉最大值、最小值之后剩下的个数。(其中最大值与最小值可能有多个) Smple     input :3,3,5,3,6,9,7,9     Sample outPut: 3    分析:    1)采用数组哈希法,但此处没有明确给定数字的范围,所以需要申请2的32次方个元素的素组,肯定不行啊。    2)使用HashMap,相对于数组

2015-08-17 15:44:34 1056

原创 String和StringBuffer的equals方法比较

String再熟悉不过了,通常考点在常量池上面。String和StringBuffer的区别,平时也只留意到一个是final类(String),字符串不可变;一个是普通类(stringbuffer),字符串可变。除此之外还有什么区别呢?下面来看看String和StringBuffer的区别,直接上代码:String s="abc";String t=new String("abc");

2015-08-15 23:05:04 4850

原创 A题之找K个最小的数

剑指offer上的一道题:输入n个整数,找出最小的k个数。例如输入4、5、1、6、2、7、3、8共8个数,最小的4个数为:1、2、3、4。分析:解法一:可以把它看车数组排序问题,先对数组排序,再取数组前k个数。各个排序算法中,快排是性价比比较高的了,时间事件复杂度为O(n*logn)。还有没有其他解法呢?解法二:快排思想派上用场了。快排算法中,我们通常要找一个参

2015-08-15 21:11:37 692

原创 A题之变态青蛙跳

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。分析:这是一个斐波拉契数列的引申问题,先来看看斐波拉契数列:nn>=2,    f(n)=f(n-1)+f(n-2);如果这个题变一下“一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。”就成了典型的斐波拉契数列问题了。

2015-08-14 11:25:06 713

原创 去除重复字符并排序

运行时间限制:无限制内容限制: 无限制输入: 字符串输出: 去除重复字符并排序的字符串样例输入: aabcdefff样例输出: abcdef思路:这个题用数组来哈希,时间复杂度为O(n)1)    初始化一个int数组hash,数组的角标和数组的值正好构成一对;2)    遍历字符串,将每个字符放入数组中对应的位置,出现过得字符,其数组值为13)  

2015-08-14 09:30:02 2054 2

原创 A题之拼音转数字

输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:描述: 拼音 yi er san si wu liu qi ba jiu      阿拉伯数字 1 2 3 4 5 6 7 8 9输入字符只包含小写字母,所有字符都可以正好匹配运行时间限制:无限制内存限制: 无限制输入: 一行字符串,长度小于1000输出: 一行字符(数字)串样例输入: yie

2015-08-14 09:08:49 838

原创 A题之字符串末尾补0

按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345。678“,”90000000”思路:1)对每一个字符串的长度取模length%N,在字符串末尾补(N-length%N)个02)将所有字符串补0后的字符串拼接在一起3)拼

2015-08-14 08:45:57 1462

原创 char/byte/short类型的加法和类型转换问题

前天做360校招内推笔试题,其中有一道byte类型加法的问题:byte b1=1,b2=2;b3=b1+b2;final byte b4=4,b5=5;b6=b4+b5;问b3和b5能否正常赋值?答案应该是:b3不能正常赋值,需要类型转换,b3=(byte)(b1+b2);b6能够正常赋值。原因分析:在Java中,在基本类型进行算术运算的时候,会发生小字节类

2015-08-13 10:43:07 4425

原创 A题之养兔子

题目描述一只成熟的兔子每天能产下一胎兔子。每只小兔子的成熟期是一天。 某人领养了一只小兔子,请问第N天以后,他将会得到多少只兔子。输入描述:测试数据包括多组,每组一行,为整数n(1≤n≤90)。输出描述:对应输出第n天有几只兔子(假设没有兔子死亡现象)。输入例子:12输出例子:12时间限制 1000 ms 内存限制 32768

2015-08-13 10:16:55 1771

原创 A题之NowCoder数列

题目描述NowCoder最近在研究一个数列:* F(0) = 7* F(1) = 11* F(n) = F(n-1) + F(n-2) (n≥2)他称之为NowCoder数列。请你帮忙确认一下数列中第n个数是否是3的倍数。输入描述:输入包含多组数据。每组数据包含一个整数n,(0≤n≤1000000)。输出描述:对应每一组输入有一行输出。如

2015-08-13 09:51:59 815 1

原创 GridView总结

1、常用功能:实现九宫格,横向滑动(例如:网易新闻分类title)2、用法:和ListView很类似,需要添加一个适配器。对于简单的布局,SimpleAdapter就可满足要求。往往还是选择实现BaseAdapter,可扩展性强。      步骤:1)指定GridView每一行显示的列数                 2)List数据                 3)继承Ba

2015-06-14 22:47:50 558

原创 Service和BroadcastReceiver总结

Service1、service的隐式启动和显示启动( 如果在同一个包中。两者都可以用。在不同包时。只能用隐式启动)    隐式启动                                                                final Intent serviceIntent=new Intent();        serv

2015-06-07 11:25:24 993

原创 Android Fragment嵌套使用问题总结

1、Fragment类的使用      1)xml文件中使用Fragment:将Fragment当成一个控件来使用,灵活性很差,一般不推荐使用。       2)代码中动态添加Fragment,使用FragmentManager来管理Fragment;       3)最常用:viewpager+fragment,组合使用,实现欢动切换Fragment2、动态添加Fragment

2015-06-06 17:22:34 1984

原创 去哪儿网产品体验报告

一、产品定位       公司创立于2005年2月,总部设在北京。去哪儿是中国领先的旅游搜索引擎,目前全球最大的中文在线旅行网站。作为一家创新的技术公司,去哪儿网致力于为中国旅游消费者提供全面、准确的旅游信息服务,促进中国旅游行业在线化发展、移动化发展。去哪儿网为消费者提供机票、酒店、度假产品的实时搜索,并提供旅游产品团购以及其他旅游信息服务,为旅游行业合作伙伴提供在线技术、移动技术解决方案。

2015-03-29 15:54:01 4413

原创 百度地图使用基础篇

百度地图API的官方教程太乱了,不容易上手。就一个定位的小功能,摸索了好久才搞定了。        第一步,核心类        public LocationClient mLocationClient; //定位的核心类public MyLocationListener mMyLocationListener;//定位数据的返回接口(public class MyLocationL

2015-03-14 15:59:44 607

原创 ExpandableListView不能展开的原因

最近做了两个关于ExpandableListView的项目,第一个项目好好地,什么问题都没发生,第二个项目偏偏遇到了ExpandableListView不能展开的问题。花了两天,各种调试,终于找到原因并解决。        问题原因:group中添加了button,导致ExpandableListView的焦点被button抢了。        解决方法:        1、在grou

2015-03-12 21:32:07 979

原创 MX2升级Flyme4用户体验

引子2014年11月19日魅族召开了MX4 PRO发布会,并宣布即日起,MX2可以刷机升级到Flyme4.0.4系统。Flyme4.0.4的bug多多,我不得不忍了一周。在25号,魅族更新了Flyme4.0.5,笔者迫不及待的更新了系统。使用了几天后,奉上体验报告一篇。MX2是魅族于2012年发布的旗舰机型,前黑后白的熊猫配色和荧光材质做成的触摸HOME成为了该手机的最大标志。窄边框,不锈

2014-11-30 22:43:14 1177

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除