Android日常笔记
文章平均质量分 71
Android开发知识
Linxi林夕
Android开发者小白一枚~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android - 使用GSY实现视频播放和画中画悬浮窗
现完成功能: - 悬浮窗区分横屏竖屏两种尺寸 - 悬浮窗可以在页面上随意拖动 - 在播放视频时按返回键/Home键/离开当前页时触发开启 - 悬浮窗显示在退到后台/在应用内/桌面 - 带播放进度开启悬浮窗,带播放进度回到应用内页面 - 权限:每次开启前判断有无权限,没权限并且请求过就不开悬浮窗原创 2022-12-07 12:56:44 · 3034 阅读 · 1 评论 -
Android - 判断按下Home键或进入后台
参考链接说从一个activity依次调用startActivity,finish关闭自己,启动一个新的activity时,onUserLeaveHint也会被调用…需要在启动activity时往intent中加上flag:FLAG_ACTIVITY_NO_USER_ACTION。onUserLeaveHint就不会再被调用了(不过我没复现,不加上也正常)(不属于用户的选择),它就不会被调用。原创 2022-11-04 11:44:01 · 1524 阅读 · 0 评论 -
Android学习-Git应用协同开发笔记
主分支pull,切换分支a ,再pull,检查代码没有问题,切换回主分支,再合并分支a过来,再push。解决:一般开发新功能也会新开一个分支,老功能有问题切回该分支改代码测试提交,不影响新开发代码的运行。此时有开发到一半的内容又不能舍弃。其他人先保存自己当下的分支代码,再切主分支pull下最新代码,再切分支a把主分支代码合并过来。合并步骤:先在自己分支a拉一下,切换到别人分支b上再拉,再切换回自己分支a,再合并b。队友去切换主分支,pull拉代码,切换回分支a,把主分支的内容合并到分支a。.........原创 2022-08-29 00:13:57 · 1236 阅读 · 0 评论 -
Android - 获取移动端设备ID标识,分情况
设备ID,就是一串符号(或者数字),映射现实中硬件设备。如果这些符号和设备是一一对应的,可称之为“唯一设备ID"。用于蜂窝网络中唯一确定一个用户,存在SIM卡,双卡手机只返回一个IMSI,用户换手机、换卡不换号,都不变。拿不到设备的IMEI的可以拿android_id,但是!不幸的是,Android平台没有稳定的API可以让开发者获取到这样的设备ID。不需要任何权限,64bit的取值范围,唯一性算是很好的了。2)不同签名的APP,获取到的AndroidID不一样。双卡双待的手机有两个IMEI号。......原创 2022-07-19 14:20:11 · 5798 阅读 · 0 评论 -
Android - 城市/单项/国家区号选择器基础使用 及 使用国际区号json文件
城市/单项/选择器基础使用 及 使用国际区号json文件原创 2022-06-24 17:45:19 · 82162 阅读 · 1 评论 -
Android - 设置Switch不能手动切换 只能代码切换
1.自定义SwitchCompat,,屏蔽父类的setOnCheckedChangeListener和setOnClickListene@SuppressLint("AppCompatCustomView")public class NotClickableSwitchCompat extends SwitchCompat { OnClickListener l; public NotClickableSwitchCompat(Context context) { sup原创 2022-05-25 10:54:04 · 1605 阅读 · 1 评论 -
Android Stuido 压缩项目前清理无用文件
需要将项目文件夹压缩转发给其他小伙伴前,删除不必要的文件,减少其大小。可以删除的缓存文件(缓存文件只是加快AS编译,删除后第一次编译会很慢):/app/build文件夹/build/.gradle Gradle缓存/.idea/*.iml 所有后缀为.iml的文件,IDE的工程配置文件/app/release 项目的配置信息,包括历史记录,版本控制信息/local.properties/.DS_Store/.externalNativeBuild参考链接:h原创 2022-03-25 18:30:12 · 2777 阅读 · 0 评论 -
Android-EditText、TextView、TabLayout基础使用
一、监听事件1. 监听输入框内容需求:只能输入有限位小数,且限制最大值etNum.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { String num = etNum.getText().toString().t原创 2022-03-25 17:56:52 · 4287 阅读 · 0 评论 -
Android-事件分发机制(事件流向层面)
前言:本文只是对大佬的文章做一个归纳,用于复习,建议看原文:https://www.jianshu.com/p/e99b5e8bd67b#1. 如果事件不被中断,整个事件流向是一个类U型图,事件按照U型完整走完。从上往下Activity–>ViewGroup–>View 调用dispatchTouchEvent(),一直到View,再从下往上View–>ViewGroup–>Activity调用onTouchEvent()2. dispatchTouchEvent() 和 on转载 2021-12-13 16:42:58 · 242 阅读 · 0 评论 -
Android-事件分发机制(源码层面)
事件是如何到达Activity的?我们的应用界面一般会有多个view树,我们的activity布局就是一个view树、其他应用的悬浮窗也是一个view树、dialog界面也是一个view树、我们使用windowManager添加的view也是一个view树等等。WindowManagerService的简写)管理的是viewRootImpl。手指触摸屏幕时,即产生了触摸信息。这个触摸信息由屏幕这个硬件产生,被系统底层驱动获取,交给Android的输入系统服务:InputManagerService,也原创 2021-12-08 17:54:34 · 1744 阅读 · 0 评论 -
Android:UI布局加载机制解析
一.分析层层调用的关键代码设置布局文件:每个Activity的onCreate()中 setContentView(R.layout.xx)。实际是调用Window抽象类的方法:this.getWindow().setContentView(R.layout.xx)。Window唯一实现类PhoneWindow实现的setContentView():关键调用方法:1)installDecor() 1> 创建布局容器 : 先创建顶层V原创 2021-11-25 15:51:29 · 1945 阅读 · 0 评论 -
Android:AsyncTask基本使用(下载文件)
我们一般用Thread+Handler实现多线程,将耗时操作运行在另一线程中,任务完成后通过Message通知主线程的Handler进行UI更新。需要编写Thread和Handler。为了让代码更加统一,Android提供了助手类AsyncTask方便我们使用,其底层也是Thread+Handler。1. 创建子类时需要指定三个泛型类型:Params, Progress, ResultParams:AsyncTask执行任务的参数的类型Progress:在后台线程处理的过程中,可以阶段性地发布结果的原创 2021-10-13 16:37:49 · 346 阅读 · 0 评论 -
Android-VideoView启动页视频,8.0崩溃解决
0. 准备视频.mp4放在res/raw内1. 布局文件:activity_launch.xml宽度自适应大小居中,高度占满全屏。<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_pare原创 2021-08-26 16:18:46 · 633 阅读 · 0 评论 -
Android中MVC、MVP和MVVM及实例
三种软件架构的框架(设计的典范)各自有什么特点?有什么区别?一、MVC1.组成及作用Model:模型(提供并处理数据)View:视图(渲染界面,数据可视化)Controller:控制器(MV的连接器,负责用户交互,控制程序流程和业务逻辑的处理)2.工作原理当用户触发事件的时候,view层发送指令到controller层,接着controller去通知model层更新数据,model层更新完数据以后直接显示在view层上#mermaid-svg-Lh6ahpnMcP8l7v3w .labe原创 2021-08-10 16:13:15 · 407 阅读 · 0 评论 -
Android面试-LaunchMode及Task工作模式(扔物线笔记)
切到后台时看到的是任务列表,会列出已存在的Task任务,Activity存活在任务栈中。一、Activity的LaunchMode有四种:standard (默认),每次都新建一个Activity(在当前App的Task)singleTop,当此Activity在栈顶时就不新建,不在栈定就新建(在当前App的Task)singleTask 全局单例,保证只在一个task的栈里有一个实例。singleInstance 独占,在单独的Task里,栈里只有这一个activity。二、单独讲讲跨Ta原创 2021-08-02 11:43:03 · 894 阅读 · 3 评论
分享