自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 关于ffi-napi结合ref-napi调用dll的经验总结

在具体的electron项目中,需要调用本地c++编写的dll函数,函数中国有多个out parameter,但是各种尝试,发现最新的如下版本不支持引用传递"dependencies": { "ffi-napi": "^2.5.0", "ref-napi":"^2.0.3" }"devDependencies": { "@types/ffi-napi": "^2.4.1", "@types/ref-napi":"^1.4.1"}尽管node-ffi文档Node FFI T

2020-07-15 09:23:56 177

原创 windows环境下electron开发遇到的各种坑汇总

www.ipaddress.com中查看github.com以及github.global.ssl.fastly.net映射地址,然后在hosts中进行配置最后执行ipconfig/flushdns刷新dns,如果不行的话,就重启最后ping github.com能明显看到速度变快

2020-07-01 16:17:26 307

原创 Android 启动Activity面流程(Android 9.0)

Android开发过程中,可以说接触最多的就是启动Activity了,实际上从Luancher打开一个应用就是启动一个Activty了,我们可以从这点出来来梳理下Android启动Activity的具体流程,顺带也理一下ActivivtyManagerService的工作原理。1、Launcher通知AMS启动一个ActivityLauncher.javastartActivitySafel...

2020-04-02 22:58:23 175

原创 Source Insight在Android开发过程中的使用

现在Android开发的主流工具是Android Studio,但是有些场合并不太方便使用这个工具,比如电脑性能太差时,毕竟Android Studio还是很吃内存时,这时候Source Insight就是一个可以考虑的替代方案了,这里简单记录下Source Insight工具的使用方法吧1、打开Android 项目使用Source Insight打开Android项目还是很简单的,归纳如下。...

2020-03-30 19:48:04 99

原创 说说Binder通信

是否理解binder可以说是android学习的一个分水岭,因为这个概念太重要了,对于我们理解一系列android先关其它知识都是特别重要的,比如我们要分析Activity以及Service组件启动、ActivityManagerService以及WindowManagerService等系统服务,Binder通信都是绕不过去的一个重要知识点。这篇博客就来Binder的通信原理吧...

2020-03-23 11:12:14 71

转载 Android的dumpsys命令

转自 https://www.jianshu.com/p/6bd4813b3c60我们都知道Android是基于Linux的操作系统,它使用的是默认的Shell是Ash,之前的一篇文章有提到过《Shell脚本的简单介绍》,但是这个东西很明显是不能满足Android需求的,所以Google开发了很多针对Android的命令行工具。从git上把Android的源码拉下,就会发现有一个cmds的文件...

2020-02-25 15:00:57 111

转载 Java泛型使用的简单介绍

转自 https://www.cnblogs.com/LiaHon/p/11332355.html目录**一. 泛型是什么****二. 使用泛型有什么好处****三. 泛型类****四. 泛型接口****五. 泛型方法****六. 限定类型变量****七. 泛型通配符** **7.1 上界通配符** **7.2 下界通配符** **7.3 无限定通配符**...

2020-02-25 11:10:59 68

转载 Java基础之static五大应用场景

转自https://www.cnblogs.com/LiaHon/p/11075178.htmlstatic和final是两个我们必须掌握的关键字。不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构。上一个章节我们讲了final关键字的原理及用法,本章节我们来了解一下static关键字原理及其用法。一. static特点static是一个修饰符,...

2020-02-20 10:55:22 97

转载 Java内部类详解

说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉。原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法。今天我们就来一探究竟。下面是本文的目录大纲:一.内部类基础二.深入理解内部类三.内部类的使用场景和好处四.常见的与内部类相关的笔试面试题若有不正之处,请多谅解并欢迎批评指正。请尊重作者劳动成果,转载请标明原文链接:h...

2020-02-19 14:43:43 63

原创 Android开发调试技巧

Android开发过程中会遇到不少需要调试的地方,常用的调试也很简单,这里总结一些不是很常规的调试技巧(持续更新)1、写本地日志利用BufferWriter类来实现,不多说废话,直接上代码,这个后面方便传代码到git的时候,放到git上吧,毕竟直接放博客排版太长了public class LogsUtil { public static LogsUtil logsUtil = new...

2019-08-21 13:55:43 179

原创 Acivity启动流程分析

实际上,分析过很多次Activity启动流程,每次分析完成后很快就忘记了,网上也有很多博客写的很优秀,但是对我而言总是少了点什么,于是这篇博客决定在Android 9.0源码基础上梳理一次Activity启动流程,这里提供一个在线查看Android源码的地址AndroidXRef1、启动请求Activity我们通常通过startActivity来启动一个Activity//framework...

2019-07-25 19:34:14 46

原创 机器学习知识点总结

本篇博客持续更新中关于机器学习入门知识点参考以下博客:零基础入门深度学习(1) - 感知器零基础入门深度学习(2) - 线性单元和梯度下降零基础入门深度学习(3) - 神经网络和反向传播算法零基础入门深度学习(4) - 卷积神经网络零基础入门深度学习(5) - 循环神经网络零基础入门深度学习(6) - 长短时记忆网络(LSTM)零基础入门深度学习(7) - 递归神经网络...

2019-07-24 13:50:06 53

原创 PyCharm和Anaconda结合使用介绍(windodws环境)

PyCharm是一款python开发IDE,其带有一整套提升python开发效率的工具,而Anaconda是一个开源包、环境管理器器,可以在一个机器上安装不同的软件包机器依赖,并能够方便的对软件包进行切换。在python开发过程中,现在我这边可能会在python2.7以及python3.7之间切换,将PyCharm和Anaconda结合起来完美的解决了这个问题。一、PyCharm的安装可以从...

2019-07-13 15:50:24 3086

原创 python3三大常用函数之zip、map、reduce介绍

在python编码过程中,实际上是写机器学习代码过程中,我发现有三个高频函数被使用,也就是这篇博客要介绍的zip、map以及reduce三大函数。其中map、zip是python的内置函数,也就是全局函数,在python3中reduce函数不再是内置函数,它被放在了functools模块中了。对于内置函数我们可以在python窗口界面中通过help(func)命令方式获取其使用方法。一、zi...

2019-07-13 14:05:06 351

原创 python3之数据集介绍

为了学习python3特地的开了一个专栏,这个专栏也是为了边学习边总结,所以如果发现有问题请多多指教。python3有四种数据集,分别是列表、元祖、字典和集合,四种数据集各有特点,由于很多地方对于python基础有很详细的介绍比如,菜鸟教程,这里就不详细的说,只写我觉得比较特别的一、列表python中一个列表可包含不同类型的数据list = ['Google', 'Runoob', 199...

2019-07-12 18:16:25 1048

原创 HashMap基本原理总结

在日常开发工作中,hashmap经常被高频使用到,作为一个有探索精神的程序员肯定得搞清楚其基本原理的吧。说到HashMap必须的说一下哈希算法,散列算法(Hashing)是一种将字符组成的字符串转换为固定长度(一般是更短长度)的数值或索引值的方法。有了这个哈希算法,我们就可以将一个输入key值输出为一个int索引值了。这个索引值有什么用呢?这就的从HashMap的组成结构说起了##1、Hash...

2019-06-29 15:55:00 228

原创 浅谈AsyncImageLoader和Glide加载本地图片性能对比

距离上一次写博客已经很长时间,主要原因还是因为太懒了,而最近心思又不在技术上所以才长时间没有跟新博客。这篇文章来简单说说Glide和AsyncImageLoader加载本地图片上的表现吧。关于Glide的用法及源码解析可以参考郭霖大神的Glide博客专栏,虽然专栏中是以Glide 3.x版本进行源码解析的,但是对于Glide 4.x源码也就是大同小异了。1、AysncImageLoader说明...

2019-05-08 15:13:56 704

原创 关于synchronized关键字的认识

很多时候在阅读Android源码时,都会碰到synchronized这个关键字,实际上我一直是知道这个方法的作用是让方法或者代码块的操作具有原子性,从而解决多线程共享资源的问题,但是这个概念一直比较模糊,这里就趁着这篇文章来梳理一下。1、Java线程生命周期说好的讲synchronized的呢,怎么开篇就是生命周期问题呢?要讲清楚synchronized必须要搞清楚Java线程生命周期问题...

2018-09-02 18:04:25 1980 1

原创 Android Studio导入并调试Android Framework

金泰延老师的《Android 框架揭秘》一书第二章即是配置搭建Android开发环境,并讲解了如何在eclipse中调试Android Framework,但是现在大家基本都使用Android Studio开发环境了,那么如在在Android Studio中调试Android Framework呢?实际上关于这个话题很多博文都说的很仔细了,但是本人在参考这些博文过程中有些自己的心得体会也通过此篇博...

2018-08-29 23:28:00 5911

原创 Win7环境下Cygwin中Git可视化配置(gitk配置)

我们知道cygwin可以在windows系统中模拟linux开发环境,自然我们也就能够在其中配置git,配置git的教程很多了,网上一搜一大把,这里给一篇吧(不一定保证对),童鞋们可以去看看这篇Windows下Git的安装与配置(Cygwin),如果不对的话麻烦来给我反馈下哈,不对也不要紧再去网上找找就行,资料都很多的。这篇博文想要说的是cygwin环境中如何进行可视化的git配置,当然git...

2018-08-22 11:10:08 1087

原创 Ubantu18.04环境下编译android源码

最近在看金泰延老师写的《Android 框架揭秘》一书,第一章就是下载并编译android源码,书中内容较为陈旧,所以不得不到网上收罗各种资料,最后总算是大功告成,现在总结如下。1、安装git和repo并配置安装git通过下面命令实现sudo apt-get install git另外还需要配置好git的user.email和user.name,这个自己随便写就行了gi...

2018-08-19 10:52:01 13193 5

原创 APK签名流程介绍

实际上,现在Android开发IDE自带签名功能,但是有时我们还是可能遇到自己签名apk的场景的,比如你有一个未签名的apk,但是你要adb install到device上,这时我们在adb install之前就必须对该apk进行签名处理才能install成功,这篇文章就简单的介绍下apk签名流程吧。1、生成签名证书签名需要签名证书,签名证书类型实际上是有很多的,如jks、keysto...

2018-08-03 13:42:33 420

原创 MAT在内存分析中的简单使用

在Android开发过程中,经常会遇到各种内存泄漏和内存溢出的问题,所谓的内存泄漏是指部分已经不再使用的变量还继续占用内存得不到及时释放,而内存溢出则是指Android虚拟机会给每个应用(对应一个进程)可分配的内存是有限的,当该应用占用的内存达到可分配的最大内存时,应用继续申请内存,这是就会出现内存溢出。内存溢出多是内存泄漏导致的,内存泄漏和内存溢出都会降低应用运行效率,导致应用卡顿,所以在日常开...

2018-07-08 13:36:00 601

原创 Android事件分发拦截以及处理分析

在Android开发中,经常遇到如下场景,在一个ViewGroup中嵌套有其它ViewGroup或者View,这时点击被嵌套的ViewGroup或者View,这时点击事件到底是怎么被处理的呢?下面就以下面的嵌套为例子来说明 从图中可以看出CustomGroupA、CustomGroupB以及CustomView三者之间的嵌套关系,为了说明点击CustomView后,事件最终被处理的情况,我们...

2018-06-03 22:24:24 380

原创 从原理上粗略认知Android线程池(ThreadPoolExecutor)

在开发过程中,可能经常遇到下面的开发场景,即一个列表加载网络图片,比如加载100个网络图片,我们是不是就要去新建100个线程来下载对应的图片,这种做法当然是能够实现功能的,但是100个图片就100个线程也太夸张了,可能导致线程之间互相抢占系统资源以及线程创建和销毁会给应用带来额外的性能开销。所以这个时候我们就想到了利用线程池来实现这个功能,在Android开发艺术探索一书中,总结了线程池的以下三个...

2018-05-05 11:35:00 119

原创 Andriod中反射应用部分总结

五一过节写一篇简单一点的东西吧,这里就来简单总结下反射这个东东在android开发中的使用,当然这篇博客现在是不完全总结,知道多少写多少,以后应该还会进一步完善本篇博客。这里先创建一个ReflectUtil类,这个类并不用来处理反射,而是提供一些实验数据package com.yoryky.demo.util;public class ReflectUtil { priva...

2018-04-30 22:54:31 107

原创 Android中的Handler工作原理分析

Handler在Android开发中的使用频率很高,但然最常用的就是有一个耗时任务,在该任务结束后,我们要去更新UI界面,这时自然而然的我们就会使用Handler来完成这个功能。首先我们在UI线程中实例化一个Handler对象Handler handler = new Handler(){ @Override public void handleMessage(Mess...

2018-04-25 23:39:10 207

原创 Intent在Android开发中的使用总结

关于Intent的使用,其实已经有很多文章进行了详细的介绍,包括谷歌开发者网站也有进行很详细的介绍。这里再重复这个轮子的过程,主要是加深自己对Intent的认识,以及方便之后的查阅。1、Intent是什么Intent是一个消息传递对象,可以使用它来完成对其它应用组件的请求操作。从这里可以看出,Intent是一个对象,它的主要功能有两个一个是传递消息,另外一个就是请求应用组件了,而这个传...

2018-04-22 11:53:18 219

原创 adb命令不完全总结

在日常android开发过程中,了解一些adb命令会让开发效率提升很多。这篇文章就是简单记录下日常开发中,自己觉得很有用的adb命令,所以之后有了解到新的adb技能,也会来持续的更新这篇博客。1、adb shell总所周知,android内核就是基于linux进行开发的,那么在android上可以使用linux上的shell命令也就不奇怪了。通过adb shell可进入shell客户端,从...

2018-03-31 14:23:06 192

原创 android 多渠道打包的应用

我们知道现在Android开发现在一般用gradle进行项目管理,所以这里就说说怎么么通过gradle配置来实现多渠道打包的问题。在讲怎么实现多渠道打包之前,先说说为什么要使用多渠道打包。比如我们开发一款app,有两个版本一个是付费版本,一个是免费的版本,这个两个个版本实现的大部分功能都是一样的但是有部分功能不一样,这时该怎么办呢,当然我们可以建两个android项目,一个付费项目,一个免费的项目...

2018-03-17 15:14:05 838

原创 android沉浸式状态理解

在听说沉浸式状态之前,说实在的我连status bar、action bar以及navigation bar这几个bar都没有怎么搞清楚。那么什么叫沉浸式状态呢,所谓沉浸式就是给人一种沉浸其中的感觉,表现在android上就是全屏啦,于是我们就先用全屏来简单粗暴的理解沉浸式吧。但是只是全屏肯定不够啊,全屏了我还得交互啊(这里的交互表现在操作界面按钮等上面),但是普通的全屏不能满足这个需求(这个后面...

2018-02-22 11:48:54 307

原创 常用git命令使用总结

之前做项目代码管理的时候,基本都是使用svn,很少用git,本是就算接触github也是使用git的可视化工具,比如ToitorseGit等,总之就是很少使用git命令来进行代码管理就是了,现在有这方的需求,所以在此总结下git的命令行使用。当然这篇文章也就是纯粹的总结使用,如果要看git通俗一点的原理介绍并借此理解git命令行的使用,请参考这篇文章Git版本控制软件结合GitHub从入门到精通常

2018-01-31 22:10:06 294

原创 最新android sdk版本号和sdk的对应关系

最近公司做android开发真的很苦逼各种网络连不上,我自己记性不好又记不清楚android 版本号和API之间的对应关系,但是日常工作中又经常需要,没办法自己写篇博客记录下吧,方便之后查询。1、版本号和API的对应关系关于android sdk版本号和api的对应关系如下所示: Version API CodeName 2.3.3 - 2.3.7 10

2018-01-04 17:49:40 10802

原创 Android中的动画实现

android开发中用到的动画实现方式有三种,即View动画、Drawable动画以及属性动画三种动画的实现方式,关于这些动画的实现方式网上很多文章都总结的很详细了,写这篇文章完全是为了自己总结记录,而且本文不会去追究代码细节的问题,就单单总结下怎么用的问题,具体代码细节的话,请参考本文的参考文献。1、View动画View动画的实现是通过View控件的setAnimation来设置动画,可以设置的动

2017-12-21 13:37:52 654

原创 css知识总结

我们知道网页开发,无非就是h5页面+css+js,前面写了一篇文章总结了js,这里再来总结下css,算是为自己目前的网页开发知识做一个系统性的总结。我们知道h5标签是一些可显示的控件,这些控件显示在什么位置,怎么显示则是通过css来进行控制,至于页面布局首先是放在什么位置的问题,这里就先来看看页面布局的问题。 1、页面布局页面布局涉及到的知识点比较多,比如盒子模型、position、displa

2017-12-17 23:09:36 284

原创 JavaScript基础总结

其实一直没有正式的学习过JavaScript(后面简称JS),但是由于JS是一门使用范围很广的语言,可以说接触过Web开发的童鞋就必定用过JS,而我作为一名半吊子的开发者,自然也是断断续续的用过JS的,但是用的很少。因为最近在研究移动混合开发方便的一些知识,准备开始啃angular js这块骨头了,但是鉴于自己的JS基础知识不牢靠,还是先在这里总结下JS的基础知识,再去啃angular js。1、基

2017-12-11 14:46:06 2342

原创 Kotlin使用简单总结

自从看到谷歌在Google I/O2017开发者大会上,将kotlin作为android的官方开发语言后,kotlin的曝光率真的是越来越高了,作为一枚小小的android开发者,真的是已经到了不能忽略kotlin的底部了,于是决定简单的学学kotlin语言,然后就来写android项目了,所以这里的简单总结,真的是很简单。1、kotlin使用知识总结由于kotlin作为一门独立的语言,肯定不是一篇

2017-12-08 16:26:03 754

原创 Android项目使用私有maven仓库配置

最近写一个android的aar包,因为存在依赖第三方包的问题,所以得使用maven仓库。但是又不能提交项目到公共maven仓库上去,所以只得自己搭建一个maven仓库,于是上网一查,好家伙,基本都是推荐nexus来搭建私有仓库的。本文的目的是说清楚以下三点内容1、nexus搭建私有仓库2、gradle task命令部署aar到私有仓库3、在gradle项目中添加aar的依赖那么这就来说说吧1、ne

2017-12-07 13:37:12 1573

原创 关于Android开发中JNI/NDK使用的一点总结

咳咳,作为一名android爱好者(其实是为了钱钱),之前一直在使用Android Sdk进行开发,同时也一直知道有个ndk的开发方式,知道全名是native development kit,基原生开发工具集,模糊的知道应该是和c/c++开发有关系的,然后就没有深入一点的了解了。目前阶段想系统性的收一下自己的android技能,整理成一个比较系统的知识体系,于是乎ndk就成了一个绕不过去的技术,这篇

2017-12-06 11:42:47 352

原创 关于proguard的使用总结

在聊proguard使用之前,先说说proguard到底是什么东东,我主要做android开发,平时一般都听过android混淆打包的说法,直观的感觉就是把写好的java代码,通过一种编码方式给混淆了,让别人不容易看出代码逻辑以及java类之间的关系。其实,殊不知,这种混淆打包所依仗的就是这里要讲的progurad工具。progurad工具实际上有四个功能。压缩(Shrink):检测并移除代码中无用

2017-12-05 11:50:18 3586

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