自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 New blog New life

博客

2016-10-14 10:44:08 312

原创 轻松学习java可重入锁(ReentrantLock)的实现原理

前言相信学过Java的人都知道 synchronized 这个关键词,也知道它用于控制多线程对并发资源的安全访问,兴许,你还用过Lock相关的功能,但你可能从来没有想过java中的锁底层的机制是怎么实现的。如果真是这样,而且你有兴趣了解,今天我将带领你轻松的学习下java中非常重要,也非常基础的可重入锁-ReentrantLock的实现机制听故事把知识掌握了在一个村子里面,有一口井水,水质非常的好,

2017-07-13 11:08:47 476

原创 自学react-native之必备知识点(ES6+ReactJS+flexbox)

前言最近一段时间在公司进行实习,所以事情比较多,自己学习的时间也少了一些,但是在公司中的收获确实也不小,这两天慢慢稳定下了,也就继续自己写博客的这个习惯吧。下面是正文,最近自己还是学习RN多一些,所以就继续总结这方面。正文在上一篇进行配置RN环境并且跑过demo后,我们来看一下开发RN所需的知识点。如果你没有接触过reactJS,我们首先要掌握的 第一个知识点:reactJS。然后我们看到代码的第一

2017-06-12 11:33:44 915

原创 React Native 之搭建开发环境(MacOS用户)

必需软件HomebrewHomebrew, Mac系统的包管理器,用于安装NodeJS和一些其他必需的工具软件。/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"注:在Max OS X 10.11(El Capitan)版本中,homebrew在安装软件

2017-04-19 14:48:02 583

原创 React Native 之搭建开发环境(Windows用户)

一、目标平台:Android必需软件ChocolateyChocolatey是一个Windows上的包管理器,类似于linux上的yum和 apt-get。 你可以在其官方网站上查看具体的使用说明。一般的安装步骤应该是下面这样:@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient

2017-04-19 14:35:21 510

原创 Android暑期实习面试漏洞之Java多线程

最近开始了暑期实习的内推面试,前两天刚刚阿里二面,自己感觉不是太好,面试官问的方面都是基础部分,但是如果都差不多可以回答上来,那就会对基础方面进行延伸,在Java基础、Android基础、网络、操作系统方面都有涉及。比如线程池方面,我们大部分只知道Java的四种线程池是哪些,然后怎么创建,但是很多人对于具体实现的细节并不了解也没有关心过,如线程池是如何重用线程,怎么设计才会避免重复创建销毁,用了哪些

2017-03-17 10:33:59 371

原创 一款基于Retrofit + RxJava + MVC架构开发的新闻客户端

HuntersNews这是我最近正在开发的一款基于Retrofit + RxJava + MVC架构开发的符合Google Material Desgin的新闻客户端,其中API使用的是知乎日报+网易新闻+豆瓣图书,符合Google Material Desgin。 项目中主要的特点有:该项目使用 MVC模式开发。该项目实现了基于 URL Scheme 的组件化,编译各组件时间相当于运行整体

2017-02-27 14:27:22 754

原创 面试前TCP/IP的总结与实践(三)

IP 网际协议IP 协议位于网络层,它是 TCP/IP 协议族中最为核心的协议,所有的 TCP、UDP、ICMP 及 IGMP 数据都以 IP 数据报格式传输。IP 协议提供的是 不可靠 、 无连接 的数据报传送服务。 不可靠(unreliable):IP 协议不能保证数据报能成功地到达目的地,它仅提供传输服务。当发生某种错误时,IP 协议会丢弃该数据报。传输的可靠性全由上层协议来提供。 无连接

2017-02-17 08:58:27 539

原创 面试前TCP/IP的总结与实践(二)

预备知识1、IP 地址网络上每一个节点都必须有一个独立的 IP 地址,通常使用的 IP 地址是一个 32bit 的数字,被 . 分成 4 组,例如,255.255.255.255 就是一个 IP 地址。有了 IP 地址,用户的计算机就可以发现并连接互联网中的另外一台计算机。 在 Linux 系统中,可以用这样一条命令查看自己的 IP 地址:ifconfig -a2、域名用 12 位数字组成的 IP

2017-02-14 09:20:15 394

原创 面试前TCP/IP的总结与实践(一)

TCP/IP 背景和介绍上世纪 70 年代,随着计算机技术的发展,计算机使用者意识到:要想发挥计算机更大的作用,就要将世界各地的计算机连接起来。但是简单的连接是远远不够的,因为计算机之间无法沟通。因此设计一种通用的“语言”来交流是必要可少的,这时 TCP/IP 协议就应运而生了。 TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控

2017-02-13 08:24:06 362

原创 Android内存优化总结

在app开发的各个阶段中要考虑RAM的限制问题, 包括在设计阶段(正式开发之前). 使用下面的不同的方法可以达到很好的效果. 当您在设计和开发Android应用时用下面的方法可以使内存运用最高效.1 使用保守的Service如果你的应用需要使用service在后台执行业务功能, 除非是一直在进行活动的工作(比如每隔几秒向服务器端请求数据之类)否则不要让它一直保持在后台运行. 并且, 当你的servi

2017-02-06 08:21:02 309

原创 设计模式之单例模式

关键点:1.私有化构造函数2.通过静态方法返回单例对象3.确保只有一个对象几种实现方法:1.懒汉模式:特点:调用时才创建实例,缺点:每次调用都需要同步,造成同步开销,不推荐使用2.饿汉模式:特点:加载该类的时候就创建实例3.双重锁模式:缺点: 在jdk1.5之前,双重锁机制并不能生效.解决: 室友volatile 关键字,保证对象每次都是从主内存中读取,就可以实现双重锁模式的单例但是,使用voali

2017-02-01 09:06:56 267

原创 Java——ConcurrentMap 解读

Java集合框架中的Map类型的数据结构是非线程安全, 在多线程环境中使用时需要手动进行线程同步. 因此在java.util.concurrent包中提供了一个线程安全版本的Map类型数据结构: ConcurrentMap. 本篇文章主要关注ConcurrentMap接口以及它的Hash版本的实现ConcurrentHashMap.要实现线程安全,就需要加锁, HashTable就是线程安全的, 但

2017-02-01 08:42:44 1310

转载 Android业务组件化之URL Scheme使用

什么是 URL Scheme?android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。URL Scheme应用场景:客户端应用可以向操作系统注册一个 URL scheme,该 scheme

2017-01-20 15:14:10 789

原创 插件化原理(以DL框架说明)

1. 插件化原理DL框架的原理很简单: 在宿主apk中,有一个ProxyActivity,即代理Activity,这个Activity相当于一个空壳,插件中的Activity依靠ProxyActivity来对生命周期回调、资源加载以及启动另一个Activity等等。总而言之,ProxyActivity提供Context,插件Activity依靠ProxyActivity来做自己想做的事情。2.

2017-01-08 09:42:33 1043

原创 Java进阶知识--Synchronized、Lock、ReentrantLock的区别

最近在看《Java并发编程的艺术》,书中不少知识是更深入的去讲解我们平时经常使用的并发实现机制,介绍了它们的实现原理和区别,读完之后真的有种醍醐灌顶的感觉,突然就好像明白了这些实现到底是干什么用、什么时候去用,今天我就来总结一下其中的一个知识点——Synchronized、Lock、ReentrantLock的区别。1. Synchronized当它用来修饰一个方法或者一个代码块的时候,能够保证在同

2016-12-31 10:44:03 5707

原创 矢量图VectorDrawable轻松实现箭头左右移动动画

最近在学习利用矢量图VectorDrawable实现动画,发现矢量图也很强大,很多动画效果都可以简单实现,下面就是其中一个简单箭头左右移动的动画。 下面开始实现这个动画效果1. 在res文件夹下创建animator文件夹2. 然后在animator文件夹下生成一个anim动画文件anim.xml<?xml version="1.0" encoding="utf-8"?><objectAnim

2016-12-12 23:10:05 4667

原创 了解Binder机制(极简主义解释风格)

Binder这个问题很多文章都有解释,比如:Binder是Android跨进程通信方式,它实现了IBinder接口,是ServiceManager连接各种Manager(如WindowManager、ActivityManager等)的桥梁。但是我觉得这些说法还是过于抽象,大部分文章看过后自己心里还是没有一个清晰的认识。那么应该怎么去理解Binder呢?我不打算介绍这个概念,而是介绍Binder是怎

2016-11-21 21:31:39 380

原创 造自己的轮子系列之——仿Butterknife框架

最近在项目中用到了Butterknife框架,而且配合插件ButterKnifeZelezny更是好用的飞起,学习了下butterknife源码,差不多了解个大概:Butterknife在编译时刻利用APT分析程序代码,扫描每一个有注解的类,找出类中带有注解的字段,然后查找我们自己定义的注解,然后动态执行findViewById操作,同理OnClick事件。由此我们可以来实现个自己的Butterkn

2016-11-16 20:00:03 279

转载 Android开发学习JavaScript系列(一):准备

Android开发为什么要学习JavaScript?这个其实也可以不学。正如我之前在《黑客与画家》的读书感悟中的介绍,编程语言会返过来对程序员的思维造成一定的影响,现在用多了Java 6做为开发语言的Android应用开发人员学习一门动态语言是很有必要的。所以,我觉得你可以不学JavaScript,但一定要选择一门动态语言(如Python或者Ruby)来体验一下。学习JavaScript的如处:1.

2016-11-14 16:06:41 1109 1

原创 android多线程之AsyncTask源码分析

在有关线程的操作中一定要记住两点:1、不能在UI线程中执行耗时的操作2、不能在非主线程中更新UI界面一、AsyncTask简介 AsyncTask封装了线程池和Handler,是Android的一个轻量级的异步类,它可以在线程池中执行后台操作,然后把执行的进度和结果通过Handler传递给主线程并在主线程里面更新UI。可以方便开发者实现异步操作。二、AsyncTask用法和示例1、用法Asy

2016-11-05 08:42:58 341

原创 解决提交到github报错 Run config : Please tell me who you are

今天博主在尝试用android studio上传项目到github,但是点过commit后,出现了如下错误: Can’t finish GitHub sharing process Successfully created project ‘Test’ on GitHub, but initial commit failed: * Please tell me who you are. Ru

2016-11-01 22:44:49 3779 1

原创 android四大组件之service知识点最强总结

1.基本概念Service只能在后台运行,适合那些不需要界面的操作,像是播放音乐或者监听动作等,因为它 的名字就已经提示了:它就是一个服务。 Service同样也是运行在主线程中,所以不能用它来做耗时的请求或者动作,否则就会阻塞住主线程。如果真的要这么做,可以跟Activity一样的做法:新开一个线程。2.启动方式Service根据启动方式分为两类:Started和Bound。其中,S

2016-11-01 19:45:08 496

原创 android四大组件之activity知识点最强总结

1.创建Activity定义Activity在AndroidManifest.xml的<application>节点中声明<activity> <activity android:name="com.itheima.intent.MainActivity" android:label="@string/title_activity_main" > //这两句

2016-10-30 22:14:23 471

原创 hunterliy小作品之 HunterMusic音乐播放器(Day4-歌词显示实现)

歌词显示实现

2016-10-23 16:59:11 489

原创 hunterliy小作品之 HunterMusic音乐播放器(Day3-自定义通知栏实现)

自定义通知栏的实现

2016-10-23 16:53:11 382

原创 hunterliy小作品之 HunterMusic音乐播放器(Day2-后台播放服务实现)

音乐播放界面和后台播放服务的实现...

2016-10-16 09:48:21 616

原创 hunterliy小作品之 HunterMusic音乐播放器(Day1-主页面实现)

1.1初始化项目1.1.1更改图片放置的文件夹mipmap 文件夹是用来存放 launch icon 的,他可以对图片进行优化,但是 PNG、JPEG、GIF、点九图、 XML,还是全部放在 drawable 目录下的。在这里我们不需要对图片进行优化,所以我们将 mipmap 文件夹 删除,创建一个 drawable-hdpi。1.1.2包结构在这个项目中我们需要创建 adapter、bean、

2016-10-15 21:33:09 645

原创 hunterliy小作品之 HunterMusic音乐播放器(开发介绍)

前言最近想做一个小的android项目来练手,有想过做天气app或者新闻客户端什么的,但是后来发现一个音乐播放器用到的知识点挺多的比如说handle、broadcast、service等等,所以就先拿音乐播放器开刀吧。1.功能规划音乐是我们平时必不可少的调味剂,而一个好的音乐播放器则更是能令人愉悦。市面上存在着大大小小上百种音乐播放器,而每个都有自己的优缺点,不同的人对于播放器的需求也会不一样。现在

2016-10-14 11:56:46 604

空空如也

空空如也

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

TA关注的人

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