自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM原理分析及面试题

讲解概况:

2021-10-21 11:32:39 733

原创 Handler源码分析及面试题

首先看下下面的面试题,根据问题进行源码分析。扩展:下图是在手机桌面点击应用图标,内部都发生了什么?涉及哪些通讯方式?如何打开了activity?1、在Launhaer界面点击按钮时,它会通过startActivity去打开Activity,但是此时没有Activity怎么办呢?通过AMS检测这些Activity的状态,发现此时Activity状态为不存在,那么,它会发送创建进程的请求到Zygote进程。Zygote进程就会去fork一个新的APP进程,新的进程是由AMS来进行管理。AMS

2021-04-16 09:04:11 598

原创 onActivityResult的使用很麻烦,为什么不设计成回调呢?

Activity中的onActivityResult在进行界面间的跳转和传递数据的时候,我们有的时候要获得跳转之后界面传递回来的状态,数据等信息。这个时候,我们不一定需要使用Intent进行跳转回原先设置的界面,而是使用onActivityResult方法就可以解决这个问题Activity的使用流程如下实例:public class MyActivityA extends AppCompatActivity implements View.OnClickListener { publi

2021-04-14 15:42:31 467

原创 Java泛型的实现机制

参考链接:https://www.cnblogs.com/coprince/p/8603492.html https://blog.csdn.net/seu_calvin/article/details/52230032基本知识:Java泛型编程是JDK1.5版本后引入的。泛型让编程人员能够使用类型抽象,通常用于集合里面。泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法泛型只在编译阶段有效ArrayList<String> a = new ArrayLi...

2021-04-13 18:39:19 217

原创 Java的多态和分派

参考链接:https://blog.csdn.net/qian520ao/article/details/79131216概念:多态Java具备面向对象的3个基本特征 : 继承,封装(get / set)和多态。多态 : 继承,重写(Override),向上转型(Father f=new Son())三大必要条件。分派分为静态分派和动态分派。分派调用过程将会揭示多态性特征的一些基本体现,如“重载”和“重写”。静态分派 - 方法重载分派 编译期确定 根据调用者的.

2021-04-13 11:34:41 129

转载 Java内部类

参考链接:https://www.zhihu.com/question/26954130/answer/708467570(一) 概述把类定义在另一个类的内部,该类就被称为内部类。(二) 内部类的访问规则​ A:可以直接访问外部类的成员,包括私有​ B:外部类要想访问内部类成员,必须创建对象(三) 内部类的分类​ A:成员内部类​ B:局部内部类​ C:静态内部类​ D:匿名内部类(1) 成员内部类成员内部类——就是位于外部类成员位置的类特点:可以使用.

2021-04-12 16:22:16 128

原创 java中的String可以有多长?

结论:1、局部变量放在java内存的栈中,以字节的个数代表String的长度,如果是拉丁字母,最长为65534(因为javac源码有个异常,不能为65535),如果含有中文(中文在utf-8中一般占三个字节),差别比较大,最大为65535。2、存储的是数组和对象,凡是new建立的都是在堆中,理论上String最大长度为Integer.MAX_VALUE,但是有些VMs(虚拟机)需要保留一些空间给头信息,所以此时最大为Integer.MAX_VALUE-8,随意堆上的String的长度尽量小于Inte

2021-04-12 10:51:56 7403

原创 Char如何储存UTF-8的字符?

结论java是用UTF-16储存字符的。Java的char大部分情况下是两个字节(有时是4个字节,如表示emoji)。Unicode是字符集,不是编码,作用类似于ASCII码。Java String字符串的length不是字符数而是字节个数。在Java(其中主要包括在JVM中、内存中、在代码里声明的每一个char、String类型的变量中。)中字符只以一种形式存在,那就是Unicode,不选择任何特定的编码,直接使用它们在字符集中的编号,这是统一的唯一的方法。在JVM内部,统一使用Unico

2021-04-11 16:04:40 3048

转载 二进制、八进制、十进制、十六进制关系及转换

转自:https://blog.csdn.net/ruidianbaihuo/article/details/87797979概念:二进制是计算机唯一使用的进制,因为计算机的根本是电路,电路只能表示两种情况,一种情况为没有电,可以表示数字0,一种情况为有电,可以表示数字1,再无第三种情况。计算机中使用的都是二进制,八进制和十六进制的出现其实都不是计算机的需要,它们的出现完全是出于表达和识别的方便性考虑的。一个较大的数用二进制表示就太长了,比如一个int类型的100(4个字节,总共32位),用二进

2021-04-11 09:48:37 3205

原创 Google商店应用上架注意事项

一.代码相关:1.权限问题:这个权限READ_PHONE_STATE如果不是必要权限,如果能去掉的话还是尽量去掉。2.支付相关:代码中不要出现第三方支付。去掉第三方相关的名字,尽量也去掉注释(WXEntryActivity,WXPayEntryActivity,alipay,支付宝,微信,等等)。3.不建议使用个推,bugly。二.FB相关和Google上架相关:原则:FB广告投放不允许投发Dating类以及相近的产品(白名单产品除外)。为了避免触发FB这方面的审核,需要对上架产品做以.

2021-04-10 18:11:53 1911

原创 TextView自动换行问题

目前采取的正确的换行方式:添加箭头指向的那句话即可,原因是\\s表示 空格,回车,换行等空白符,但是TextView的默认自动换行属性breakStrategy只能识别空格,导致出现了异常的换行情况,将字符串中出现的各种空白符都用" "代替,就可以变成属性breakStrategy能够识别的空格了,也就可以达到我们想要的自动换行的效果了。以上方案会有一个问题,就是用户发送消息主动换行不起作用,暂时的解决方案是先将换行符用特殊字符串替换掉,之后再进行\\s的替换,最后再把特殊字符串..

2021-04-10 18:09:31 6195

原创 Adjust接入注意事项

接入链接:https://github.com/adjust/android_sdk/blob/master/doc/chinese/README.md整体接入流程和FB、AF接入流程相差不大流程:添加依赖、权限、混淆、初始化、添加事件注意事项:一、接入方面:1、如果发布Google商店以外的商店,需要额外添加权限和混淆:<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>-kee

2021-04-10 18:05:19 5528 1

原创 Activity启动模式遇到问题

参考:https://blog.csdn.net/weixin_38196407/article/details/89924983背景:在1v1视频中,用户打卡金币支付小商店时,如果此时视频断开了,视频页面VideoActivity会被finish,但是金币小商店不可关闭。在此背景下,我使用activity作为小商店的对话框,但是当关闭视频界面时,根据栈的先进后出原则,由于此时栈顶是CoinsStoreActivity,虽然VideoActivity被fininsh了,但是并不能调用on..

2021-04-10 17:58:35 158

原创 SharedPreferences源码分析

SharedPreferences是Android平台上轻量级的存储类,用来保存App的各种配置信息,其本质是一个以键值对(key-value)的方式保存数据的xml文件,其保存在/data/data/PACKAGE_NAME/shared_prefs目录下。这里先列举在使用时的注意事项:1、SharedPreferences一经加载,它内部存储的数据就会以Map的形式一直保存在内存中,所以不宜存放大数据。2、获取SharedPreferences时,如果是初次加载,那么需要从文...

2021-04-10 17:56:34 115

原创 SharedPreferences源码分析

SharedPreferences是Android平台上轻量级的存储类,用来保存App的各种配置信息,其本质是一个以键值对(key-value)的方式保存数据的xml文件,其保存在/data/data/PACKAGE_NAME/shared_prefs目录下。这里先列举在使用时的注意事项:1、SharedPreferences一经加载,它内部存储的数据就会以Map的形式一直保存在内存中,所以不宜存放大数据。2、获取SharedPreferences时,如果是初次加载,那么需要从文...

2021-04-10 17:47:31 130

原创 工厂模式详解

定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。个人理解:顾名思义工厂模式就是按照工厂流水线的模式去生成产品,其设计思想就是提取产品的共性去制造流水线(接口包含的方法),之后创建一个工厂(工厂类)去包装这个流水线,最后通过工厂去制造具有这些共性的不同产品(产品实现接口,重写接口方法)。这就是工厂模式。工厂方法模式是创建型模式,工厂模式根据抽象程度可以分为三种:简单工厂模式,工厂方法模式,抽象工厂模式。一、简单工厂模式定义:简单工厂模式又叫做静态工厂方法模式。一个抽象产品类,可以派

2021-04-10 17:22:40 948

原创 依赖倒置原则

一、定义:这是开闭原则的基础,对接口编程,依赖于抽象而不依赖于具体。高层模块不应该依赖低层模块,应该去依赖抽象 抽象不应该依赖细节 细节应该依赖抽象 低层模块:每一个逻辑的实现都是由原子逻辑组成的,不可分割的原子逻辑就是低层模块(一般是接口,抽象类)。 高层模块:原子逻辑的组装就是高层模块。 抽象:指接口或抽象类,两者都不能被直接实例化。 细节:就是实现类,实现接口或继承抽象类而产生的类就是细节,可以被直接实例化。 目的:依赖倒置原则的目的是通过要面向接口

2021-04-10 17:03:23 952

原创 设计模式六大原则

设计模式共23种,分为创建型、行为型、结构型三大类。创建型:对类的现实化进行了抽象,能够使软件模块做到与对象的创建和组织无关。行为型:类和对象之间如何交互以及如何分配职责;关注对象与行为的分离、就是要把行为分离到类里面。结构型:描述类和对象之间如何进行有效的组织,以形成良好的软件体系结构,主要的方式是使用继承关系来组织各个类。设计模式总原则:开闭原则,即对扩展开放,对修改关闭。1.开放封闭原则(Open - ClosedPrinciple ,OCP)定义:一...

2021-04-10 16:59:33 2862 2

原创 关于Google账号被封、被下架、提审被拒等原因分析及建议

关于Google账号被封、被下架、提审被拒等原因分析及建议一、Google账号被封原因推测及建议。谷歌账号被封,Google公司发送的被封邮件中不会明确解释具体的被封原因,可以通过申诉的方式去获取具体被封原因,但是这个有几率得不到Google的回复,在发送申诉邮件时态度一定要诚恳,首先先承认自己错了,然后再表明自己认真阅读了开发者政策,最后在说明自己不太清楚违反了哪一个政策,希望能给到原因和建议等。推测会有以下几个原因:1、APK被判定为马甲包:APK在代码,UI,应用描述等方面和商店其他产

2021-04-10 16:53:26 9584 2

原创 OPPO,ViVO手机锁屏下弹出来电界面

使用声网进行的视频聊天,但是vivo手机在锁屏的情况下弹不出来视频来电界面,点HOME键退到后台时可以弹出来点界面;然而OPPO手机在锁屏和后台两种情况下都弹不出来电界面,经过多次测试发现vivo手机和OPPO不弹来电界面还不相同,需要分别处理。首先判断此应用和手机所处状态:a应用在前台;b应用在后台;c应用被杀死;d手机解锁状态,e手机锁屏状态,f手机亮屏状态(锁屏)vivo的处理方式:...

2018-09-06 15:49:19 5038 4

原创 集成小米,华为,魅族推送并和环信配合使用

项目中要做离线仍然能接受推送的功能,只能集成有系统通道的各大厂商的推送,环信上有小米和华为的集成,但是我司的服务端无法更改环信上的小米和华为推送的内容,只能显示“您有一条新消息”,无奈只能单独集成小米华为魅族推送。OPPO推送处于公测阶段且应用等级要达到OPPO规定的A级,只能以后再去添加,本文主要侧重集成时遇到的坑:小米推送:一.根据小米官网进行配置,文档写的比较详细,这里就提一下流...

2018-09-06 15:46:33 1034

空空如也

空空如也

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

TA关注的人

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