Android 学习 - 不完善

news2024/11/28 0:53:38
  1. SharedPreference 共享参数用法
    SharedPreference 是 Android 的一个轻量级存储工具, 采用的存储结构是Key-Value的键值对方式.
    共享参数的存储介质是符合XML规范的配置文件. 保存路径是: /data/data/应用包名/shared_prefs/文件名.xml

  2. 利用元数据配置快捷菜单
    (1)元数据的meta-data标签除了name属性和value属性,还拥有resource属性,该属性可指定一个XML文件,表示元数据想要的复杂信息保存于XML数据之中.
    (2)利用元数据配置快捷菜单的步骤如下所示:
    在res/values/strings.xml添加各个菜单项名称的字符串配置
    创建res/xml/shortcuts.xml,在该文件中填入各组菜单项的快捷方式定义(每个菜单对应哪个活动页面)
    给activity节点注册元数据的快捷菜单配置.

  3. 在代码里面设置启动标志
    Intent.FLAG_ACTIVITY_NEW_TASK: 开辟一个新的任务栈
    Intent.FLAG_ACTIVITY_SINGLE_TOP: 当栈顶为待跳转的活动实例时,则重用栈顶的实例
    Intent.FLAG_ACTIVITY_CLEAR_TOP: 当栈中存在待跳转的活动实例时,则重新创建一个新实例,并清除原实例上方的所有实例
    Intent.FLAG_ACTIVITY_NO_HISTORY: 栈中不保存新启动的活动实例
    Intent.FLAG_ACTIVITY_CLEAR_TASK: 跳转到新页面时,栈中的原有实例都被清空

  4. 各状态之间的切换过程
    打开新页面的方法调用顺序为: onCreate -> onStart -> onResume
    关闭旧页面的方法调用顺序为: onPause -> onStop -> onDestroy
    在这里插入图片描述

  5. Android生命周期详解
    onCreate: 创建活动. 把页面布局加载进内存,进入了初始状态.
    onStart: 开始活动. 把活动页面显示在屏幕上,进入了就绪状态.
    onResume: 恢复活动. 活动页面进入活跃状态,能够与用户正常交互,例如允许响应用户的点击动作、允许用户输入文字等等.
    onPause: 暂停活动. 页面进入暂停状态,无法与用户正常交互.
    onStop: 停止活动. 页面将不在屏幕上显示.
    onDestroy: 销毁活动. 回收活动占用的系统资源,把页面从内存中清除.
    onRestart: 重启活动. 重新加载内存中的页面数据.
    onNewIntent: 重用已有的活动实例.
    参考了: https://blog.csdn.net/qq_43094133/article/details/107686933
    在这里插入图片描述

  6. Activity的启动和结束
    从当前页面跳到新页面:
    startActivity(new Intent(源页面.this, 目标页面.class));
    从当前页面回到上一个页面,相当于关闭当前页面,返回代码如下:
    finish(); // 结束当前的活动页面

  7. 按钮控件有两种常用的监听器
    点击监听器,通过setOnClickListener方法设置. 按钮被按住少于500毫秒时,会触发点击事件.
    长按监听器,通过setOnLongClickListener方法设置. 按钮被按住超过500毫秒时,会触发长按事件.

  8. 视图对齐方式
    设置视图对齐方式有两种途径:
    layout_gravity: 它指定当前视图相对于上级视图的对齐方式
    gravity: 它指定下级视图相对于当前视图的对齐方式

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="400dp"
    android:background="#ffff99"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="200dp"
        android:layout_gravity="bottom"
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:background="#ff0000"
        android:gravity="left"
        android:padding="10dp">

        <View
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:background="#00ffff"></View>
    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="200dp"
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:background="#ff0000"
        android:gravity="right|bottom"
        android:padding="10dp">

        <View
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:background="#00ffff"></View>
    </LinearLayout>

</LinearLayout>
  1. 视图的宽高
    视图宽度 android:layout_width , 视图高度 android:layout_height
    宽高的取值主要有以下三种:
    (1)match_parent: 表示与上级视图保持一致
    (2)match_content: 表示与内容自适应
    (3)以dp为单位的具体尺寸

  2. Dpi(像素密度) Density(密度) Dip/dp(设备独立像素)
    参考: https://www.bilibili.com/video/BV19U4y1R7zV/?p=18&spm_id_from=pageDriver&vd_source=03cb065581da9959d84a1d21186a3ddb

  3. 完整的页面创建过程包括三个步骤:
    (1)在layout目录下创建XML文件
    (2)创建与XML文件对应的Java代码
    (3)在AndroidManifest.xml中注册页面配置

  4. Activity
    Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务.

  5. Gradle
    Gradle是一个项目自动化构建工具,帮我们做了依赖、打包、部署、发布、各种渠道的差异管理等工作.

  6. App工程目录结构
    App工程分为两个层次,第一个层次是项目,另一个是模块.
    模块依附于项目,每个项目至少有一个模块,也能拥有多个模块.
    一般说的"编译运行App"值得是运行某个模块,而非运行某个项目,因为模块才对应实际的App.

  7. Android采用Log工具打印日志,它将各类日志划分为五个等级:
    Log.e: 表示错误信息,比如可能导致程序崩溃的异常.
    Log.w: 表示警告信息.
    Log.i: 表示一般信息.
    Log.d: 表示调试信息,可把程序运行时的变量值打印出来,方便跟踪调试. (用的最多)
    Log.v: 表示冗余信息.

  8. SDK: Software Development Kit 软件开发工具包,它可将App源码编译为可执行的App应用

  9. Android主要版本发布时间在这里插入图片描述

  10. android studio 中的快捷键
    (1)连按两下shift键进行搜索查询
    (2)ctrl + alt + L 进行代码格式化
    (3)ctrl + shift + Enter键 快速开启下一行进行编辑
    (4)ctrl + alt + F 快速将属性全局私有化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/142978.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【阶段二】Python数据分析Pandas工具使用11篇:探索性数据分析:数据的检验:卡方检验与t检验

本篇的思维导图: 探索性数据分析:数据的检验 卡方检验 在实际的学习或工作中,也会碰到关于离散型变量之间的探索性分析,如两个离散变量之间是否相互独立。对于该问题的解答,就需要运用统计学中的卡方检验了。卡方检验属于非参数的检验方法,其原假设是两个离散变…

Spring——最全Spring目录

&#x1f4eb;作者简介&#xff1a;zhz小白 公众号&#xff1a;小白的Java进阶之路 专业技能&#xff1a; 1、Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理 2、熟悉Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理&#xff0c;具备⼀定的线…

2022 IoTDB Summit:IoTDB PMC侯昊男《Apache IoTDB首创时序顺乱序分离存储引擎 IoTLSM》...

12 月 3 日、4日&#xff0c;2022 Apache IoTDB 物联网生态大会在线上圆满落幕。大会上发布 Apache IoTDB 的分布式 1.0 版本&#xff0c;并分享 Apache IoTDB 实现的数据管理技术与物联网场景实践案例&#xff0c;深入探讨了 Apache IoTDB 与物联网企业如何共建活跃生态&#…

Flutter项目中添加Webview(八)使用JavaScript渠道

借助JavascriptChannel&#xff0c;您的应用可以在WebView的JavaScript上下文中注册回调处理程序&#xff0c;可以调用这些回调处理程序将值传递回应用的Dart代码。在此步骤中&#xff0c;您将注册一个使用 SMLHttpRequest的结果调用SnackBar。 将WebViewStack类更新如下所示&…

Mysql的锁(自用笔记)

笔记(https://www.bilibili.com/video/BV1Kr4y1i7ru) 什么是锁? mysql中有哪几种锁 表级锁 表级锁-表锁 write lock 写锁, 加锁客户端,可以读写操作, 其他客户端不能 读,写操作 表级锁-元数据锁 一个例子,事务中,增删改查时候,会自动加入元数据锁,不允许对表结构进行修改 …

Keras model.predict输出的概率值转换为类别

问题&#xff1a;使用Keras做分类任务&#xff0c;model.predict预测得到的值为每个类别的概率值&#xff0c;而不是类别。 源码&#xff1a; y_test_pred model.predict(x_test, batch_size256, verbose1)解决&#xff1a; import numpy as np y_test_pred model.predict(…

[ctf.show pwn] 新手杯,七夕杯

闲来无事作练习新手杯pwn1好长的代码&#xff0c;看了十几分钟&#xff0c;发现最后一个函数是后门&#xff0c;而且是不用敲的那种。void __noreturn door() {char s[32]; // [rsp0h] [rbp-50h] BYREFchar command[40]; // [rsp20h] [rbp-30h] BYREFunsigned __int64 v2; // […

【新年心安】新冠感染“阳康”套餐,“阳康”后的你,很有必要

你有没有 在阳康后还伴随 呼吸急促&#xff08;气短&#xff09;、全身乏力、咳嗽、出冷汗等 健康问题阳康健康检查套餐 潍坊正大光明老年病医院为更好的服务患者现推出阳康健康检查套餐&#xff0c;“阳康”后的你&#xff0c;体检先行很有必要&#xff01;详情如下&#xff1…

【LeetCode面试TOP100】力扣打卡第一天!

✨哈喽&#xff0c;进来的小伙伴们&#xff0c;你们好耶&#xff01;✨ &#x1f6f0;️&#x1f6f0;️系列专栏:【LeetCode面试TOP100】 ✈️✈️本篇内容:力扣Top100——第1,2题&#xff01; &#x1f680;&#x1f680;代码存放仓库gitee&#xff1a;力扣面试Top100题&…

JavaScript刷LeetCode拿offer-js版字典

1. 字典简介 与集合类似&#xff0c;字典也是一种存储唯一值的数据结构&#xff0c;但它是以键值对的形式来存储。 使用 ES6 Map 1.1 字典的常用操作 const m new Map();// 增 m.set(a, aa); m.set(b, bb);// 删 m.delete(b); m.clear();// 改 m.set(a, aaa)// 查 m.get(a…

【JavaScript 逆向】极验三代无感验证码逆向分析

相关文章 【JavaScript 逆向】极验三代滑块验证码逆向分析 【JavaScript 逆向】极验四代无感验证码逆向分析 【JavaScript 逆向】极验四代滑块验证码逆向分析 声明 本文章中所有内容仅供学习交流&#xff0c;相关链接做了脱敏处理&#xff0c;若有侵权&#xff0c;请联系我…

ESP32设备驱动-HDC1008温度传感器驱动

HDC1008温度传感器驱动 1、HDC1008介绍 Texas Instruments 的 HDC1008 是一款带有集成温度传感器的数字湿度传感器,能够以极低的功耗提供出色的测量精度。 该设备基于新型电容传感器测量湿度。 湿度和温度传感器在出厂时已校准。 创新的 WLCSP(晶圆级芯片规模封装)使用超紧…

dubbo源码实践-Exchange 信息交换层例子

1 Exchange 层概述官方定义&#xff1a;exchange 信息交换层&#xff1a;封装请求响应模式&#xff0c;同步转异步&#xff0c;以 Request, Response 为中心&#xff0c;扩展接口为 Exchanger, ExchangeChannel, ExchangeClient, ExchangeServer。其中Exchanger是SPI扩展点&…

虹科分享 | 网络流量监控 | 构建大型捕获文件(Ⅰ)——Wireshark过滤器和其他Allegro网络万用表工具

数据包分析是一个复杂的话题。如果在没有设置参数的情况下启动Wireshark&#xff0c;就会开始实时捕获或打开一个预先录制的pcap文件。在很短的时间内&#xff0c;可能有成千上万的数据包等待分析。有一种危险&#xff0c;就是被大量的数据困住了。 然而&#xff0c;如果用户想…

BPF学习笔记(八)--Linux tracing system对比分析

Linux trace技术发展已久&#xff0c;经常看到很多的专业术语&#xff0c;从perf LTTng systemtap bpftrace tracepoint trace BCC bpf ebpf等词汇&#xff0c;这些关键的词汇有着怎样的联系和关联&#xff0c;通过下面的这个图可以直观的认识到这几种关键技术的内在联系。 整…

Java认识多线程与Thread类的使用

目录 认识线程&#xff08;Thread&#xff09; 概念 为什么会有线程的出现&#xff1f; 刨根问底。为什么进程的创建与销毁效率很低呢&#xff1f; 多线程的轻量体现&#xff1a; 进程与线程的区别 第一个多线程程序 抢占式执行是啥 JDK中jconsole工具的使用 创建线程…

Live800:智能客服机器人的知识库怎么创建?

智能客服机器人的知识库是以知识为基础的系统&#xff0c;它可以明确地表达与实际问题相对应的知识&#xff0c;并构成相对独立的程序行为主体&#xff0c;有利于有效、准确地解决实际问题。从本质上来说&#xff0c;智能客服机器人的知识库实际上就像人类的大脑&#xff0c;储…

Flutter关于软键盘的一些问题

Scaffold类有个resizeToAvoidBottomInset 属性&#xff0c;它的作用是当弹出软键盘的时候&#xff0c;可以自动调节body区域的高度&#xff0c;撑起body的内容&#xff0c;使其底部高度刚好为键盘的高度&#xff0c;这样一来就不至于让键盘覆盖内容。 Scaffold( /// ..... ///…

教你如何搭建CRM—商机管理系统的demo

1、简介 1.1、案例简介 本文将介绍&#xff0c;如何搭建CRM-商机管理。 1.2、应用场景 CRM-商机管理应用完整记录所有商机资料&#xff0c;合理的对商机进行销售阶段的变更&#xff0c;实现商机管理智能化。 2、设置方法 2.1、表单搭建 1&#xff09;新建主表【商机】表…

进程间通信——共享内存

目录 1 概念 2 操作流程 fork(获取key值) shmget(申请对象) shmat(内存映射) 读写共享内存&#xff1a;类似堆区内存的直接读写 shmdt(解除映射) shmctl(删除对象) 范例&#xff1a; 1 概念 共享内存是进程间通信中最简单最高效的方式之一。共享内存允许两个或更多进程…