当前位置: 首页 > news >正文

安卓基础001

前言

也是好久没有更新博客了,最近实习也是需要学习一些知识哈哈哈哈哈哈为了更好的发展嘛,咱们从客户端开始,过程可能有点像写前端,不喜勿喷,希望在学习的过程中也可以给大家带来一些简单得帮助吧.......

tips:这里跳过安卓studio安装,大家可自行寻找教程

写的不详细,只是为了记录学习,不喜勿喷

1.日志

咱们先简单介绍一下自带的日志功能吧,我们在Activity文件中只需要使用Log.就可以使用对应的日志功能,日志一般有五种,是用的logcat工具进行打印

我们也可以使用tag来进行过滤,但是在新的安卓studio中过滤会比较麻烦,有以下几个参数,类似这样

我们可以通过这样的方式过滤日志

我们可以在不同的动作或者方法中添加日志来更好的调试

同样的这里的日志和之前一样是有等级的

筛选等级低的会显示更多的日志信息

我们可以看到比他更高级的日志也会显示出来

2.安卓项目结构

同样的,我们在了解一个项目之前,我们得知道所有的文件都是做什么的,先粗略的了解一下,有助于我们以后更好的学习技术.

首先我们将视图转换成project,这样可以看到全部的文件

tips:每次打包的是module而不是整个project,这里我们先介绍project的参数

一眼看上去可能会有点乱,一个项目主要分为app和gradle的文件

gradle就类似于maven,是一个管理依赖,自动打包编译上传的工具

我们先画个图,这样更好理解

先介绍app也就是安卓的文件

主要分为manifests,java和res文件夹

manifests主要是一些清单文件

下面只有一个xml文件,即为AndroidManifests.xml,这里主要是运行的配置文件

java文件夹下主要是写业务逻辑的,下面有三个子目录,主要是存放当前模块的源代码

res目录

这里主要是当前模块的资源文件

drawable目录下存放的是图形描述文件和图片文件

layout主要是一些布局文件

mipmap下主要是存放一些app的启动图标,比如微信,安卓图标等...

注:这里的图是矢量图,任意改变大小也不会失真

values文件主要存放一些常量,比如字符串常量,颜色常量等等xml文件

下面我们来说gradle的配置

1.build.gradle   用来配置需要的依赖文件,项目有一个,模块也有一个,项目设置是全局的,module设置是局部的配置文件

2.proguard-rules.pro 用于描述java代码的混淆规则,避免拿到代码反编译出来就可以直接进行一些破解操作

3.gradle.properties  这个文件配置了编译工程的命令行参数,一般我们不需要修改

4.setting.gradle  配置了需要编译哪些模块,一般如果我们新加一个模块就得在里面新增引入编译,删除也得删除避免编译这个模块

5.local.properties    本地配置文件,一般写了SDK NDK等的路径

3.第一个页面

介绍完文件用来做什么的,下面我们就可以来写第一个hello world 页面了

一个页面需要发布运行我们需要改变几个位置的代码

1.首先我们需要一个布局的xml文件,我们选择一个最简单的布局

这里面我只放了一个view字段,字段我希望在activity中书写

下面我们写activity里面的代码

这里你可能有很多不明白,我们后面慢慢说,其实参数的设置无论在xml文件中写或是在java文件中写都可以

3.注意在这之前我们还需要修改清单文件的代码,加上这个布局

这样一个简单得布局就可以被发布运行了

4.页面之前的跳转

这里我们写两个页面之间的相互跳转

首先我们需要做三步

1.xml

2.activity

3.注册manifest

两者之间的跳转我们只需要在activity中获取按钮,写一个监听点击事件的意图即可

5.设置字体大小

设置字体大小主要可以通过两种方式来实现

第一种是使用activity中代码的方式实现

第二种事通过xml中直接设置

主要单位如下

6.设置颜色

同样有两种方式

需要注意的是,在xml中默认透明度是不透明,在代码中默认是透明的

常用颜色如下

7.设置视图宽高

 我们也有两种方式设置比如一个textview的宽高

基本上设置的选项有以下几种

举例如下

这里还有设置了一个上部分的外边距

代码的方式可以这样操作,虽然不常用

相关文章:

安卓基础001

前言 也是好久没有更新博客了,最近实习也是需要学习一些知识哈哈哈哈哈哈为了更好的发展嘛,咱们从客户端开始,过程可能有点像写前端,不喜勿喷,希望在学习的过程中也可以给大家带来一些简单得帮助吧....... tips:这里跳过安卓studio安装,大家可自行寻找教程 写的不详细,只是为了…...

shodan2:绕过shodan高级会员限制+metasploit批量验证漏洞

shodan2 shodanmetasploit批量验证漏洞 shodan的这个指令语法是特别多的,那么我不可能说一个个全部讲完,因为有的参数可能你一辈子都用不上,主要就是把一些红队最常用的参数给你讲完,今天我们看看怎么去查一个cve-2019-0708的一…...

【JAVA毕业设计】基于Vue和SpringBoot的母婴商城系统

本文项目编号 T 030 ,文末自助获取源码 \color{red}{T030,文末自助获取源码} T030,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…...

探索Python安全字符串处理的奥秘:MarkupSafe库揭秘

文章目录 探索Python安全字符串处理的奥秘:MarkupSafe库揭秘第一部分:背景介绍第二部分:MarkupSafe是什么?第三部分:如何安装MarkupSafe?第四部分:MarkupSafe的简单使用方法1. 使用escape函数2.…...

Xcode真机运行正常,打包报错

1.问题: 老项目Xcode真机运行没问题,但但打包的时候却报了以下错误: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/r…...

Android Audio基础——音频混音线程介绍(十)

MixerThread 是 Android 音频输出的核心部分,主要负责将多个音频流混合成一个输出流,通常用于处理多个音频源(如音乐播放器、语音通话、系统提示音等)的混音操作,混音后的音频数据会被发送到音频硬件(如扬声器或耳机)进行最终输出。大多数 Android 的音频都需要经过 Mix…...

【Excel】函数各类公式总结

在 Excel 中,有许多常用的公式和函数用于各种类型的计算,包括基本的数学运算、统计运算、逻辑判断、查找与引用、文本处理,以及复数计算。下面列出了一些常用的 Excel 函数: 1、数学与三角函数 SUM求和函数,计算一组…...

【入门篇】2.9 系统滴答定时器 SysTick

目录 一,SysTick 系统滴答定时器 二,SysTick寄存器 2.1 SysTick 控制和状态寄存器(CTRL) 2.2 SysTick 重装载数值寄存器(LOAD) 2.3. SysTick 当前值寄存器(VAL) 2.4 SysTick 校准值寄存器(CALIB) 三,使用SysTick定时器 四,用法示例 一,SysTick 系统滴答定时…...

BiRefNet:颠覆图像分割,AI黑科技再升级

BiRefNet:颠覆图像分割,AI黑科技再升级 BiRefNet 是一款超强的图像分割 AI 模型,精准度惊人✨,适用于医疗、农业、工业等多个领域🌍,让图像处理变得简单高效!快来体验这款黑科技吧!…...

编写一个简单的Iinput_dev框架

往期内容 本专栏往期内容: input子系统的框架和重要数据结构详解-CSDN博客input device和input handler的注册以及匹配过程解析-CSDN博客input device和input handler的注册以及匹配过程解析-CSDN博客 I2C子系统专栏: 专栏地址:IIC子系统_憧憬…...

ctfshow的sql注入解题思路171-211

ctfshow-SQL注入 web171:爆库名->爆表名->爆字段名->爆字段值 -1 union select 1,database() ,3 -- //返回数据库名 -1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema库名 -- //获取数据库里的表名 -…...

深入理解C语言中的静态库与动态库 —— 原理与实践

引言 在 C 语言编程中,库是预编译的代码集合,用于实现特定功能,以供其他程序使用。库可以分为静态库和动态库两种主要类型。静态库在编译阶段被链接到目标程序中,而动态库则是在运行时被加载。本文旨在深入探讨这两种库的工作原理…...

本地缓存库分析(一):golang-lru

文章目录 本地缓存概览golang-lru标准lrulru的操作PutGet 2q:冷热分离lruPutGet expirable_lru:支持过期时间的lruPutGet过期 总结 本地缓存概览 在业务中,一般会将极高频访问的数据缓存到本地。以减少网络IO的开销,下游服务的压…...

qt配置https请求

qt应用版本 windows 32位 先说下心理路程,你能遇到的我都遇到了,你能想到的我都想到了,怎么解决看这一篇就够了,从上午12点到晚上12点几乎没离开电脑(除了吃饭),对于openssl这种用的时候无感&am…...

C语言进阶——文件操作

一、文件的基本知识 1.1什么是文件 在程序设计中,一般谈的文件有两种:程序文件、数据文件。 程序文件:包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执…...

MYSQL-查看用户权限语法(二十一)

13.7.5.21 SHOW GRANTS 语句 SHOW GRANTS [FOR user]此语句以GRANT语句的形式显示分配给MySQL用户帐户的权限,必须执行GRANT语句才能复制权限分配。 注意 要显示MySQL帐户的非特权信息,请使用SHOW CREATE USER语句。 参见第 13.7.5.12 节“ SHOW CREA…...

在MySQL中存储IP地址的最佳实践

文章目录 一、IP地址的格式二、存储IP地址的数据类型选择1. VARCHAR优点缺点 2. INT 或 BIGINT优点缺点示例 3. VARBINARY优点缺点示例 三、最佳实践建议1. 选择合适的数据类型2. 索引优化3. 数据验证4. 安全性考虑 四、Java支持五、结论 在现代网络应用中,IP地址是…...

Vite打包配置

Vite打包配置 1.项目启动自动打开网页 {"scripts": {"dev": "vite --open"} }2.base配置打包公共路径 配置base选项的作用主要是指定项目在开发或生产环境中的公共基础路径。这个配置项对于确保资源能够正确加载尤为关键,尤其是在…...

node集成redis (教学)

文章目录 前言一、安装redis二、可视化界面测试连接1.vscode安装插件 三、node代码编写1.先安装两个库(redis和ioredis)2.测试连接 (前提是你的redis服务器要启动起来) 总结 前言 在Node.js中集成ioredis是一个常见的做法&#x…...

江协科技STM32学习- P22 实验-ADC单通道/ADC多通道

🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

微信小程序之bind和catch

这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

android RelativeLayout布局

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中&#xff0c;工业自动化网关起着至关重要的作用&#xff0c;尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关&#xff0c;为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多&#xff0c;其中不少设备采用Devicenet协议。Devicen…...