安卓项目结构分析 .gradle和.idea 创建项目时as自动生成的一些文件,我们在开发的过程当中无需关心,也不要自己去手动编辑 app 在我们的开发过程中主要关注的地方,项目的代码、资源文件都是存放在这个目录下面的 build 这个目录中存放在编译过程中自动生成的文件,开发过程中不需要关心 gradle 这个目录中包含了gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前将gradle下载好,而是根据本地缓存的情况决定是否要联网下载gradle。AS默认就是启用g...
前言 Android 的 SystemUI 其实就是 Android 的系统界面,它包括了界面上方的状态栏 status bar,下方的导航栏Navigation Bar,锁屏界面 Keyguard ,电源界面 PowerUI,近期任务界面 Recent Task 等等。在 Andorid 系统源码中,package/apps下放的是系统内置的一些 app,例如 settings,camera,Phone,Message 等等。而在 framework/base/package 下,它们也是系统的 app...
windows下配置adb 环境变量,path新增adb的路径:C:\Users\Administrator\AppData\Local\Android\Sdk\platform-tools 即配置成功 下面是几个比较常见的命令 1、adb shell top 查看应用id,自己写的应用的id 2、adb shell dumpsys meminfo 5296 (5296为id)查看内存信息等 3、adb shell top >f:/111.top 记录内存日志 4、adb logcat >f:...
一、输入法介绍 输入法是指将各种文字/符号等信息输入电子信息设备而采用的编码方式,例如我们常用的拼音输入法、手写输入法、语音输入法等都是在完成这一过程。通俗的来讲输入法是一种已经渗透到我们生活方方面面,各行各业的基本人机交互方式: 输入法场景特点拼音输入法/五笔输入法/仓颉输入法电脑手机等设备打字、发邮件简单、高效、手打手写输入法老人机笔迹识别、直打语音输入法车载智能语音交互简单、直说、高效…从上面可以看出输入法根据运用场景的不同,其功能特点也有所不同,输入法可以进行以下分类: 根据输入方式和特点...
一、前言 如果你的项目需要使用串口通信,并且项目使用了kotlin,那么这个SDK是你不能错过的;如果你使用过串口通信,那么这个SDK最吸引你的地方应当是可在写入时同步阻塞等待数据返回,并且我们支持超时设置;如果你没有使用过串口通信,这个SDK也可以让你快熟的进行串口通信;此SDK用于Android端的串口通信,此项目的C代码移植于谷歌官方串口库android-serialport-api ,以及GeekBugs-Android-SerialPort ;在此基础上,我进行了封装,目的是让开发者可以...
声明:本文更注重于原理知识的普及,因此文中不会有大量实际代码的展示,如果想从代码层面上了解「应用存储分区」的内容,欢迎阅读我两年前写过的技术文章《Android 10 应用分区存储适配实践》 近日,有网友爆料,称其发现得物App有疑似偷偷调用手机权限删除用户视频的行为。 事件的起因,是该网友在得物App上购买到的商品有问题,于是按流程向平台方反馈,并上传了相关的视频证据。 但没过多久,其手机上就收到了一条系统推送提醒,内容是检测到“得物”删除了视频,已成功拦截,据该网友推测,被删除的正是作为重要维权证...
转framework开发快一年了,一直都想写一篇文章,分享一下自己的工作心得,也让做应用开发的小伙伴对framework开发有一定的了解,但因为种种原因耽搁了,今天就趁着工作闲暇之余,聊聊我从应用开发转framework开发的心路历程,自己也是刚开始学着写文章,文笔不太好,请见谅_ 本人履历 一个混迹Android圈7年的小菜鸟 做过应用开发,996那种 做过Android讲师,在小白面前吹牛逼那种 做过技术支持,全国到处跑那种 越来越卷的应用开发 曾经跟所有Androider一样,在应用开发领域为所欲为...
编程语言的发展,通过需求,不断的变化出新的特性,而这些特性就会使得编程变得更加的简洁。 Lambda表达式 Lambda表达式的出现,一定程度上使得函数和变量慢慢的融为一体,这样做的好处大大的方便了回调函数的使用。 在很多的情况下,其实我们的函数就只有简单的几行代码,用fun就感觉有点重了,而且有的时候这么大的函数结构用起来,并不是非常的方便。 Lambda表达式,其表达式为: {变量定义 -> 代码块} 其中: lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值...
如果有人对程序的崩溃原因做下统计的话,那么由于对象为空,但是又访问了对象的某个属性而导致的崩溃,也许会是程序崩溃的第一大原因了。 比如我们在使用字符串的时候,变量字符串为空的时候,我们去访问了这个字符串变量的长度,结果就导致了程序的崩溃。 后来我们有经验了,在访问对象的属性时,我们都得先做一层对象是否为空的判断,这样我们的程序就变成了这样: if (str!=null && str.length()>0 && str.trim().length()>...
下载旧版本的AndroidStudio: 地址:https://developer.android.com/studio/archive android-studio-2020.3.1.22-mac_arm.zip版本 很重要!不然不能编译旧的项目,一直提示jdk1.8之类的问题。 码云/Github 拉ssh代码: 1、个人设置里配置公钥:https://gitee.com/profile/sshkeys2、可以在码云/GitHub配置同一套秘钥3、配置jdk/git等环境 SourceTree 一直...
在Android开发时,为了实现一些动态的炫酷的效果,我们常用到帧动画,View动画(补间动画)和属性动画,今天就来总结下我在使用帧动画的实现方式。 1、什么是帧动画? 帧动画就是顺序播放一组预先定义好的图片,就类似于我们观看视频,就是一张一张的图片连续播放。当播放速度达到一定速度后,就会在视觉上看起来像视频播放一样。 “人眼舒适放松时可视帧数是每秒24帧,集中精神时不超过30帧,眨眼时睁开眼瞬间可以捕捉到的帧数是30帧以上,为了性能优化,一般稍大于30帧就差不多了,当然,现在的手机,一般为60帧,又些可...
探究 Android 签名机制和原理 - 腾讯云开发者社区-腾讯云 一、APK签名可以带来以下好处 应用程序升级 如果想无缝升级一个应用,Android系统要求应用程序的新版本与老版本具有相同的签名与包名。若包名相同而签名不同,系统会拒绝安装新版应用。应用程序模块化 Android系统可以允许同一个证书签名的多个应用程序在一个进程里运行,系统实际把他们作为一个单个的应用程序。此时就可以把我们的应用程序以模块的方式进行部署,而用户可以独立的升级其中的一个模块。代码或数据共享 Android提供了基于签名的权...
泛型到底是什么 类比函数/方法,定义时指定参数类型(形参),调用时传入具体参数实例(实参) 泛型也是如此, 定义时指定数据类型(形参),调用时传入具体数据类型(实参) 那泛型的作用是什么呢 泛型 可以 做 约束 指定 参数类型 可以在编译期提前发现类型转换问题(限定在 哪个类型之下) 否则 需要做 类型判定和强转代码,可能存在类型转换问题 java 泛型 Java 中的 ? extends 限定了上界 List<? extends TextView> textViews = new Array...
需要图片集和源码请点赞关注收藏后评论区留言~~~ 所谓抠图神器,就是从一副图片中扣出用户想要的某块区域 一、需求描述 美图的修图功能如此强大,离不开专业的图片加工技术,抠图便是其中重要的一项功能。在App界面底部点击抠图按钮,再选择下方的形状按钮就会出现等待抠图的目标区域,然后通过手指触摸挪动方框,也可两指并用缩放或者旋转方框,调整方框大小以及角度后,再点击右下角的三点按钮,选择弹出菜单中的存为贴纸,就可以在贴纸功能中查看已经扣好的图片。 示意图如下 二、功能分析 抠图工具通过对图像进行...
安卓触摸事件概述 1、触摸分类 (1)单点触摸 单点触控,只能识别和支持每次一个手指的触控、点击,若同时有两个以上的点被触碰,就不能做出正确反应。很多医院、图书馆等的大厅都有这种触控技术的电脑,支持触摸屏的手机、MP3、数码相机也多采用这种单点触控技术。 (2)多点触摸 多点触控(又称多重触控、多点感应、多重感应,英文Multitouch或Multi-Touch)是采用人机交互技术与硬件设备共同实现的技术,能在没有传统输入设备(如鼠标、键盘等)。下进行计算机的人机交互操作。多点触摸技术,能构成一个触摸屏(...
按追按键事件 (一)安卓常用事件 1、单击事件 当用户触碰到某个组件或者方向键被按下时产生该事件,该事件的监听器是View.OnClickListener,事件处理方法是onClick()。 2、焦点事件 组件得到或者失去焦点时产生该事件,监听器是View.OnFocusChangeListener,事件处理方法是onFocusChange()。 3、按键事件 用户按下或者释放手机键盘上的某个按键时产生,监听器是View.OnKeyListener, 事件处理方法是onKey()。 4、触碰事件 手机上具...
当前Activity adb shell dumpsys activity | grep mResumed 当前Fragment adb shell dumpsys activity top | grep '#0: ' | tail -n 1 启动时间 # 获取当前页面的Activityadb shell am start -W com.android.camera/.MainActivity 当前页面Fragment 内存占用 adb shell dumpsys meminfo com.android....
写在前面 需要源码的可以联系我:lzlv58787 作业要求 功能: 1.数据管理 菜品类别:凉菜;热菜;汤菜;主食;酒水 菜品管理:菜品的编号;名称;价格;所属类别;备注 餐桌管理:桌号;人数 2.点餐 新开桌:桌号->点餐 加菜:桌号->点餐 3.结账 根据桌号结单(可显示点餐明细与价格) 4.流水查阅 根据时间段查阅销售额(某段时间的午餐、晚餐) 某段时间菜品销量排序 5.其他要求 5.0 要求启动活动界面,启动活动居住显示:***点餐系统;学号+姓名 5.1有界面的地方,...
Audio焦点 1.音频焦点管理准则 在播放之前调用requestAudioFocus(),并验证调用是否返回AUDIOFOCUS_REQUEST_GANTED。同时注册监听音频焦点丢失的通知在其他应用请求焦点时,应该暂停或者降低当前音源音量。在播放完毕或者停止后,应该放弃焦点。 2.音频焦点在不同Android版本上的处理方式 Android 2.2(API 8 )开始,app通过requestAudioFocus()和abandonAudioFocus()来管理音频焦点,并且还需要为这两个方法注册Au...
Window 和 WindowManager Window Window 是一个窗口的概念,Android中所有视图都是通过Window来呈现的,例如Activity的视图实际上都是附加在Window上的,对于Activity来说Window实际上是View的直接管理者,而View才是我们实际看到的视图。 Window是一个抽象类,PhoneWindow是唯一的实现类,来看一下Activity的结构: frameworks/base/core/java/android/app/...
android开机动画分为正常开机动画启动和休眠唤醒后启动开机动画 1.正常开机动画启动: 正常开机动画是在 SurfaceFlinger.java的init方法里面启动的: 主要是设置ctl.start属性值为bootanim就会启动开机动画。 2.休眠唤醒开机动画启动。 休眠唤醒开机动画是在IpoManagerService.java里面 调用lowPowerHuBoot后会调用开机动画: 3.hardware层接收通知: /hardware/interfaces/automotive/...
OpenGL 学习教程 Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学习(三) – 绘制平面图形 Android OpenGL ES 学习(四) – 正交投屏 代码工程地址: https://github.com/LillteZheng/OpenGLDemo.git OpenGL 是自己一直比较感兴趣的,刚好最近工作也有 OpenGL 的需求,所以,这里也记录一下学习...
不知道什么时候做了啥,从某个时间点之后,电脑就特别容易断开adb,有时候重启电脑都不管用。 一直显示Loading Devices...,拔插设备,重启Android Studio都没用,甚至重启电脑有时候也不行。 反正不知道哪个地方出问题了,后面各种百度,只对我电脑有效果的,虽然不是百分百成功,现在记录一下方便使用。 1.打开命令窗口(最好是使用管理者启动),输入以下命令 netstat -ano | findstr 5037 有时候会出现多个adb服务程序,比如我电脑就会这样 最右边是程序PI...
(一)网格布局概述 1、布局特点 GridLayout布局使用虚细线将布局划分为行、列和单元格,也支持一个控件在行、列上都有交错排列。可以自己设置布局中组件的排列方式可以自定义网格布局有多少行、多少列可以直接设置组件位于某行某列可以设置组件横跨几行或者几列 2、继承关系图 GridLayout类是ViewGroup子类 3、常用属性 (1)针对布局的属性 属性含义rowCount行数columnCount列数layout_width布局宽度layout_height布局高度(2)针对子控件的属性 属性含...
(一)列表视图概述 1、继承关系图 列表视图(ListView)继承了抽象列表视图(AbsListView),而抽象列表视图又继承了适配器视图(AdapterView)。适配器视图具有共同的特征,就是利用适配器将数据源与展示控件绑定起来。 2、列表视图API文档 https://developer.android.google.cn/reference/kotlin/android/widget/ListView?hl=en 3、 列表视图四要素 要素说明列表控件显示多项供用户选择适配器数组适配器、...
如你所知,java在标准库中有一些与特定的类相关联的语言特性。例如,实现java.lang.Iterable接口的对象可以在for循环中使用;实现了java.lang.AutoCloseable接口的对象可以在try-with-resource语句中使用。 一、重载算术运算符 1、重载二元运算符 注意,如何使用operator关键字来声明plus函数。用于重载运算符的所有函数都需要用该关键字来标记,用来表示你打算把这个函数作为相应的约定的实...
一、列表视图概述 1、继承关系图 列表视图(ListView)继承了抽象列表视图(AbsListView),而抽象列表视图又继承了适配器视图(AdapterView)。适配器视图具有共同的特征,就是利用适配器将数据源与展示控件绑定起来。 2、列表视图四要素 要素说明列表控件显示多项供用户适配器数组适配器、简单适配器、游标适配器、基适配器……数据源数组、列表、游标……列表项模板平台资源、用户自定义列表视图四要素:列表控件、适配器、列表项模板和数据源 3、四种适配器 列表视图(ListView),它是Ad...
网上查到两种挂断电话方式 第一种:通过反射得到隐藏的API,需要aidl文件,但是这种方式测试后,无效。方法写出来吧,也许对你有你有帮助。 首先在main文件下创建报名com.android.internal.telephony,然后创建文件ITelephony.aidl /* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the Licens...
1.屏幕分类和刘海屏的适配原则_哔哩哔哩_bilibili 百分百布局不在维护 淘汰了 头条怎么做的 阿里怎么做的? 将近几千种 rom6 7种,之前适配宽和高 曲面屏 分屏 异形屏 android8 大o 水滴屏 每家公司rom 改的面目全非 1.耳朵区做适配,2.上面不做适配,底下做适配,取决于你的产品 工程机 pos机 app适配 车载 大屏适配 超长屏 我们只能适配一边,如果两个都适配很明显 拉伸了,以他的宽度做适配标杆,高度,借助滚动 就认为的适配了, 岗位多 招不到人...
功能分析 记账 APP 需要有如下三个系统: 统计系统、记账系统、用户系统。 统计系统需要实现当月消费统计,包括收入、支出、结余等内容, 并可以让用户通过可视化图的方式清晰了解使用情况。记账系统需要实现记账的操作,包括选择账 目类别、消费类型、金额、具体内容等,还需要有用户交互的过程,包括删除、修改、查询账目的 功能。用户系统需要实现用户信息的提取,使用 APP 的帮助界面,用户资产管理,包括用户账户余 额可视化查看,用户账户管理,账户余额修改,并与记账系统交互,根据账目的修改和添加,实时进行反馈更新...
Android应用程序由4个模块而成:Activity、Intent、Content Provider、Service。 当然,也不是每个Android应用程序都必须由这四部分组成,可以根据开发者需求进行组合,比如上面创建的HelloWord项目就只使用了Activity这一个模块。但是,任何一个应用程序都必须在AndroidMainfest.xml文件中声明使用到的这些模块。 1.Activity Activity是最基本的模块,我们在HelloWord项目中已经使用过。...
Activity创建显示关闭 ActivityTaskManager: START u0wm_create_activityDisplayedwm_finish_activitysystem执行resume的日志:wm_set_resumed_activityapp的activity执行onResume的日志: wm_on_resume_called ANR am_anrANR in 崩溃 FATAL EXCEPTIONbeginning of crasham_crash 进程启动 Zygote : F...
Android进程间通信机制Binder ● 从IPC角度来说,Binder是Android中的一种跨进程通信方式,Binder还可以理解为一种虚拟的物理设备驱动,它的设备驱动是/dev/binder,该通信方式以前在linux中没有 ● 从Android Framework角度来说,Binder是ServiceManager连接各种Manager(ActivityManager、WindowManager)和相应ManagerService的桥梁 ● 从Android应用层来说,Binder是客户端和服...
Activity的启动模式 在实际的项目当中,我们应该根据特定的需求给每个Avtivity指定恰当的启动模式启动模式一共包含四种:standard,singleTop,singleTask,singleInstance指定启动模式的方法:在AndroidManifest.xml中通过标签指定android:launchMode属性来选择相应的启动模式. standard standard是Activity默认的启动模式在standard启动模式下,每当启动一个新的Activity就会在返回栈当中入栈,...
1.应用程序资源管理器assets assets就是apk工程中的一个普通目录,在每个工程的根目录下都可以发现(或者可以自己创建)一个assets目录。 assets目录用于专门保存各种外部文件,比如图像、音视频、配置文件、字体、自带数据库等。它之所以适合用来管理这些文件,是因为应用程序在编译时不会去处理这个目录下的文件,但是却会将它们打包进APK中。而其它你随便创建的目录在编译时就会被直接忽略掉。同时,可以在assets目录内任意创建目录层级关系,这对于有大量外部文件需要集成的应用来说,就能很方便地分类...
需要图片集和源码请点赞关注收藏后评论区留言~~~ 一、需求描述 在手机上浏览电子书的浏览体验跟阅读纸质书差不多,翻页过程仍旧呈现纸张翻转的视觉特效,让读者看起来赏心悦目。总结一下,手机阅读无非是要具有两大功能点:其一为书架管理,主要是书籍的增删改查,其二为浏览操作,主要是翻页过程的处理 二、功能分析 电子书有几个问题,一方面是电子书格式多样,另一方面是Android没有现成的控件可以统一显示这些电子书,格式各异的电子书要在手机屏幕的方寸之间展示,十分困难。 对于前一个问题。可将电子书统一成少数几种公...
新建Kotlin项目来写小Demo,项目建好,编译不通过,但是遇到了Error resolving plugin [id: 'com.android.application', version: '7.2.1', app 这个问题 问题原因: 如上解释,所配置gradle版本在本地配置的gradle仓库里面没找到。 网上搜了一些解决办法: plugins { id 'com.android.application'} 上面加上 buildscript { repositories {...
关注我,会持续发布关于Android学习的内容! 大学生交流群:728910358 文章目录 前言 一、MaterialButton 二、MaterialButtonToggleGroup 三、TextView 文本组件 四、ImageView控件 总结 前言 本节我们来学习安卓(Android)的几种常用的组件,包括MaterialButton(按钮),MaterialButtonToggleGroup(按钮组布局),TextView(文本控件),ImageVi...
一、概述: 使用XML文件声明界面布局,将程序的表现层和控制层分离,在后期修改用户界面时,无需更改程序的源代码。 二、布局管理器作用: 不同手机屏幕的分辨率、尺寸并不完全相同,如果让程序手动控制每个控件的大小和位置,会给编程带来很大困难。通过使用布局管理器,可以根据屏幕尺寸管理容器内的控件在界面中的位置。布局管理器用于存放其它控件或者嵌套其它布局对象。 三、常用布局对象: 线性布局(LinearLayout)表格布局(TableLayout)相对布局(RelativeLayout)框架布局(Fram...
SystemServer服务和ServiceManager服务分析 SystemServer服务和ServiceManager服务分析_站在巨人的肩膀上,温故而知新的博客-CSDN博客_systemservicemanager SystemServer vs ServiceManager_Eliot_shao的博客-CSDN博客 整体启动流程: 启动用户级别的第一个进程: init 进程。init 进程会解析init.rc 脚 本 做一些初始化工作,包括挂载文件系统、创建工作目录以及启动系统服务进程等...
本文主要讨论如下三个问题: 如何拿到本地视频?怎么拿视频缩略图?缩略图如何压缩?1 如何拿到本地视频? 1.1 定义数据结构 先定义媒体信息数据结构MediaInfo,以及视频信息数据结构VideoInfo。 open class MediaInfo( var size: Long = 0L, // 大小 var width: Float = 0f, // 宽 var height: Float = 0f, // 高 var filePath: St...
在安卓开发中我们可以通过动画添加视觉提示,向用户通知应用中的动态。当界面状态发生改变时(例如有新内容加载或有新操作可用时),动画尤其有用。动画还为应用增加了优美的外观,使其拥有更高品质的外观和风格。 首先来简单了解一下动画 Android动画主要分为两大类:视图动画和属性动画,其中视图动画又包含补间动画和逐帧动画 补间动画 逐帧动画 拆分成帧 属性动画 因为上两个动画作用对象局限,仅改变视觉效果且效果单一,为了弥补视图动画的缺陷,于是Android在3.0(API 11)开始提供了...
方案一:handler消息耗时 Android打印主线程所有方法执行时间、handler耗时_沙漠一只雕得儿得儿的博客-CSDN博客 Android打印主线程所有方法执行时间 - CodeAntenna Android UI卡顿检测(一)——基于Handler机制的实现方案(线上方案)_卜大爷的博客-CSDN博客 三种方案:① 继承handler,重写sendMessage、dispatchMessage ② 使用Epic hook框架,打印sendMessage、dispatchMessage之间的时间...
Activity的最佳实践 知晓当前是在哪一个Activiy 创建一个BaseActivity类,继承AppCompatActivity类.重写onCreate方法 open class BaseActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) //Kotlin当中的javaCl...
python Uiautomator2 方法简单说明 Uiautomator2的常规的操作, 例如点击,长按等操作有两个方法可以操作,一个是基于uiautomator2本身的方法,一个是基于选择器的方法 为了保证脚本具有较好的迁移性,最好优先选择selector中的方法,避免坐标类的点击; 如果一定要使用坐标类的点击,那么建议也是获取空间的位置坐标,而不是在屏幕中某个固定的坐标; 基于uiautomator2本身的方法 click(self, x: Union[float, int], y: Un...
extends ViewGroup.LayoutParams implements Parcelable java.lang.Object ?android.view.ViewGroup.LayoutParams ? android.view.WindowManager.LayoutParams WindowManager.LayoutParams 是 WindowManager 接口的嵌套类;它继承于 ViewGroup.LayoutParams; 它用于向WindowManager描述Wind...
华为HMS Core音频编辑服务(Audio Editor Kit)依托自身AI技术的研发优势,上线全新的歌声合成音色及伴奏,给音视频创作者提供更多的创作可能。在短视频场景中,用户自定义歌词的歌声结合视频让用户感受到身临其境,自由表达自己的情绪;在虚拟偶像场景中,歌声合成功能赋予虚拟歌手们演唱风格各异的歌曲,带来创意无限。 HMS Core音频编辑服务歌声合成的AI Singer模型能力通过字级别输入歌词进行音素转换,就可以为用户创作音乐,也可预置曲目合成歌声。通过自研音高模型,让音高曲线在保持输入曲谱的...
Windows 11 专业版 22H2 22621.819 应用商店安装 Ubuntu 22.04.1 LTS 控制面板——程序和功能——启用或关闭Windows功能——适用于 Linux的Windows子系统 Error: 0x800701bc WSL 2 ??? 升级WSL https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi 换源 https://mirror.tuna.tsinghua.edu.cn/he...
学习目标 创建安卓应用初步学习安卓标签初步认识安卓布局 一、前言 安装好安卓集成开发环境之后,我们就要学会创建安卓应用,并且了解安卓应用的MVC架构——控制层:MainActivity里写代码控制程序逻辑,视图层:activity_main里设计用户界面,模型层:strings.xml里定义字符串数据。 二、笔记1.2概述 在这里插入图片描述 list.add(苹果)list.add(香蕉)list.add(...