自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(117)
  • 资源 (8)
  • 收藏
  • 关注

原创 android interview 2

这里介绍和java关联比较大的知识类加载机制java的类加载机制在 Java 程序启动的时候,并不会一次性加载程序中所有的 .class 文件,而是在程序的运行过程中,动态地加载相应的类到内存中。通常情况下,Java 程序中的 .class 文件会在以下 2 种情况下被 ClassLoader 主动加载到内存中:调用类构造器调用类中的静态(static)变量或者静态方法JVM 中自带 3 个类加载器:启动类加载器 BootstrapClassLoader扩展类加载器 ExtClass

2021-03-21 14:32:23 71

原创 android难点汇总

Handler了解Handler的原理。梳理Android的消息机制谈谈handler容易导致内存泄漏的原因。private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { ... } };当使用内部类(包括匿名类)来创建Handler的时候,Handler对象会隐式地持有Activity的引用

2020-10-19 17:44:45 236

原创 android开发常见编译错误

databinding在xml中使用汉语的错误报错信息Caused by: org.apache.xerces.impl.io.MalformedByteSequenceException: Invalid byte 3 of 3-byte UTF-8属于不同平台下,字符集不同导致的。xml使用的字符常量,还是要定义在strings.xml中。解决方案:见 传送门1 传送门2...

2020-07-23 10:59:59 355

原创 android问题汇总

组件Fragment State Loss参考:让你不再俱怕 Fragment State Loss

2020-06-22 09:44:17 120

原创 Gradle for Android 浅析

概述Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。Gradle可以做哪些事呢差异管理多渠道打包,根据渠道的不同实现差异化(例如,不同的签名文件,不同的icon,不同的服务器地址)等。依赖管理我们的应用可以依赖不同的jar, library. 你当然可以通过将.jar/library工程下载到本

2020-06-19 17:50:50 245

原创 dataBinding总结

简介dataBinding是android支持的一种MVVM框架,使代码逻辑结构更为清晰。使用将layout变为dataBinding的结构。打开布局文件,选中根布局的 ViewGroup,按住 Alt + 回车键,点击 “Convert to data binding layout”<?xml version="1.0" encoding="utf-8"?><layo...

2019-08-27 18:36:15 150

原创 Android框架搭建

开源框架动态权限使用Google的框架Easypermissions, 传送门Activity生命周期全局监听对activity的生命周期检测,例如退后台等的检测,可以在Application中registerActivityLifecycleCallbackspublic class MyApplication extends Application { @Override...

2019-08-14 18:04:22 117

原创 adb命令总结

adb基础查看连接adb的设备adb devicesadb服务打开与关闭adb start-server adb kill-server 重启手机adb reboot安装卸载adb install xxx.apkadb install -r xxx.apk //保留数据和缓存文件,重新安装apkadb uninstall &amp;amp;lt;package_name...

2018-12-29 22:06:53 2870 2

原创 android APP内存优化

出厂后,java虚拟机对单个应用的最大内存分配就确定下来了,超出这个值就会。如果要获取手机的总内存,可以使用如下方法。针对不同手机获取app内存信息,可通过。不同厂商和机型可能不一样。.单个进程能使用的最大内存为。在代码中获取可使用的最大内存。可以使用更大的内存, 即。配置使用最大内存,在。

2023-08-10 11:53:44 1037

原创 ViewPager+Fragment 销毁重建问题

保存的引用调用,出现了崩溃 (此时的。等生命周期方法,不能拿来用)。查找,使用查找到的进行展示。保存的值 与 真实展示的。并不是使用新建,而是从。保存的,直接使用会出错。

2023-07-07 15:02:10 739

原创 Android 包体积优化

点击菜单栏的Code,选择Analyze Code -> Run Ispection by Name。这个“app”即你的项目,下面的每个item都是无用资源文件,逐个删除即可。看下哪部分占有的空间比较大,会自动按照文件大小逆向排序。

2023-06-27 18:10:54 261

原创 flutter学习之Dart语言

Dart是由谷歌开发的计算机编程语言,它可以被用于web、服务器、移动应用 和物联网等领域的开发。Dart诞生于2011年,号称要取代JavaScript。但是过去的几年中一直不温不火。直到Flutter的出现现在被人们重新重视。要学Flutter的话我们必须首先得会Dart.

2023-04-13 11:53:16 646

原创 android WebView常用总结

常用方法webview 官方文档:传送门WebView wv = findViewById(R.id.web_view);WebSettings settings = getSettings();settings.setJavaScriptEnabled(true); //启用js//设置缓存模式,缓存模式如下settings.setCacheMode(WebSettings.LOAD_DEFAULT);缓存的模式WebSettings.LOAD_DEFAULT 如果本地缓存可用且没有过

2022-04-12 17:27:10 3063

原创 TabLayout使用总结-一步步实现动画效果

期望效果根据UI设计,我们期望实现一个如下效果的Layout,看效果很适合用ViewPager+TabLayoutTabLayout学习在开始动手前我们先了解下TabLayout. 他的实现是通过HorizontalScrollView,里面添加了一个view即SlidingTabIndicator,我们看到的指示器是通过drawable的绘制实现的。TabLayout支持了很多属性。具体可参考源码,注释部分对属性介绍很详细。这里我们总结了一些常用的属性。tabMode Tablayout的

2021-06-08 17:07:56 1834

原创 OKHttp相关笔记

简介使用Retrofit

2021-05-07 19:06:54 253

原创 Kotlin协程笔记

概述在Kotlin中,协程是一套由Kotlin官方提供的线程API。它有优点:可以通过看似同步的方式写出异步代码。这也是协程的特性之一 非阻塞式挂起。可以解决地狱回调的问题。例如,如下代码形式launch({ val user = api.getUser() // ???? 网络请求(IO 线程) nameTv.text = user.name // ???? 更新 UI(主线程)})协程的使用在需要切换线程或者指定线程的时候 用到协程。怎么来使用协程,先了解最基

2021-05-06 23:35:39 118

原创 wsl搭建android编译环境

概述在windows下,我们不太好执行一些脚本,像shell,如果之前项目有写过一些脚本,为了兼容windows可以通过搭建wsl环境,来执行。准备工作windows安装wsl通过windows应用商店安装,在windows应用商店搜索linux或者wsl,选择Unbuntu或者其他linux系统。然后执行起来,就是一个linux系统。我们的C盘,D盘,分别对应,linux的/mnt/c,/mnt/d 目录。其他目录同Linux,需要对Linux有一定的了解。熟悉linux的一些命令wsl 是

2021-01-15 11:02:21 1303

原创 Window10 恢复应用商店

如果win10找不到应用商店,可以通过以下方法恢复。启动PowerShell需要以管理员权限运行在“开始”菜单,输入powerShell,右键以管理员权限执行。找到你的windowsStore 安装目录每个系统对应的包名不同,安装目录也不相同, 通过下面命令查看Get-AppxPackage -allusers如上图所示,把Name=Microsoft.WindowsStore的目录拷贝下来,接下来要用。添加到注册文件执行如下命令,等命令执行完,即可在“开始”菜单找到,windows应用

2021-01-13 10:18:50 374

原创 android interview

为什么不建议使用Intent传递大的数据Intent 传递大数据,会出现 TransactionTooLargeException 的场景。简单来说,Intent 传输数据的机制中,用到了 Binder。Intent 中的数据,会作为 Parcel 被存储在 Binder 的事务缓冲区(Binder transaction buffer)中的对象进行传输。而这个 Binder 事务缓冲区具有一个有限的固定大小,当前为 1MB。你可别以为传递 1MB 以下的数据就安全了,这里的 1MB 空间并不是当前操

2020-12-30 17:46:41 234

原创 android jetpack总结

LivedataLiveData 是一个可被观察的数据持有类。与普通的被观察者(如 RxJava 中的 Observable)不同的是,LiveData 是生命周期感知的,也就是说,它能感知其它应用组件(Activity,Fragment,Service)的生命周期。这种感知能力可以确保只有处于 active 状态的组件才能收到 LiveData 的更新。LiveData 是一个抽象类,我们不能直接使用。我们可以使用它的子类:MutableLiveData MediatorLiveDataMutab

2020-12-30 16:05:35 165 2

原创 android proguard

基本操作android混淆是为了代码安全。在build.gradle中可以配置。buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } }如上,将minifyEnabled设为true就开启了混淆。

2020-11-05 14:54:14 136

原创 rxJava使用总结

参考资料RxJava 实际应用讲解:网络请求出错重连RxJava:最基础的操作符详解

2020-07-09 18:39:31 108

原创 Gradle for Android groovy篇

命令行我们在Android Studio中,打开底部 Terminal tab页,就可以使用命令来操作了,例如git,gradle等。gradle的命令工具是 gradlew.在不同系统下,命令引用略有区别。在linux, macOs下,执行命令,./gradlew xxx 在windows下执行命令gradlew xxxgradle常用命令./gradlew tasks #查看主要任务./gradlew tasks --all #查看所有任务,包括缓存任务等./gradlew :modu

2020-06-24 18:29:08 185

原创 Gson使用总结

简单使用gson.fromJson(str, User.class);gson.toJson(obj);@SerializedName //容错(字段容错)泛型擦除问题。List<String>, 使用TypeToken.个性化配置,GsonBuilder@Expose //过滤 , 需要在build中配置生效。@Since @Until 版本号管理。需要在build中配置版本号。TypeAdapter, 自定义解析。参考资料你真的会用Gson吗?Gson使用指南...

2020-05-28 18:14:59 173

原创 Java注解(Annotation)笔记

概述Annotation 可以标注 Java 语言中的类、方法、变量、参数和包等。和 Javadoc 不同的是:Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。内置的注解Java 定义了一套注解,共有 7 个,3 个在 java.lang 中,剩下 4 个在 java.lang.annotation(元注解) 中。@Override,@Deprecated ,@SuppressWarnings

2020-05-28 13:58:14 119

原创 python并发之协程

概述协程(Coroutine) 协程的作用,是在执行函数A时,可以随时中断,去执行函数B,然后中断继续执行函数A(可以自由切换)。但这一过程并不是函数调用(没有调用语句),这一整个过程看似像多线程,然而协程只有一个线程执行。协程有以下优势:执行效率极高。因为子程序切换(函数)不是线程切换,由程序自身控制,没有切换线程的开销。不需要多线程的锁机制,因为只有一个线程,也不存在同时写变量冲突,...

2020-04-27 18:21:32 177

原创 Android高质量开发

关于崩溃Android 崩溃分为 Java 崩溃和 Native 崩溃。Native 崩溃捕获中最成熟的方案。使用Breakpad (传送门)工具。ANR(Application Not Responding,程序没有响应)这问题。怎么去发现应用中的 ANR 异常呢?使用 FileObserver 监听 /data/anr/traces.txt 的变化。非常不幸的是,很多高版本的 ROM...

2020-04-21 15:28:37 130

原创 python常用第三方模块

Pillow强大的图片处理库。如果安装了Anaconda,Pillow就已经可用了。否则,需要在命令行下通过pip安装:$ pip install pillowfrom PIL import Image# 打开一个jpg图像文件,注意是当前路径:im = Image.open('test.jpg')# 获得图像尺寸:w, h = im.sizeprint('Original ...

2020-04-14 18:35:23 275

原创 python内建模块

datetimefrom datetime import datetime, timedelta, timezone#测试datetimenow = datetime.now()#创建时间by数字dt = datetime(1970, 2, 28, 20, 10, 50)#创建时间by stringdt = datetime.strptime('2015/06/01 18:19:5...

2020-04-13 17:27:26 201

原创 python进程、线程

python多进程编程forkUnix/Linux操作系统提供了一个fork()系统调用,他会返回两次,pid==0表示子进程,pid>0表示父进程。import osprint('Process (%s) start...' % os.getpid())# Only works on Unix/Linux/Mac:pid = os.fork()if pid == 0: ...

2020-04-10 18:34:54 111

原创 python IO编程

文件读写open(path, 'mode')打开文件mode的含义 r读取文本文件,rb读取二进制文件f.read()方法,默认读取全部文本,也可以指定大小。f.readline()方法,每次读取一行,readlines()读取全部内容注意一定要调用关闭方法f.close()# 读取文本文件try: f = open("d:/source/pythonLearn/pyth...

2020-04-09 11:56:25 86

原创 python错误处理与调试

错误处理python有一套 try...except...finally...来处理错误,相当于Java的异常,finally最终,都会执行# 错误处理try: print('try...') r = 10 / 0 print('result:', r)except ZeroDivisionError as e: print('except:', e)fi...

2020-04-08 18:12:45 98

原创 python面向对象编程

类python类,构造方法是固定的__init__ ,所有方法第一参数都是self表示本身,调用的时候,并不需求传selfclass Student(object): def __init__(self, name, score): self.name = name self.score = score def get_grade(self):...

2020-04-07 17:28:09 106

原创 Python函数式编程

函数式编程的理解函数本身也是变量,可以吧函数本身作为参数传入另一个函数,还允许返回一个函数。高阶函数map映射,map(fun, iterable) fun为映射规则 iterable为可迭代的变量。例如,将[1, 2, 3…9]转化为[1, 4, 9, … 81]#可以使用生成序列[x*x for x in range[1, 10]]#现在使用mapdef f(x): ...

2020-04-05 17:21:20 81

原创 Python的高级特性

切片切片用于截取数组的一个片段,可用于list, tuple, string表示方法[start, end] 截取[start, end)片段,注意不包含endstart可以省略,省略表示默认0end可以省略,省略表示到结尾L=list(range(10)) #创建一个list,[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]L[3:5] #表示截取L[3]-L[5],...

2020-04-04 17:14:17 106

原创 Python函数

python内置函数int('123') #转化为int,返回 123int(12.34) #转化为int, 返回12float('12.34') #转化为float,返回12.34str(1.23) #转化为string,返回 '1.23'自定义函数格式在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的...

2020-04-03 18:35:05 107

原创 Python基础语法

Python的数据类型python变量,不用声明类型,且变量可以赋值不同类型。python的整数没有大小限制.python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。# 整数a=100a=0xff00#浮点数a=3.14a=1.23e9 #相当10的9次方#字符串a="abc"a='abc'a='I\'m OK'#布尔值a=Truea=...

2020-04-03 17:23:21 123

原创 Python HelloWorld

实现第一个Python 程序命令行模式即windows的cmd模式在命令行模式下,可以执行python文件。python xxx.pyPython交互模式在命令行模式下,敲命令python,就进入了python交互模式。退出交互模式eixt()输入输出name = input() #用户输入print('hello,', name) #打印,遇到逗号会输出一个空格name ...

2020-04-03 15:14:35 93

原创 window批处理bat命令

简介批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务。可用于简化很多重复工作。类似于Unix的Shell脚本。windows 下批处理文件的扩展名为bat.bat命令具体查看某个命令的用法 dos下输入 [com] + /? 即可ECHO @ REM@ #关闭当前行回显echo on #从下一行开始,打开回显echo off #从下一行开...

2020-04-01 17:54:49 755

原创 android刘海屏的适配

场景沉浸式场景,由于刘海屏,刘海位置会对内容有遮挡,为了让内容展示完全,需要对刘海屏进行适配。刘海屏 宽度、高度形状均略有差异,适配难度也比较高。如下图,适配即处理好Notch遮挡,与耳朵区显示问题。适配android P开始提供刘海屏相关api.针对android P及以后的版本,可以使用android API适配。 但有些厂商(小米,华为等)在android P之前(android ...

2020-03-18 18:37:54 312

RSA加密、解密、签名、验签小工具

可执行jar文件,需要jdk环境,谢谢!RSA加密、解密、签名、验证签名工具。

2017-07-25

基于jquery tabs切换源码

基于jquery tabs切换源码,demo实现了不同的切换方式,代码精简值得参考

2014-03-18

基于jquery的accord源码实现

基于jquery的accord源码实现 代码简单,很有借鉴价值

2014-03-13

电子设计竞赛B题--声音导引系统 2009

电子设计竞赛,优秀论文,历届电子设计竞赛精品,指导,学习之佳作

2011-07-21

2009电子设计竞赛 A题--光伏并网发电模拟装置 论文

电子设计竞赛,优秀论文,参考与指导必备。历届电子设计竞赛精品。

2011-07-21

数据库系统概论 第四版 课后答案

数据库 高等教育出版社 第四版 课后答案。大学教材类,辅助用书

2011-05-14

空空如也

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

TA关注的人

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