自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Java 类加载机制

类的生命周期JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化加载这个阶段会在内存中生成一个代表这个类的 java.lang.Class 对象,作为方法区这个类的各种数据的入口。验证确保 Class 文件的字节流中包含的信息是否符合当前虚拟机的要求,并且不会危害虚拟机自身的安全。准备正式为类变量分配内存并设置类变量初始值解析虚拟机将常量池内的符号引用替换为...

2019-03-02 17:18:00 128

转载 从字节码层面理解泛型

命令行//编译成 class 文件javac Test.java //反汇编 class 文件javap -V Test.classAndroid Studio 编译的 class文件位于 build/intermediates/clases/debug/包名 下IDEA 插件jclasslib Bytecode viewerASM Bytecode Viewer...

2019-02-12 17:17:00 449

转载 《C++ 程序设计》读书笔记

> 本文联合编辑:小辣辣。向她致以最崇高的敬(爱)意 ❤第一章 C++的初步认识在程序进行编译时,先对所有的预处理命令进行处理,将头文件的具体内容代替 #include 指令,然后再对该程序单元进行整体编译。对函数做声明,它的作用是通知 C++ 编译系统。第二章 数据的存储、表示形式和基本运算C++ 没有规定每一种数据所占的字节数,只规定 int 型数据所占的字节数不大于...

2018-12-16 17:17:00 517

转载 APK 的前世今生:从 Android 源码到 apk 的编译打包流程

最近想要研究热修复的原理,并自己实现一套简单的热修复框架(音视频的坑刚挖好就又挖另一个坑了2333),已经在看书入门 c++,方便后续查看业内一些知名热修复框架的源码,另外在涉及编译期/运行时修改代码之前,先了解一下 apk 是如何从项目源码被打包生成的,可能对后续的从思路上或实际操作都会所裨益。文中涉及到的工具所在目录:Android/sdk/build-tools。下面开始分解并逐...

2018-11-18 17:16:00 375

转载 Android 音视频开发(一):PCM 格式音频的播放与采集

什么是 PCM 格式声音从模拟信号转化为数字信号的技术,经过采样、量化、编码三个过程将模拟信号数字化。采样顾名思义,对模拟信号采集样本,该过程是从时间上对信号进行数字化,例如每秒采集 44100 次,即采样频率 44.1 khz量化既然是将音频数字化,那就需要使用二进制来表示声音的每一个样本。例如每个样本使用 16 位长度来表示,即音频的位深度为 16 位编码编码就是按照...

2018-10-26 17:15:00 746

转载 《深入理解 Java 虚拟机》读书笔记

第二章 Java 内存区域与内存溢出溢出程序计数器程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。每条线程都有独立的程序计数器,各条线程之间计数器互不影响,独立存储。Java 虚拟机栈Java 虚拟机栈也是线程私有的,它的生命周期与线程相同。虚拟机栈描述的是 Java ...

2018-10-19 17:14:00 134

转载 Bitmap 图像灰度变换原理浅析

上篇文章《拥抱 C/C++ : Android JNI 的使用》里提到调用 native 方法直接修改 bitmap 像素缓冲区,从而实现将彩色图片显示为灰度图片的方法。这篇文章将介绍该操作的实现原理。开始先不讲关于 Bitmap 的相关细节,先从计算机底层存储与运算原理讲起。总所周知,计算机只识别 0 和 1,无论是八进制、十进制、十六进制,在底层都会被转换为二进制。有几个单位与概念...

2018-09-02 17:13:00 508

转载 拥抱 C/C++ : Android JNI 的使用

编译工具 CMake 以及 Android 上 JNI 的使用介绍。编译工具 CMake在Android Studio 2.2 之后,工具中增加了 CMake 的支持,于是我们有两种选择来编译 c/c++ 代码。一个是 ndk-build + Android.mk + Application.mk 组合,另一个是 CMake + CMakeLists.txt 组合。这2个组合与 A...

2018-09-01 17:12:00 148

转载 Nginx 入门

Docker 部署 Nginx,以及 Nginx 反向代理的配置。Docker 部署 Nginxdocker container run \ -d \ -p 8099:80 \ --name mynginx \ nginx以上命令会部署一个 nginx 容器, 各参数含义:-d后台运行-p 8099:80容器的 80 端口映射宿主的 8099 的端口-...

2018-08-18 17:11:00 77

转载 Android 自定义构建类型 BuildType

简单介绍了 BuildType 定义在 app 项目与 module 项目的区别,以及在 Gradle 2.x 与 3.x 版本的区别。最近接触到自定义构建类型 BuildType,发现这一块有些地方稍不注意的话会被绕进去浪费点时间,既然我这边已经花费时间了,如果正好你也需要接触到 BuildType,也许接下来分享的 tips 可能会帮你节省些时间。缘起BuildType 相信...

2017-12-21 17:11:00 176

转载 Android 沉浸式状态栏的实现

一提到沉浸式状态栏,第一个浮现在脑海里的词就是“碎片化”。碎片化是让 Android 开发者很头疼的问题,相信没有哪位开发者会不喜欢“write once, run anywhere”的感觉,碎片化让我们不得不耗费精力去校验代码在各个系统版本、各个机型上是否有效。因此以前我一直把沉浸式状态栏看作一块难啃的骨头,但是该面对的问题迟早还是要面对,所以,不如就此开始吧。沉浸式状态栏的实现方...

2017-08-22 17:09:00 263

转载 JIRA 知多少:聊一聊 Android Studio 、工作流相关设置

Android Studio 相关配置 JIRA 服务器如果细心的话会发现有一个选项卡:Commit Message。这一段代码是不是有点熟悉呢?你没有猜错,这段代码就是 commit 模板,当你切换 task 后在git commit 时会自动将任务的id 和 简介配置到 commit 信息里。切换到某个 JIRA 任务点击工具栏上的 Default task ,下方显示...

2017-08-03 17:08:00 182

转载 Mac 上使用 Shell 脚本 + adb shell 实现简单的 Android 模拟点击自动化测试

需求在 A 界面,点击跳转到 B 界面(该界面会执行一些业务),再点击返回键出现 Dialog 弹窗,点击确认退出按钮,返回 A 界面。不断循环。思路一开始想到的就是按键精灵,下了 mac 版使用后发现功能太不完善,于是试了试 Windows 版,实在是操作不习惯。在搜索资料过程中了解到还可以使用 adb 来实现模拟设备操作,那肯定是写代码更顺手啊,配合使用脚本重复输入命令,就能实...

2017-04-29 17:06:00 575

转载 自定义 demo 集合

各种写着玩的自定义控件demo有时网上看到一些比较有意思的开源项目,有时间的话就会自己也撸一个出来,但是一般只关注实现样式、动画等,不会太去细致完整地完成,俗称占个坑~持续更新中...github地址饿了么加入购物车按钮渐变圆环真机效果没这么丑的~水波纹进度条转载于:https://www.cnblogs.com/yazhidev/p/11245455.html...

2017-03-31 17:05:00 81

转载 ConstraintLayout 学习笔记

如何阅读 xml 属性与 Relativelayout 不同,ConstrainLayout 的属性需要同时说明需要怎么操作自己与目标控件,例如:layout_constraintLeft_toLeftOf 指自身左边缘与目标控件左边缘对齐从此 match_parent 是故人ConstraintLayout 里不再使用 match_parent,想要铺满屏幕,只能设置宽度为 0,...

2017-03-24 17:04:00 146

转载 《Effective Java》读书笔记

创建和销毁对象静态工厂模式构造器里未传参的成员不会被初始化。int类型是0,布尔类型是false,String类型是null,List<>也是null。重叠构造器进阶1:javabean模式,使用set方法来初始化成员,缺点是构造过程中javabean可能处于不一致状态(可以理解成该模式下成员的设置的分步进行的,可能某处使用到该类的某个成员时其还未被初始化),并...

2017-01-28 16:21:00 89

转载 App Shortcuts 快捷方式:Android 的 '3D Touch'

Hello Shortcuts从Android7.1(API level25)开始,开发者可以为自己的app定制shortcuts。shortcuts使用户更便捷、快速的使用app。我个人感觉有点像ios的压力感应,但是我认为Google的shortcuts动画做的更好看:)。shortcuts分为两种:Static shortcuts:静态shortcuts是在资源文件中定义的...

2017-01-10 16:17:00 126

转载 Fresco 二三事:图片处理之旋转、缩放、裁剪切割图片

关于Fresco加载图片的处理,例如旋转、裁剪切割图片,在官方文档也都有提到,只是感觉写的不太详细,正好最近项目里有类似需求,所以分享一些使用小tip,后面的朋友就不用再走弯路浪费时间了。(测试图片分辨率1200*800)原图:裁剪图片实现旋转图片/** * 旋转图片 * * @param rotate ,例如:RotationOptions.ROTATE_90 */...

2016-12-03 16:16:00 287

转载 React Native Android 环境搭建

因为工作需要,最近正在学习React Native Android。温故而知新,把学习的内容记录下来巩固一下知识,也给有需要的人一些帮助。 需要说明的是,我刚接触React Native也不久,对它的认识肯定还是比较浅薄甚至无知的,如有不对的地方恳请指出,求之不得,谢谢!那么让我们开始吧,对程序员来说,入门的第一课毫无疑问就是搭建环境。环境搭建ChocolateyChocolat...

2016-10-29 16:15:00 109

转载 Kotlin 简单使用手册

在昨天和做android的前辈一番交谈后,觉得很惭愧,许多东西还只是知其然而不知其所以然,也深感自己的技术还太浅薄。以后要更加努力地学习,要着重学习原理、方法论,不能只停留在会用的阶段。今天又要献丑分享一些关于使用Kotlin这门新兴的编程语言的一些要注意的地方。因为上一个项目全部使用了kotlin,算是给后面接手的朋友的一份交接文档吧。先分享三篇文章:Kotlin for and...

2016-07-15 12:59:00 100

转载 Adnroid 源码学习笔记:Handler 线程间通讯

常见的使用Handler线程间通讯:主线程:Handler handler = new Handler() {@Override public void handleMessage(Message msg) { ... }};子线程:Message message = new Message(); message.arg1 = 1; ...

2016-06-29 11:27:00 102

转载 eclipse 再见,android studio 新手入门教程(三)Github(ignore 忽略规则)的使用

上传代码到githubandroid studio里集成了上传代码到github的功能,所以使用上还是很简单的,设置里添加账号并测试,之后就可以很方便地上传代码到github了如果你的项目是使用android studio新建的,那么关于github基本就没什么问题了。android studio新建项目是自带.ignore文件的,也就是说默认是使用了忽略规则上传。默认忽略的是...

2016-05-25 12:38:00 254

转载 第一个开源控件:Google 官方下拉刷新控件 SwipeRefreshLayout 强化版,支持上拉刷新...

最近比较闲,所以趁着这时间撸了个SwipeRefreshLayout的加强版,Github地址。原版只支持下拉刷新,强化之后支持上拉刷新和一进入页面就加载刷新,整个控件的加载动画是一致的,毫无违和感:),也算是为开源社区尽了点绵薄之力啦。很惭愧,就做了一点微小的工作,谢谢大家。转载于:https://www.cnblogs.com/yazhidev/p/11243571.ht...

2016-04-22 12:54:00 58

转载 eclipse再见,android studio 新手入门教程(一)基本设置

写在前面:作为一个刚半只脚踏入android开发的新手,在使用eclipse开发了两个自我感觉不甚成熟的商城类app之后,遇到了一些问题,总结为如下:代码复用性。findviewById,onclick事件等,一遍遍重复这类无聊的代码简直浪费生命,这个问题推荐通过依赖注入框架ButterKnife解决,直接一键生成布局中的所有控件,包括onclick点击事件,但是诸如行布局item...

2016-03-29 10:05:00 98

空空如也

空空如也

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

TA关注的人

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