android
文章平均质量分 78
拖鞋王子猪
公众号 拖鞋王子猪 欢迎您的光临
展开
-
Android的ActivityManagerService(简称AMS)的源码分析
Android的ActivityManagerService(简称AMS)的源码分析内容太多,建议收藏AMS简介ActivityManagerService是Android系统中一个特别重要的系统服务,也是我们上层APP打交道最多的系统服务之一。ActivityManagerService(以下简称AMS) 主要负责四大组件的启动、切换、调度以及应用进程的管理和调度工作,所有的APP应用都需要 与AMS打交道。Activity Manager的组成主要分为以下几个部分:服务代理:由Activit原创 2021-07-13 21:26:44 · 615 阅读 · 3 评论 -
Android的PackageManagerService10.0源码解读(AndroidManifest.xml解析)
Android的PackageManagerService10.0源码解读PackageManagerService 简称 PKMSPKMS简介PackageManagerService(简称 PKMS),是 Android 系统中核心服务之一,负责应用程序的安 装,卸载,信息查询,等工作。Android系统启动时,会启动(应用程序管理服务器PKMS),此服务负责扫描系统中特定的目录,寻找里面的APK格式的文件,并对这些文件进行解析,然后得到应用程序相关信息,最后完成应用程序的安装。PKMS在安原创 2021-06-20 00:54:10 · 795 阅读 · 0 评论 -
Android判断Activity是否在AndroidManifest.xml里面注册(源码分析)
Android判断Activity是否在AndroidManifest.xml里面注册(源码分析)这个问题相信大家在实际的开发中,都遇到过这个问题,答案就不用说了,在AndroidManifest.xml中添加Activity的注册,毕竟Activity属于四大组件之一,使用的时候,需要要在清单文件中注册。<activity android:name=".TargetActivity"></activity>但是这个出现这个问题的根源在哪里?下面我们就进入源码仔细看看。这原创 2021-06-14 17:34:10 · 5040 阅读 · 11 评论 -
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 · 661 阅读 · 2 评论 -
Android的动画效果类似翻书效果
Android的动画效果类似翻书效果主要用到了自定义view,动画和事件分发处理,滑动的。详细的代码已上传,有兴趣的朋友去下载体验。原创 2021-06-04 15:29:22 · 278 阅读 · 0 评论 -
Android:Kotlin详细入门学习指南-高阶函数-基础语法(七)
本人也是在初学Kotlin,如有错误,请帮忙指出,持续更新Android:Kotlin详细入门学习指南-高阶函数-基础语法(七)建议先看看前面的文章Android:Kotlin详细入门学习指南-基础语法(一)Android:Kotlin详细入门学习指南-基本类型-基础语法(二)Android:Kotlin详细入门学习指南-包-控制流-返回与跳转-基础语法(三)Android:Kotlin详细入门学习指南-类和对象(上)-基础语法(四)Android:Kotlin详细入门学习指南-类和对象(下)原创 2021-02-08 15:34:41 · 207 阅读 · 1 评论 -
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 · 423 阅读 · 0 评论 -
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 · 159 阅读 · 0 评论 -
Android刮刮乐效果-proterDuffXfermode
Android刮刮乐效果-proterDuffXfermode先看看实现的效果这个场景主要是模拟我们有些app里面的刮刮乐中奖的效果,主要是利用Android的proterDuffXfermode这个类去实现的。proterDuffXfermode在用Android中的Canvas进行绘图时,可以通过使用PorterDuffXfermode将所绘制的图形的像素与Canvas中对应位置的像素按照一定规则进行混合,形成新的像素值,从而更新Canvas中最终的像素颜色值,这样会创建很多有趣的效果。Port原创 2020-12-15 15:33:18 · 2090 阅读 · 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 · 288 阅读 · 0 评论 -
Android常用屏幕适配方案和ConstraintLayout的使用
相信对于移动开发的小伙伴来说,屏幕适配并不陌生,在项目中应该都会遇到这个问题。比如说,在小米手机上显示很正常,而在华为手机上显示就有问题,这就是屏幕适配的问题。下面,我们就来详细了解一下有关屏幕适配的知识点。1、为什么要屏幕适配因为Android系统的开放性,任何用户、开发者、OEM厂商、运营商都可以对Android进行定制,于是导致运行 Android 的设备多种多样,它们有着不同的屏幕尺寸和像素密度。 尽管系统可通过基本的缩放和调整大小功能使界面适应不同屏幕,但是,有些情况却是不尽人意,我们开发原创 2020-11-12 23:09:52 · 885 阅读 · 0 评论 -
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 · 634 阅读 · 0 评论 -
Android中使用fragment切换,避免出现重叠和叠影
在Android的主页面,我们一般就是以下几种方式(1)使用Fragment实现(2)使用ViewPage实现(3)使用ViewPage+FragmentPageAdapter(4)使用框架实现但是,如果使用fragment的时候,有时候会出现重叠,或者程序有问题,也会出现这个问题,主要是这个savedInstanceState,会在程序发生异常的时候保存状态。所以,我们要对这个方法进行处理在activity的onCreate()中判断//根据传入的Bundle对象判断Act原创 2020-08-03 10:36:14 · 767 阅读 · 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 · 215 阅读 · 0 评论 -
java基础-枚举和注解
枚举类的使用如何自定义枚举类 如何使用关键字enum定义枚举类 Enum类的主要方法 实现接口的枚举类类的对象只有有限个,确定的。举例如下: 星期:Monday(星期一)、......、Sunday(星期天) 性别:Man(男)、Woman(女) 季节:Spring(春节)......Winter(冬天) 支付方式:Cash(现金)、WeChatPay(微信)、Alipay(支付宝)、BankCard(银 行卡)、CreditCard(信用卡) 就职状态:...原创 2020-05-24 19:04:14 · 218 阅读 · 0 评论 -
java的线程和常用类
程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。进程(process)是程序的一次执行过程,或是正在运行的一个程序。是一个动态 的过程:有它自身的产生、存在和消亡的过程。——生命周期 如:运行中的QQ,运行中的MP3播放器 程序是静态的,进程是动态的 进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域 线程(thread),进程可进一步细化为线程,是一个程序内部的一条执行路径。 .原创 2020-05-17 11:34:40 · 664 阅读 · 0 评论 -
java-基础-异常处理
1.异常概述与异常体系结构在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避 免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持 通畅等等。异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。 (开发过程中的语法错误和逻辑错误不是异常) Java程序在执行过程中所发生的异常事件可分为两类: Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源 ..原创 2020-05-10 09:41:58 · 178 阅读 · 0 评论 -
java基础-static-final-接口
1.关键字:static当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象, 其方法才可以供外部调用。我们有时候希望无论是否产生了对象或无论产生了多少 对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都有个国家名称,每一个中国人都共享这个国家名称,不必在每一个中国人的实例对象中 都单独分配一个用于代表国家名称的变量。类属性、类方法的设计思想类属性作为该类各个对..原创 2020-05-09 20:28:25 · 145 阅读 · 0 评论 -
java基础-继承和多态
继承性为什么要有继承? 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中, 那么多个类无需再定义这些属性和行为,只要继承那个类即可。 此处的多个类称为子类(派生类),单独的这个类称为父类(基类 或超类)。可以理解为:“子类 is a 父类” 类继承语法规则: class Subclass extends SuperClass{ }作用: 继承的出现...原创 2020-05-07 22:27:04 · 143 阅读 · 0 评论 -
java基础-面向对象
面向对象内容的三条主线1.Java类及类的成员 2.面向对象的三大特征 3.其它关键字目录:面向过程与面向对象 1.面向过程和面向对象2.java基本元素:类和对象3.对象的创建和使用4.类的成员之一:属性5.类的成员之二:方法6.类的成员之三:构造器7.OOP特征一:封装与隐藏8.关键字 this,package, import面面关...原创 2020-05-05 10:59:37 · 270 阅读 · 0 评论 -
java基础-数组
1.数组的概述数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理。 数组的常见概念 数组名 下标(或索引) 元素 数组的长度数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。 创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是 这块连续空间的...原创 2020-05-04 10:37:55 · 212 阅读 · 0 评论 -
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 · 460 阅读 · 0 评论 -
Android开发者Hanlder避免内存泄漏,采用静态内部类+弱引用的方式(非静态内部类导致内存泄露)
非静态内部类(包括匿名内部类)默认就会持有外部类的引用,当非静态内部类对象的生命周期 比外部类对象的生命周期长时,就会导致内存泄露。非静态内部类导致的内存泄露在 Android 开发中有一种典型的场景就是使用 Handler,很多开发 者在使用 Handler 是这样写的:public class MainActivity extends AppCompatActivity {@Ove...原创 2019-08-21 23:15:48 · 763 阅读 · 0 评论 -
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 · 243 阅读 · 0 评论 -
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 · 839 阅读 · 5 评论 -
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 · 230 阅读 · 0 评论 -
android解析XML的三种方式 DOM、SAX、PULL
第一种DOM是全部解析出来,消耗内存空间<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layou...原创 2018-11-18 14:58:44 · 201 阅读 · 0 评论 -
android中dp与px的转换
public classDensityUtil { /** * 根据手机的分辨率从dip的单位 转成为px(像素) */ public static intdip2px(Context context,floatdpValue) { final floatscale = context.getResour原创 2018-06-24 22:56:33 · 145 阅读 · 0 评论 -
Android运行时权限申请Easypermissions简单使用
Easypermissions是运行时权限申请的一个库,使用起来非常简单第一步:在build.gradle里面添加implementation "pub.devrel:easypermissions:2.0.1"第二步:在需要使用的activity里面实现,implements EasyPermissions.PermissionCallbacks第三步:代码使用,在on...原创 2019-08-21 13:36:08 · 803 阅读 · 0 评论 -
百度地图详解使用,显示自己的当前位置BaiduMap
第一步:注册百度开发者账号 http://lbsyun.baidu.com/,下载对应的jar和Key第二步:创建应用填写正确的SHA1和应用的包名,并且下载第三步:解压上面的SDK_Lib压缩包文件libs下放入jar包,并且添加到依赖main下面新建文件夹JNIlibs放入这些文件第四步:AndroidManifest.xml文件配置加入所需要的权限...原创 2019-07-27 20:20:24 · 1621 阅读 · 0 评论 -
Android如何防止异常奔溃以及拿到crash日志,处理线上问题定位
Android中防止程序崩溃,以及拿到crash日志分析定位1.添加该工具类方法public class CrashProtectManager { private static CrashProtectManager mInstance; private static Context mContext; private CrashProtectManage...原创 2019-06-30 22:33:16 · 841 阅读 · 0 评论 -
android导入第三方v4与v7冲突的解决办法
第一种:添加依赖 implementation 'com.squareup.picasso:picasso:2.71828' 第二种:除掉v7中的v4包 implementation('com.android.support:appcompat-v7:23.3.0') { exclude module: 'support-v4' } 第三种: impl...原创 2018-06-27 22:00:37 · 1880 阅读 · 0 评论 -
TextView实现跑马灯效果
第一种方法textview.xml<TextViewandroid:id="@+id/tv_product_title"android:layout_width="match_parent"android:layout_height="wrap_content"android:singleLine="true"android:ellipsize="marquee"android:t..原创 2018-07-01 22:22:16 · 1484 阅读 · 0 评论 -
androidstudio在引用依赖的时候出现 Cannot find declaration to go to
在引用com.viewpagerindicator.TabPageIndicator这个依赖的时候,按住CTRL+鼠标左键不能进入里面的源代码,经过仔细检查之后,发现是自己的viewpagerindicator单词没有写正确,修改之后就可以。系统也会提示是xml的文件写错了,这个时候,就应该好好检查xml的布局文件代码和单词拼写。...原创 2018-07-01 17:59:59 · 3167 阅读 · 0 评论 -
Activity的使用
1.概述 :作用 ①界面 ②与用户交互2.组件的特点:①继承父类或实现接口 ②需要注册 ③对象是系统创建的④生命周期方法的自动调用3.如何声明一个activity4.启动 ①startActivity(intent) ②Activity1:startActivityForResult(int requestCode,Intent intent) ...原创 2018-06-25 21:40:00 · 535 阅读 · 0 评论 -
android从后台获取环形进度值progress
效果图 :里面的90%都是后台获取的,进度条会有变化的。第一步:自定义属性 attrs.xml文件<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="RoundProgress"> <attr name="roundCo原创 2018-06-30 12:05:33 · 708 阅读 · 0 评论 -
android 设置全屏的三种方式
一:动态编码的方式:// 去掉窗口标题requestWindowFeature(Window.FEATURE_NO_TITLE);// 隐藏顶部的状态栏getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView();二:android:theme="@android:style/Theme.Blac...原创 2018-06-24 22:50:22 · 10110 阅读 · 0 评论 -
android中导入第三库的三种方式
第一种 :直接在build.gradle文件中添加依赖第二种:添加.jar第三种:导入第三方库的module原创 2018-06-24 19:33:51 · 254 阅读 · 0 评论 -
android中okhttp的使用
1.1 okhttp简介(原生)OKHttp是一款高效的HTTP客户端,支持连接同一地址的链接共享同一个socket,通过连接池来减小响应延迟,还有透明的GZIP压缩,请求缓存等优势,其核心主要有路由、连接协议、拦截器、代理、安全性认证、连接池以及网络适配,拦截器主要是指添加,移除或者转换请求或者回应的头部信息这个库也是square开源的一个网络请求库(okhttp内部依赖okio原创 2016-10-12 09:40:29 · 855 阅读 · 0 评论 -
android json原生解析
//将json格式的字符串{}转换成java对象private void jsonToJavaObjectByNative() { //获取或者创建json数据 String json = "{\n" + "\t\"id\":2,\"name\":\"大虾\",\n"+ "\t\"price\":12.3,\n"+原创 2016-10-22 13:02:00 · 1293 阅读 · 0 评论