自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(179)
  • 资源 (5)
  • 收藏
  • 关注

原创 React Native开发中遇到)Error: EISDIR: illegal operation on a directory,应该怎么处理

如果你的React Native程序执行yarn start时,出现了如下的报错:那么根据我的开发经验,98%的可能性是因为原生代码有更新了,你需要重新编译原生包,再试试看。

2022-03-07 09:26:35 3856

原创 Android ndk.abiFilters armeabi-v7a、arm64-v8a、arneabi、x86、x86-64 解析

故事背景今天公司项目打完包,突然发现apk的size从原来的50多M激增到85M,作为敏感的我,肯定是要查清楚原因的。如何排查呢,肯定是结果出发,我们解压了最新的apk,对比上个版本的apk,看一下具体增大的文件是哪部分?可以清晰地看到,lib文件夹下增加了很多文件。看了一下这个周期的开发需求,我发现是有一个同学在处理接入一个第三方库的时候,增加了ndk的abiFilter种类,具体代码为:android { ...... defaultConfig { ....

2021-07-07 19:32:55 8022 4

原创 React Native里的Header包教包会

1、背景:Header一般由状态栏+标题栏组成,但是ios和android和表现形式不尽相同:上图为非沉浸式,下图为沉浸式。如果不做任何处理,我们在RN中写一个组件放在App.tsx中,android和ios的效果为:import React from 'react';import {View, Text} from 'react-native';const App = () => { return ( <> <View style={{he

2021-07-02 19:32:22 854 2

原创 【面试题】不知名网友透露的面试题一

1、为什么说非静态内部类持有外部类的引用。通过查看编辑后的class文件我们可以看到内部类中有一个this$0对象,是指向外部类的,具体实现为: 编译器会为内部类添加一个成员变量,该成员变量类型与外部类类型相同,这个成员变量就是指向外部类(this)的引用。 编译器会为内部类的构造函数增加一个参数,类型和外部类相同,构造函数内部,会把该参数赋值给上一步创建的成员变量。 在执行内部类构造函数的时候,默认传入外部类的引用。2、ViewModel在Activity生命周期变化的时候怎么保存数据?和on

2021-03-10 12:21:32 240 1

原创 【java高阶】项目中用到的设计模式总结

1、策略模式:我们的业务是国外铁路预定业务,包括了英法德意西韩日等多条铁路,他们数据契约来自不同的供应商,由于预定规则等等不同,客户端拿到的最终的数据格式,每条铁路都是不同的。但是支付业务是由支付团队提供的,他们是一套完全相同的api暴露给我们接入,如果需要传入金额orderAmount,订单号orderNumber,出发地departLocation,到达地arriveLocation等。 如果不用设计模式,代码会是这样的。分别在英法德意西支付页面调用:PayUtil.pay(orderAm

2021-03-09 18:46:13 589

原创 【Flutter开发】基于ChangeNotifier的MVVM架构实践

Flutter是谷歌出品,自然是天然适配MVVM架构,对于日常业务开发,使用该架构,可以很好地完成逻辑剥离,下面将实现一个demo讲解flutter中MVVM的实践。一、跨组件状态管理框架:Provider参考资料:https://book.flutterchina.club/chapter7/provider.html二、架构模式图:三、代码实现ViewModel层:ListDataViewModel.dart import 'package:flutter/cup..

2021-03-08 20:12:19 945 1

原创 【Android高阶】性能优化问题之内存十二问

#1.为什么官方建议别在onDraw创建对象?每创建一个对象,就会有一块内存分配给它;每分配一块内存,程序的可用内存也就少一块;当程序被占用的内存达到一定临界程度,GC 也就是垃圾回收器(Garbage Collector)就会出动,来释放掉一部分不再被使用的内存。Android 里的 View.onDraw 方法在每次需要重绘的时候都会被调用,这就意味着,如果你在 onDraw 里写了创建对象的代码,在界面频繁刷新的时候,你就也会频繁创建出一大批只被使用一次的对象,这就会导致内存占用的迅速攀升;然后.

2021-03-05 11:56:55 303

原创 【开发技巧】React Native,点击事情防误触处理

// 防误触的距离阈值let PREVENTDISTANCE = 3;// 是否禁止item点击事件let preventOnPress = false;// 记录onPressIn时的位置,跟onPressOut时的位置做比较,绝对值大于3,不触发onPress事件let pressPos = { current: { x: 0, y: 0 }}<TouchableOpacity onPressIn={(e) .

2021-03-04 09:44:41 429 2

转载 【Android高阶】内存泄露在Android Studio中的检测方式

Android Studio提供了查看和分析内存泄露的方式,具体从哪个版本开始支持我们不做考究:编写测试代码,一定会内存泄露的:class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)set.setOnClickL

2021-02-08 15:46:15 421

原创 【Android高阶】APP启动过程一些重要步骤总结

main入口函数创建了一个ActivityThread对象之后,通过bindler机制 回调了handleLaunchActivity()方法 -> ActivityThread#handleLaunchActivity -> WindowManagerGlobal.initialize() ; performLaunchActivity -> activity = mInstrumentation.newActivity(r.packageInfo.getClassLoader()) .

2021-02-08 12:18:43 166 2

原创 【开发工具】MacOS11.0.1 Big Sur上shell在哪里,添加环境变量怎么加?

往往我们在开始Android/React Native开发的时候,查看一些开发文档的入门教程时,会被告知需要先安装JDK,Android SDK等,然后将相关路径添加到环境变量中,但是!如果你购买了一台新电脑,系统恰巧配备的是MacOS11.0.1 Big Sur,那么恭喜你,很多教程上的步骤你就走不下去了,我们来看:当我们雄心勃勃进行React Native的学习的时候,搭建开发环境里有如下步骤:打开我们的终端,发现shell 是 zsh,那我们需要打开的是~/.zshrc文件我们发.

2021-02-06 22:19:42 630

原创 【Android高阶】Android 的事件到底是怎么来的?

在此之前,我们都知道,Android点击事件的分发顺序是:Avtivity->PhoneWindow->DecorView->ViewGroup->View。现在我们来讨论Android事件从哪里来的?1. ActivityThread.performLaunchActivity() 中调用 Activity.attach(),创建PhoneWindow,PhoneWindow创建DecorView。2. ActivityThread.handleResu..

2021-02-04 15:01:31 248

转载 【Android高阶】网络知识-HTTPS是怎么保证安全传输

1. HTTP确实不安全传统的HTTP传输协议,是一种明文传输协议。也就是通信过程中都没有对数据进行加密,很容易泄漏数据。比如泄漏了重要的用户信息、被伪造数据发送、都会造成不小的问题。所以有的朋友就想到可以自己对数据进行加密,但是这种自己加密数据的方法也存在了很多问题,比如: 不够安全。虽然数据加了密看似安全了,但是加密的密钥怎么管理呢?这是个大问题,保存在客户端?引入插件?感觉都不是什么比较好的办法,都还是有可能被破解。 兼容问题。自己对数据加密,那么就要涉及到对加密算法的管理

2021-02-04 11:08:16 232 1

原创 [开发问题]React Native packager.sh: line 11: node: command not found

The default shell that is opened to run this command doesn’t have the NVM node in its PATH. The solution given is to link the existing node install to where the shell expects it to be:执行命令:ln -s $(which node) /usr/local/bin/node

2021-01-19 17:33:34 444

原创 [开发问题]Error: EACCES: permission denied, access ‘/usr/local/lib/node_modules‘

把出问题的文件夹所有权都改成当前用户即可sudo chown -R $USER /usr/local/lib/node_modules/sudo chown -R $USER /usr/local/bin/sudo chown -R $USER /usr/local/share/

2021-01-14 10:11:58 138

原创 【开发问题】You have JVM property “https.proxyHost“ set to “127.0.0.1“ 警告问题解决

当你有一天build项目的时候发现非常非常慢,好不容易等了5个小时编译好了,运行起来报错,报错中总是出现"127.0.0.1"的字眼,建议你打开Android Studio的preference:搜索Http Proxy,你大概会看到:说明你肯定之前一顿操作,修改了代理,或者动了一些端口设置。解决办法来了“:打开终端输入JAVA_OPTS="$JAVA_OPTS -DsocksProxtPort"AS File->invalitDate caches/restart再打开ht

2020-12-10 09:40:20 4593 3

原创 【疑难杂症】三星手机上出现的autosizeTextView崩溃问题

是这样的,一个版本愉快的发布以后,线上观察到了一个crash:继续看堆栈:我们找到了真正出问题的堆栈。 结合新版本改动的代码,我们迅速定位了可能出现问题的代码:<************** android:id="@+id/tvDepartTitle" android:layout_width="wrap_content" android:layout_height="wrap_content"

2020-11-02 14:33:52 933

转载 【Java基础】注解

转载:https://www.jianshu.com/p/9471d6bcf4cf该文章分析注解言简意赅。

2020-10-15 15:21:27 73

原创 【工具】扫描识别图片中的文字

https://ocr.space/免费神器。

2020-09-27 14:11:58 266

原创 【Android基础】StatusBar重新认识

前言:工作几年下来,处理statubar的机会和场景不算多,每次遇到具体业务问题时,都是去网上找一些api解决当前问题,但是从来没有从根本上去了解statusbar的发展历程,今天下定决心去彻底认识statuabar。了解statusbar的发展需要分三个阶段:Android4.4(API19 KitKat)以前:无法做任何事,是的,就是一坨黑色。Android4.4~Android5.0(API21 Lollipop):可以实现状态栏的变色,但是效果还不是很好,主要实现方式是通过FLAG_TRA

2020-09-24 16:52:26 1746

原创 【Java基础】一、Object

Object概述:类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。简单来说就是,Object类是所有类的父类,包括我们所写的类,我们在使用类的时候就会利用Object类中的方法。hashcode():返回该对象的哈希码值,一般是根据对象的地址来计算。不同对象的 hashCode() 的值一般是不相同。但是,同一个对象的hashCode() 值肯定相同。getClass():public final Class getC..

2020-09-22 12:08:17 80

原创 【leetcode题解】双指针问题

双指针问题总结:移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。解答:双指针:思路既然问题要

2020-09-17 19:05:31 88

原创 HashMap, HashTable, ConcurrentHashMap,在攀比中学习他们

HashMap和HashTable异同1. 相同点:基于哈希表实现,内部维护了一个存储数据的Entry数组,每一个元素都是key-value对,元素内部通过单链表解决冲突问题。Entry数组容量不够时,会进行resize扩容,size为底层数组已用槽的数量,threshold=容量*加载因子(默认是0.75)是阈值。当size大于threshold的时候会进行扩容。新建一个底层数组,然后把...

2020-04-26 11:51:00 139 1

原创 Kotlin知识积累——let,with,run,apply,alse的用法

let

2020-04-24 16:05:47 474

原创 Android 沉浸式状态栏,上滑页面StatusBar透明度发生变化

参考资料:http://blog.cgsdream.org/2017/03/16/android-translcent-statusbar/https://blog.csdn.net/coderder/article/details/78294777开发过程中,首页顶部是一张图片,要求占据全屏幕,状态栏覆盖在图片之上。首先,activity的theme为: <style nam...

2019-05-23 11:20:00 775

原创 TextInputLayout使用时各个地方的字体颜色

我们现在在做Android端的输入框时,要具备如下功能:默认提示获取焦点时提示上移至输入框顶部获取焦点时输入框有提示错误时增加错误提示直接上图:默认情况:获取焦点时:开始输入文字时:有错误时:代码为(只写上图其中一个输入框): <android.support.design.widget.TextInputLayout ...

2019-05-21 18:47:06 801

转载 Android事件分发机制

https://blog.csdn.net/guolin_blog/article/details/9097463/ https://blog.csdn.net/guolin_blog/article/details/9153747这两篇文章介绍比价通俗和清晰。

2018-08-06 15:09:51 258

转载 Android中shape的用法详解

转载自:https://blog.csdn.net/u012910985/article/details/21553591用代码生成图片,而且图片能随意的更改,既方便又节省空间,下面就介绍用shape生成自定义图形的方法步骤:在res/drawable下新建一个xml文件;在代码中引用这个xml文件,引用方式和图片一样。定义shape图形的语法如下:&lt;?xml ...

2018-08-02 10:18:33 3594

转载 数据结构——HashMap

转载自:https://blog.csdn.net/Jae_Peng/article/details/79562432 众所周知,HashMap 是一个用于存储Key-Value键值对的集合,每一个键值对也叫做 Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。HashMap 数组每一个元素的初始值都是 Null。 对于HashMap,...

2018-07-31 20:16:33 182

原创 Android Studio的运行使电脑内存不够的解决方法

cd ~/.android 切换到.android目录下,找到build-cache目录,这里就是编译的缓存,你会发现,可能有几十个G,不要犹豫,删掉!。。。这时候重启AS后是不是发现都是红色,编译不过了。不要急。。。。执行git clean -xdf,大功告成!...

2018-05-02 11:20:48 3988

转载 滑动冲突解决

滑动冲突解决

2018-04-10 17:59:20 235

原创 Android include merge viewStub 用法

1.include在实际开发中,很多布局都是重复的,因此会出现大量相同的xml代码。这样的代码写法,既不简洁也不优雅。举个

2018-04-04 16:53:35 147

转载 Android开发之自定义控件(二)---onLayout详解

转载自:http://blog.csdn.net/dmk877/article/details/49632959通过本篇博客你将学到①自定义控件中onLayout的源码分析②getLeft,getRight,getWidth,getHeight表示的意义③一个例子来理解自定义控件的onLayout的过程 ④getMeasureWidth和getWidth的区别如有谬误欢迎批评指正,如有疑问欢迎留言...

2018-04-04 11:01:13 505

转载 Android开发之自定义控件(一)---onMeasure详解

转载自: https://blog.csdn.net/dmk877/article/details/49558367话说一个有十年的编程经验的老汉,决定改行书法,在一个热火炎炎的中午,老汉拿着毛笔,在一张白纸上写了个“Hello World!”,从此开启了他的书法旅程。那么问题来了请问自定义一个控件需要怎样的流程?我们经常说自定义控件,那么究竟怎样去自定义一个控件?可能大家都听过自定义控件是and...

2018-04-03 19:03:05 365

原创 Glide 设置了CenterCrop属性和圆角图像冲突

自定义了一个ImageView用于展示圆角图片:public class RoundCornerImageView extends android.support.v7.widget.AppCompatImageView { private int mRadius; public RoundCornerImageView(Context context) { s...

2018-03-28 17:19:53 3323

原创 recyclerView中GridLayoutManager实现每一行不同布局的问题

标题看起来比较拗口啊,直接上图:项目需求:1.整个页面需要下拉刷新2.整个页面可滑动3.底部数据很多,需要上拉加载更多因为整个页面需要滑动,所以上面两个横条的内容不能写死,而且,两个横条的内容有时候也会不固定,都是从服务端拿的数据,个数不定。所以不能写成如下布局:# LinearLayout    #LinearLayout    #RecyclerView(LinearLayoutManager...

2018-03-27 11:46:32 13860 6

原创 重新捡起来博客

毕业之后,每天忙碌的工作,写博客的习惯也慢慢丢掉了,但是在工作过程中,解决一个又一个问题也是一个很好的积累过程,所以,我会继续捡起博客,记录日常工作中遇到的小困难和大难题。...

2018-03-27 10:52:12 145

原创 ValueAnimation应用

工作中遇到一个小需求,写开发红包的动画。中间白色区域有一个向上的动画。这里我们采用valueAnimaiton动画来实现。 public void startValueAnimation(final View view) { ValueAnimator animator = ValueAnimator.ofFloat(-50f, 0f);

2017-06-20 11:06:36 457

转载 TCP---三次握手和四次挥手

本文转载自:http://blog.csdn.net/renzhenhuai/article/details/12105457一、TCP报文格式        TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:图1 TCP报文格式        上图中有几个字段需要重点介绍下:        (1)序号:Seq序号,占

2016-09-17 13:23:04 261

原创 Leetcode-sqrt

题目描述Implementint sqrt(int x).Compute and return the square root of x.public class Solution { public int sqrt(int x) { long start = 1; long end = x; wh

2016-09-16 23:45:39 250

Android 暗黑模式,dark mode,demo源码

Android 暗黑模式,dark mode,demo源码。我们介绍了如何在Android上实现暗黑模式,也介绍了APP自主控制是否使用dark的方式

2020-04-29

疯狂java实战讲义

疯狂java实战讲义 PDF版 所有都是java的实际工程 帮助提高!

2015-11-20

java数据结构和算法第二版

java数据结构和算法第二版 中国电力出版社 Robert

2015-11-20

李刚疯狂Java讲义(第三版)讲义

这是李刚《疯狂java讲义》第三版光盘内容,包括完整的代码,你值得拥有!

2015-11-20

流水灯代码 51单片机

这是非常完善的51单片机流水灯程序,含丰富讲解!

2015-01-21

空空如也

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

TA关注的人

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