- 博客(77)
- 资源 (20)
- 收藏
- 关注
原创 java-Android-常用十大排序算法
排序就是将一组对象按照某种逻辑顺序重新排列的过程。比如,订单按照日期排序的——这种排序很可能使用了某种排序算法。现在计算机的广泛使用使得数据无处不在,而整理数据的第一步通常就是进行排序。学习排序算法三大实际意义IT从业人员必备技能,也是互联网公司面试的必考点其中包含的技术和思想也能有效解决其他类型的问题排序算法常常是我们解决其他问题的第一步图片来源于网络十大排序算法:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序、希尔排序、计数排序,基数排序,桶排序一、冒泡排序算法一种简单的排
2021-07-09 21:56:51 721 7
原创 Android的PackageManagerService10.0源码解读(AndroidManifest.xml解析)
Android的PackageManagerService10.0源码解读PackageManagerService 简称 PKMSPKMS简介PackageManagerService(简称 PKMS),是 Android 系统中核心服务之一,负责应用程序的安 装,卸载,信息查询,等工作。Android系统启动时,会启动(应用程序管理服务器PKMS),此服务负责扫描系统中特定的目录,寻找里面的APK格式的文件,并对这些文件进行解析,然后得到应用程序相关信息,最后完成应用程序的安装。PKMS在安
2021-06-20 00:54:10 798
原创 Android判断Activity是否在AndroidManifest.xml里面注册(源码分析)
Android判断Activity是否在AndroidManifest.xml里面注册(源码分析)这个问题相信大家在实际的开发中,都遇到过这个问题,答案就不用说了,在AndroidManifest.xml中添加Activity的注册,毕竟Activity属于四大组件之一,使用的时候,需要要在清单文件中注册。<activity android:name=".TargetActivity"></activity>但是这个出现这个问题的根源在哪里?下面我们就进入源码仔细看看。这
2021-06-14 17:34:10 5048 11
原创 Android性能优化之图片压缩综合解决方案
在Android中我们经常会遇到图片压缩的场景,比如给服务端上传图片,包括个人信息的用户头像,有时候人脸识别也需要捕获图片等等。这种情况下,我们都需要对图片做一定的处理,比如大小,尺寸等的压缩。常见的图片压缩方法质量压缩尺寸压缩libjpeg质量压缩首先我们要介绍一个api–Bitmap.compress()@WorkerThreadpublic boolean compress(CompressFormat format, int quality, OutputStream strea
2022-04-17 10:04:55 870 1
原创 Android的ActivityManagerService(简称AMS)的源码分析
Android的ActivityManagerService(简称AMS)的源码分析内容太多,建议收藏AMS简介ActivityManagerService是Android系统中一个特别重要的系统服务,也是我们上层APP打交道最多的系统服务之一。ActivityManagerService(以下简称AMS) 主要负责四大组件的启动、切换、调度以及应用进程的管理和调度工作,所有的APP应用都需要 与AMS打交道。Activity Manager的组成主要分为以下几个部分:服务代理:由Activit
2021-07-13 21:26:44 626 3
原创 Android的TabLayout右上角展示数量
先直接上图主要使用了TabLayout、ViewPager、Fragment这三个控件的使用就不多介绍了,如有不熟悉的朋友,可自行先去了解一下这三个控件的使用。activity_main的布局如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match
2021-06-11 11:20:30 664 2
原创 Android的动画效果类似翻书效果
Android的动画效果类似翻书效果主要用到了自定义view,动画和事件分发处理,滑动的。详细的代码已上传,有兴趣的朋友去下载体验。
2021-06-04 15:29:22 283
原创 Android:Kotlin详细入门学习指南-高阶函数-基础语法(七)
本人也是在初学Kotlin,如有错误,请帮忙指出,持续更新Android:Kotlin详细入门学习指南-高阶函数-基础语法(七)建议先看看前面的文章Android:Kotlin详细入门学习指南-基础语法(一)Android:Kotlin详细入门学习指南-基本类型-基础语法(二)Android:Kotlin详细入门学习指南-包-控制流-返回与跳转-基础语法(三)Android:Kotlin详细入门学习指南-类和对象(上)-基础语法(四)Android:Kotlin详细入门学习指南-类和对象(下)
2021-02-08 15:34:41 209 1
原创 Android:Kotlin详细入门学习指南-函数-基础语法(六)
本人也是在初学Kotlin,如有错误,请帮忙指出,持续更新Android:Kotlin详细入门学习指南-函数和lambda表达式-基础语法(六)建议先看看前面的文章Android:Kotlin详细入门学习指南-基础语法(一)Android:Kotlin详细入门学习指南-基本类型-基础语法(二)Android:Kotlin详细入门学习指南-包-控制流-返回与跳转-基础语法(三)Android:Kotlin详细入门学习指南-类和对象(上)-基础语法(四)Android:Kotlin详细入门学习指南
2021-02-04 12:32:21 169
原创 Android:Kotlin详细入门学习指南-类和对象(下)-基础语法(五)
本人也是在初学Kotlin,如有错误,请帮忙指出,持续更新Android:Kotlin详细入门学习指南-类和对象(下)-基础语法(五)建议先看看前面的文章Android:Kotlin详细入门学习指南-基础语法(一)Android:Kotlin详细入门学习指南-基本类型-基础语法(二)Android:Kotlin详细入门学习指南-包-控制流-返回与跳转-基础语法(三)Android:Kotlin详细入门学习指南-类和对象(上)-基础语法(四)这篇文章分享的内容比较多,建议先关注收藏,再查看,以免
2021-01-27 09:26:22 160
原创 Android:Kotlin详细入门学习指南-类和对象(上)-基础语法(四)
本人也是在初学Kotlin,如有错误,请帮忙指出,持续更新Android:Kotlin详细入门学习指南-类和对象-基础语法(四)建议先看看前面的文章Android:Kotlin详细入门学习指南-基础语法(一)Android:Kotlin详细入门学习指南-基本类型-基础语法(二)Android:Kotlin详细入门学习指南-包-控制流-返回与跳转-基础语法(三)这篇文章分享的内容比较多,建议先关注收藏,再查看,以免迷路类和对象类和继承属性和字段接口可见性修饰词扩展数据对象泛型嵌
2021-01-25 15:20:24 182 4
原创 Android:Kotlin详细入门学习指南-包-控制流-返回与跳转-基础语法(三)
本人也是在初学Kotlin,如有错误,请帮忙指出,持续更新Android:Kotlin详细入门学习指南-包-控制流-返回与跳转-基础语法(三)建议先看看前面的文章Android:Kotlin详细入门学习指南-基础语法(一)Android:Kotlin详细入门学习指南-基本类型-基础语法(二)这篇文章主要分享Kotlin中的-包-控制流-返回与跳转包一个源文件以包声明开始:package foo.bar fun bza() {} class Goo {}//...源文件的所有内容(比
2021-01-19 17:20:02 220
原创 Android:Kotlin详细入门学习指南-基本类型-基础语法(二)
Android:Kotlin详细入门学习指南-基本类型-基础语法(二)在 Kotlin 中,所有变量的成员方法和属性都是一个对象。一些类型是内建的,它们 的实现是优化过的,但对用户来说它们就像普通的类一样。...
2021-01-15 14:55:03 249
原创 Android:Kotlin详细入门学习指南-基础语法(一)
Android:Kotlin详细入门学习指南-基础语法(一)本人也是在初学Kotlin,如有错误,请帮忙指出,持续更新Kotlin被Google官方认为是Android开发的一级编程语言自 2019 年 Google I/O 以来,Kotlin 就成为了 Android 移动开发的首选。首先来看看Kotlin的基础语法Kotlin是什么Kotlin是Android开发的一级编程语言(Google官方认证)由JetBrains公司在2010年推出 & 开源,与Java语言互通 &a
2021-01-14 13:38:29 428
原创 Android与HTML-JS交互入门
现在的APP里面会嵌套一些h5酷炫的界面,而我们的app就需要和H5进行交互,下面我们就来看看怎么进行具体的交互。Webview的基本设置以下是webview的基本设置WebSettings setting = mWebView.getSettings();setting.setJavaScriptCanOpenWindowsAutomatically(true);//设置js可以直接打开窗口,如window.open(),默认为false setting.setJavaScript
2021-01-05 11:03:55 161
原创 Android-View的孪生兄弟---SurfaceView入门
SurfaceView入门为什么使用SurfaceViewAndroid已经提供了View绘图处理,View可以满足大部分的绘图场景,View通过刷新来重回视图,android系统通过发出VSYNC信号进行视图的重 绘,刷新间隔为16ms,超过16ms,我们可能就会感到卡顿了。对于逻辑太多,操作复杂的场景,频繁的刷新界面,就会阻塞主线程,也会导致界面卡顿。很多时候,我们在自定义View的Log日志看到这样的警告Skipped 47 frames! The application may be doi
2020-12-22 11:15:03 152
原创 Android刮刮乐效果-proterDuffXfermode
Android刮刮乐效果-proterDuffXfermode先看看实现的效果这个场景主要是模拟我们有些app里面的刮刮乐中奖的效果,主要是利用Android的proterDuffXfermode这个类去实现的。proterDuffXfermode在用Android中的Canvas进行绘图时,可以通过使用PorterDuffXfermode将所绘制的图形的像素与Canvas中对应位置的像素按照一定规则进行混合,形成新的像素值,从而更新Canvas中最终的像素颜色值,这样会创建很多有趣的效果。Port
2020-12-15 15:33:18 2093 12
原创 Android RxJava入门教程 & 简单原理分析
RxJavaGithub地址https://github.com/ReactiveX/RxJava** https://github.com/ReactiveX/RxAndroid**RxJava想必开发的朋友都听过这个框架,而最近几年也是非常的火热,到目前位置已经 Version 3.x。而做为Android开发的小伙伴,应该是比较熟悉了,retrofit + RxJava做为项目的主框架,实在是太多了,刚好现在也在学习这一块的东西,作为一个笔记,记录一下,相互学习一下,写的不好的地方,请各
2020-12-09 10:00:32 292
原创 Android常用屏幕适配方案和ConstraintLayout的使用
相信对于移动开发的小伙伴来说,屏幕适配并不陌生,在项目中应该都会遇到这个问题。比如说,在小米手机上显示很正常,而在华为手机上显示就有问题,这就是屏幕适配的问题。下面,我们就来详细了解一下有关屏幕适配的知识点。1、为什么要屏幕适配因为Android系统的开放性,任何用户、开发者、OEM厂商、运营商都可以对Android进行定制,于是导致运行 Android 的设备多种多样,它们有着不同的屏幕尺寸和像素密度。 尽管系统可通过基本的缩放和调整大小功能使界面适应不同屏幕,但是,有些情况却是不尽人意,我们开发
2020-11-12 23:09:52 888
原创 androidstudio搭建flutter环境,遇到的问题
flutter支持的开发工具有ieda和androidstudio,当然还有其它的,我只搭建了这两个环境。Windows环境下搭建1.Androidstudio的相关环境和搭建,还有jdk的环境变量,Android的sdk配置,这里就不说了,请自行解决,并能编译一个helloWorld的app。2.下载flutter的SDK https://flutter.io/sdk-archive,下载稳定版3.配置环境变量,在系统环境变量的Path里面配置 例如:D:\flutter\fl...
2020-08-04 19:38:56 640
原创 Android中使用fragment切换,避免出现重叠和叠影
在Android的主页面,我们一般就是以下几种方式(1)使用Fragment实现(2)使用ViewPage实现(3)使用ViewPage+FragmentPageAdapter(4)使用框架实现但是,如果使用fragment的时候,有时候会出现重叠,或者程序有问题,也会出现这个问题,主要是这个savedInstanceState,会在程序发生异常的时候保存状态。所以,我们要对这个方法进行处理在activity的onCreate()中判断//根据传入的Bundle对象判断Act
2020-08-03 10:36:14 772 4
原创 java基础-集合
Java 集合框架概述:Map接口继承树Collection 接口方法Iterator迭代器接口Iterator iter = coll.iterator();//回到起点while(iter.hasNext()){Object obj = iter.next();if(obj.equals("Tom")){iter.remove();} }public class ForTest {public st...
2020-05-29 20:54:19 219
原创 java基础-枚举和注解
枚举类的使用如何自定义枚举类 如何使用关键字enum定义枚举类 Enum类的主要方法 实现接口的枚举类类的对象只有有限个,确定的。举例如下: 星期:Monday(星期一)、......、Sunday(星期天) 性别:Man(男)、Woman(女) 季节:Spring(春节)......Winter(冬天) 支付方式:Cash(现金)、WeChatPay(微信)、Alipay(支付宝)、BankCard(银 行卡)、CreditCard(信用卡) 就职状态:...
2020-05-24 19:04:14 222
原创 java的线程和常用类
程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。进程(process)是程序的一次执行过程,或是正在运行的一个程序。是一个动态 的过程:有它自身的产生、存在和消亡的过程。——生命周期 如:运行中的QQ,运行中的MP3播放器 程序是静态的,进程是动态的 进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域 线程(thread),进程可进一步细化为线程,是一个程序内部的一条执行路径。 .
2020-05-17 11:34:40 666
原创 java-基础-异常处理
1.异常概述与异常体系结构在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避 免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持 通畅等等。异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。 (开发过程中的语法错误和逻辑错误不是异常) Java程序在执行过程中所发生的异常事件可分为两类: Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源 ..
2020-05-10 09:41:58 180
原创 java基础-static-final-接口
1.关键字:static当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象, 其方法才可以供外部调用。我们有时候希望无论是否产生了对象或无论产生了多少 对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都有个国家名称,每一个中国人都共享这个国家名称,不必在每一个中国人的实例对象中 都单独分配一个用于代表国家名称的变量。类属性、类方法的设计思想类属性作为该类各个对..
2020-05-09 20:28:25 150
原创 java基础-继承和多态
继承性为什么要有继承? 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中, 那么多个类无需再定义这些属性和行为,只要继承那个类即可。 此处的多个类称为子类(派生类),单独的这个类称为父类(基类 或超类)。可以理解为:“子类 is a 父类” 类继承语法规则: class Subclass extends SuperClass{ }作用: 继承的出现...
2020-05-07 22:27:04 143
原创 java基础-面向对象
面向对象内容的三条主线1.Java类及类的成员 2.面向对象的三大特征 3.其它关键字目录:面向过程与面向对象 1.面向过程和面向对象2.java基本元素:类和对象3.对象的创建和使用4.类的成员之一:属性5.类的成员之二:方法6.类的成员之三:构造器7.OOP特征一:封装与隐藏8.关键字 this,package, import面面关...
2020-05-05 10:59:37 276
原创 java基础-数组
1.数组的概述数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理。 数组的常见概念 数组名 下标(或索引) 元素 数组的长度数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。 创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是 这块连续空间的...
2020-05-04 10:37:55 214
原创 java基础语法(下)
1.程序流程控制• 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组 合成能完成一定功能的小逻辑模块。 • 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即: l顺序结构 Ø程序从上到下逐行地执行,中间没有任何判断和跳转。 l分支结构 Ø根据条件,选择性地执行某段代码。 Ø有if…else和switch-case两种分支语句。 l循环结...
2020-05-03 11:05:16 1112
原创 Fragment实现懒加载
主要是Fragment实现懒加载,直接继承此类即可,import android.os.Bundle;import android.support.annotation.NonNull;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.vi...
2020-03-28 11:58:39 461
原创 Android种RadioGroup和fragment的切换
话不多说,上图,扫一扫,读一读,来回切换,根据自己的需要,可做相应的修改第一步:布局文件:activity_read_and_write<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...
2019-09-18 09:57:28 231
原创 DialogPlus实现版本升级下载的弹框dialog样式
先上效果图,升级带下载功能第一步:加入依赖implementation 'com.orhanobut:dialogplus:1.11@aar'第二步实现布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/re...
2019-09-12 09:34:20 845 5
原创 Android自定义dialog的实现
1.先看效果图 ,直接按照demo粘贴复制修改即可2.主要类文件public class UsualDialogger extends Dialog { private final String TITLE; private final String MESSAGE; private final String CONFIRMTEXT; private...
2019-09-11 16:46:30 244
原创 Android开发者Hanlder避免内存泄漏,采用静态内部类+弱引用的方式(非静态内部类导致内存泄露)
非静态内部类(包括匿名内部类)默认就会持有外部类的引用,当非静态内部类对象的生命周期 比外部类对象的生命周期长时,就会导致内存泄露。非静态内部类导致的内存泄露在 Android 开发中有一种典型的场景就是使用 Handler,很多开发 者在使用 Handler 是这样写的:public class MainActivity extends AppCompatActivity {@Ove...
2019-08-21 23:15:48 766
原创 Android运行时权限申请Easypermissions简单使用
Easypermissions是运行时权限申请的一个库,使用起来非常简单第一步:在build.gradle里面添加implementation "pub.devrel:easypermissions:2.0.1"第二步:在需要使用的activity里面实现,implements EasyPermissions.PermissionCallbacks第三步:代码使用,在on...
2019-08-21 13:36:08 806
原创 百度地图详解使用,显示自己的当前位置BaiduMap
第一步:注册百度开发者账号 http://lbsyun.baidu.com/,下载对应的jar和Key第二步:创建应用填写正确的SHA1和应用的包名,并且下载第三步:解压上面的SDK_Lib压缩包文件libs下放入jar包,并且添加到依赖main下面新建文件夹JNIlibs放入这些文件第四步:AndroidManifest.xml文件配置加入所需要的权限...
2019-07-27 20:20:24 1636
原创 Android如何防止异常奔溃以及拿到crash日志,处理线上问题定位
Android中防止程序崩溃,以及拿到crash日志分析定位1.添加该工具类方法public class CrashProtectManager { private static CrashProtectManager mInstance; private static Context mContext; private CrashProtectManage...
2019-06-30 22:33:16 844
原创 Android中自定义view,onTouchEvent的事件不触发,请大佬看看为什么?
package com.yuan.refresh;import android.content.Context;import android.support.annotation.Nullable;import android.util.AttributeSet;import android.util.Log;import android.view.MotionEvent;impo...
2019-06-09 14:44:59 4479
原创 java中对象的序列化和反序列化
一、概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。二、具体操作java.io.ObjectOutputStream代表对象输出流,它的writeObject(Object ob...
2019-06-01 20:52:47 105
ConstraintLayout的layout布局文件
2020-11-13
BottomBar.rar
2020-08-03
BottomNavigation_fragment.zip
2020-01-05
android框架搭建radiogroup+fragment
2019-06-30
android_实战_联系人
2018-11-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人