5 GitLqr

尚未进行身份认证

我要认证

A Little White Developer

等级
TA的排名 4k+

Docker——配置国内源

1、创建或修改daemon.jsondaemon.json 文件路径为:/etc/docker/daemon.json,使用vi或vim打开daemon.json:vim /etc/docker/daemon.jsonetc目录下,可能没有docker文件夹,需要手动创建:mkdir /etc/docker2、daemon.json配置直接复制粘贴以下内容:{ "registr...

2020-04-01 11:07:50

AndroidTV——解决EditText焦点无法转移问题

经反馈,在AndroidTV9.0 盒子上发现EditText一旦获取了焦点之后,遥控器上的方向键就无效了,即焦点无法再转移到其他焦点控件上,但这个问题在Android7.0及以下盒子上却不会出现,应该是Android8.0及以上源码做了修改,故查看EditText源码,得知确实是官方源码对方向键进行了处理~一、源码分析EditText源码中搜索onKeyDown,定位到父类TextView中...

2020-03-31 14:09:48

AndroidNDK——Cmake详解

一、Cmake语法详解1、什么是CMake在Android Studio 2.2及以上,构建原生库的默认工具是CMake。CMake是一个跨平台的构建工具,可以用简单的语句来描述所有平台的安装(编译过程)。能够输出各种各样的makefile或者project文件。CMake并不直接构建出最终的软件,而是产生其他工具的脚本(如makefile),然后再依据这个工具的构建方式使用。CMake...

2020-02-19 09:13:03

AndroidNDK——makefile语法详解

一、编译流程详解编译流程编译:将高级语言编写的程序转换为二进制代码可执行性目标程序的过程四大过程:预处理、编译、汇编、链接1、预处理完成宏替换、文件引入,以及去除空行、注释等,为下一步的编译做准备;也就是对各种预处理命令进行处理,包括头文件的包含、宏定义的扩展、条件编译的选择等。// test.c文件内容#include <stdio.h>int main(){ ...

2020-02-12 15:24:18

Android音视频——Libyuv使用实战

近期换部门,从事之前从未接触过的Android音视频开发,主要涉及到USB摄像头调用、libyuv处理Nv21图像、直播推流等功能,对应的库有【UVCCamera】、【libyuv】等,刚接触没经验也没人带挺难搞的,而且网上资料很凌乱,所以,开此篇总结&汇总一下近期的研究,兴许可以帮助到别人,本人亦是新手,文中如有不正确的地方,欢迎指出点评。一、libyuv入门先简单说明一下,不管是A...

2019-09-20 15:47:53

不一样的Gradle多渠道配置总结

好久没有写博客了,突然想把这段时间项目中使用到的技术和多渠道相关的认识总结分享一下~一、新增渠道使用AndroidStudio配合gradle,可以很方便的输出多个渠道包,只需要在app Module下的build.gradle中,对productFlavors领域进行配置即可,假设我当前开发的项目,需要上线不同的地区,一个是国内版,一个美国版,还有一个免费版,那么gradle可以这么配:a...

2019-05-15 19:18:03

DroidPlugin手札——home键强杀处理

DroidPlugin手札——home键强杀处理DroidPlugin是360开源的插件化框架,github地址为:https://github.com/DroidPluginTeam/DroidPlugin。因公司业务及项目历史原因,来公司的这段时间一直在使用DroidPlugin进行业务开发,期间遇到的一些问题在此进行总结记录。一、背景为了方便访客知道本章在解决什么问题,这里先把需求背...

2019-01-21 09:08:12

Gradle入门系列(五)——Gradle其它模块与Plugin插件

Gradle其它模块一、Settings类settings.gradle(对应Settings.java)决定哪些工程需要被gradle处理,占用了整个gradle生命周期的三分之一,即Initialzation初始化阶段。二、SourceSet类对默认的文件位置进行修改,从而让gradle知道哪种资源要从哪些文件夹中去查找。// sourceSets是可以调用多次的android {...

2019-01-05 17:33:19

Gradle入门系列(四)——初识Gradle Task

Gradle中的Task一、Task定义及配置TaskContainer:管理所有的Task,如:增加、查找。定义(创建)Task// 直接通过task函数去创建task helloTask { println 'i am helloTask.'}// 通过TaskContainer去创建this.tasks.create(name: 'helloTask2') { ...

2019-01-05 17:32:41

Gradle入门系列(三)——初识Gradle与Project

初识Gradle一、Gradle的基本概念一个开源的项目自动化构建工具,建立在Apache Ant和Apache Maven概念的基础上,并引入了基于Groovy的特定领域语言(DSL),而不再使用XML形式管理构建脚本。同时,gradle还是一个编程框架,可以让开发者使用编程的思想来实现应用构建。gradle的组成:groovy核心语法build script blockgradle...

2019-01-05 17:32:06

Gradle入门系列(二)——groovy高级语法

groovy高级语法一、json操作使用groovy自带的json工具进行json操作groovy.json.JsonSlurper:将json原数据转成实体对象groovy.json.JsonOutput:将实体对象转成json数据def list = [ new Person(name: 'John', age: 25), new Person(name: 'Major'...

2019-01-05 17:31:28

Gradle入门系列(一)——groovy基础语法

groovy基础语法一、变量1、类型对象类型、基本类型(本质是对象类型)int x = 0println x.classdouble y = 3.14println y.class输出:class java.lang.Integerclass java.lang.Double结论:从log输出可以得出,groovy中实质上是没有基本类型的,本质是java中的装箱对象...

2019-01-05 17:30:49

解决ImageView超出父控件(或屏幕边界)时,图片挤压问题

一、需求在屏幕边缘显示一张图片,超出屏幕宽度时,只显示图片的左边部分,并且不被挤压,其余部分剪切。但我在实际开发中,踩了个坑,这里做个记录,下面通过图片直观了解一下情况: 理想 现实 目前可以确定,这种情况会出现在使用RelativeLayout作为ImageView父控件的情况下,其他类型的ViewGroup效果如何,暂不确定。二、分...

2018-09-05 11:37:40

热修复与插件化基础——Java与Android的类加载器

一、java中的ClassLoader1、类加载器2、加载流程Loading:类的信息从文件中获取并载入到JVM的内存中。Verifying:检查读入的结构是否符合JVM规范的描述。Preparing:分配一人上结构用来存储类信息。Resolving:把类的常量池中的所有符号引用变成直接引用。Initializing:执行静态初始化程序,把静态变量初始化成指定...

2018-05-18 00:28:20

热修复与插件化基础——Java与Android虚拟机

一、Java虚拟机(JVM)1、JVM整体结构使用javac将java文件编译成class文件。类加载器(ClassLoader)将class字节码加载进JVM对应的内存中。JVM将内存分配给方法区、堆区、栈区、本地方式栈4个部分,这4个部分分别存储字节码不同的部分。垃圾回收器(gc)会管理整个内存空间中的垃圾。2、Java代码的编译和执行过程下图是Java代...

2018-05-13 20:31:07

热修复与插件化基础——dex与class

一、dex/class浅析1、class与dex对比 类型 class文件 dex文件 定义 能够被jvm识别、加载并执行的文件格式 能够被dvm识别、加载并执行的文件格式 如何生成 使用java命令(javac) 使用java命令、dx命令 作用 记录一个类文件的所有信息 记录整个工程中所有类文件的信息2...

2018-05-13 20:21:58

使用PorterDuff解决clipPath无法抗锯齿问题

一、简述前段时间公司史无前例的接了一个大数据外包项目(哇~我们又不是外包公司(╯°Д°)╯︵ ┻━┻),要求搞很多图表方便观察运营的数据情况,图表当然要用到MPAndroidChart啦,但并不是所有的图表都可以用它用实现,这时就需要自定义View了,其中有一个要求,如下图所示,这就是本篇要实现的效果:本篇全文适合像我一样的小白细细观看,如果你很赶时间,就只是进来看看标题上的解决方案,...

2018-03-16 14:20:07

Libgdx——使用pixmap绘制透明圆角矩形

一、简述1、需求最近在使用Libgdx进行游戏大厅开发,遇到这种需求:为个别文本控件(Label)设置纯色透明的圆角矩形背景。2、思路Libgdx中的Label是提供背景设置的:对Label的Style的background属性进行设置即可,这个background是个Drawable,可以使用图片作为Label的背景,很好很强大,但我这个项目中的Label背景只需要一种透...

2018-02-09 09:37:24

热修复——Bugly让热修复变得如此简单

一、简述在上一篇《热修复——Tinker的集成与使用》中,根据Tinker官方Wiki集成了Tinker,但那仅仅只是本地集成,有一个重要的问题没有解决,那就是补丁从服务器下发到用户手机上,如果你团队中的后台开发人员实力够强,那么完全可以自己做一个补丁管理系统,但我想应该没多少人愿意花精力在这个后台管理系统的开发上面吧,且开发有时候就是在造bug,鬼知道会挖出一个多大的坑呢?对于这样的一个问题,据我

2017-12-12 17:30:10

热修复——Tinker的集成与使用

一、简述 Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用Tinker来更新你的插件。上面是Tinker官方Wiki的原话,意思嘛相信大家都看得明白,但注意啦,它并没有说Tinker可以让补丁实时生效(也叫无感知更新),它必须在打上补丁后重启App(重启进程),补丁才会发挥作用,这跟阿里的热

2017-12-06 17:51:26

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享王者
    分享王者
    成功上传51个资源即可获取