Android开发笔记

这篇具有很好参考价值的文章主要介绍了Android开发笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、知识点

1、Notification 通知的创建流程

1)创建一个NotificationManager,获取系统服务,getSystemService()方法;
2)使用Builder构造器来创建Notification对象,设置通知的各种属性; 3)NotificationChannel 通知渠道,Android8.0引入了通知渠道,允许为要显示的每种通知类型创建用户可自定义的渠道;
4)发送通知,notify()方法;

2、刷新当前Activity: onCreate(null);
3、Intent

Intent的相关属性:

 - component(组件):目的组件   
 - action(动作):用来表现意图的行动 
 - category(类别):用来表现动作的类别 
 - data(数据):表示与动作要操纵的数据  
 - type(数据类型):对于data范例的描写   
 - extras(扩展信息):扩展信息(传值) 
 - Flags(标志位):期望这个意图的运行模式

显示Intent:直接指定目标组件名称;
隐式Intent:Android系统根据Intent属性自动匹配目标组件;

4、事件处理流程(基于监听)
外部动作——触发——事件源;
事件源——产生——事件;
事件监听器——监听到——事件;
事件监听器——事件处理器;
事件监听器——监听——事件源;
5、尺寸单位
  • px (pixels) 像素,屏幕上的点,不同设备显示效果相同,例如,HVGA代表320×480像素。

  • in(英寸) 屏幕的物理尺寸, 每英寸等于2.54厘米。

  • pt (point) 标准长度单位, 1pt=1/72英寸,用于印刷业,UI设计师会用,iOS字体单位,Android开发不涉及。

  • dpi (dots per inch) 打印分辨率,每英寸所能打印的点数,即打印精度; 每英寸点数,即每英寸包含像素个数。

  • ppi (pixels per inch) 图像分辨率, 像素密度,在图像中, 每英寸所包含的像素数目。

  • density (屏幕密度), density和dpi的关系为 density = dpi/160。density这个概念方便理解不同dpi的倍数关系。

  • dp (也即dip,device independent pixels) 设备独立像素,与密度无关的像素,基于屏幕密度的抽象单位,主要用于边距、组件大小,在320x480分辨率,同时每英寸160点(dpi = 160)的显示器上,1dp = 1px。

  • sp (scaled pixels) 放大像素,与刻度无关的像素,字体单位,可以根据用户的字体大小首选项进行缩放。sp和dp一样,以160ppi屏幕为标准,当字体大小为 100%时, 1sp=1px。

6、开发传感器应用的步骤

1)获取SensorManager对象,getSystemService(Context.SENSOR_SERVICE);
2)获取指定类型的传感器;
3)为指定传感器注册监听器,在Activity的onResume()方法中调用注册方法;

7、测试工作中的常用符号
- Pass(ok)	   		 ————		测试通过
- Pok			 	 ————		多条测试用例部分通过
- Fail			 	 ————		测试出问题,未通过
- NT (Not Test)		 ————		未测试
- NA (Not Available) ———— 		产品并无此测试用例所对应的功能
- Block			 	 ————		因某些特殊原因阻塞
8、Spring Framework系统框架

springframework 是spring 里面的一个基础开源框架,主要用于javaee的企业开发,它是一个基于IOC和AOP的构架多层j2ee系统的框架,但它不强迫必须在每一层中必须使用Spring,对不同的数据访问技术提供了统一的接口,采用IOC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现Transaction Management。

Android开发笔记,android,笔记

  • Core :Spring 框架的基本组成部分,它包括控制反转及依赖注入功能。
  • Beans :实现 Spring 对 Bean 的管理,包括自动装配机制等功能。
  • Context :用于访问项目配置及自定义对象,ApplicationContext 接口是 Context 模块最重要的接口。
  • SpEL (Spring Expression Language,表达式语言模块):提供在运行时查询和操作一个对象的表达式机制。
  • JDBC :用于实现 JDBC API 的抽象层。
  • ORM :对象关系数据库映射抽象层,基于该模块,Spring 框架可以方便地集成 Hibernate 和 MyBatis。
  • OXM (XML消息绑定抽象层):基于该模块,使 Spring 框架能够支持 JAXB、Castor、XMLBeans、JiBX 和 XStream。
  • JMS :Spring 支持 Java 消息服务的重要模块,集成了 JMS 的项目即可实现消息生产和消费的功能。
  • Transactions :Spring 的事务模块,Spring 框架支持编程式和声明式的事务管理。
  • Web :即 Spring MVC,提供了基于“模型-视图-控制器”的基础 Web 应用框架,可替代 Struts 2。
  • Servlet :实现统一的监听器和面向 Web 应用的上下文,用以初始化 IoC 容器。
  • AOP :用于 Spring 面向切面的编程实现。
  • Aspects 模块:Spring 与 AspectJ 的集成,可以使用 AspectJ 来实现面向切面编程。
  • Test :支持 JUnit 和 TestNG 单元框架的集成,可以快速开展业务代码的单元测试。
9、java 小知识
- 快速生成 main 方法:psvm+回车;
- 快速生成 System.out.println():sout+回车;
- 切换Java程序:alt+/右箭头;
10、Activity的生命周期
  • 启动 当activity启动后便会进入下一状态;
  • 运行 activity处于屏幕最前端,可与用户交互;
  • 暂停 activity仍可见,但无法获得焦点,用户对它操作无响应;
  • 停止 activity完全不可见,系统内存不足时会注销该activity;
  • 销毁 activity将被清理出内存;
11、本地往GitHub上传项目
- git config --global user.name "xxx"
- git config --global user.email "xxx"
- git init
- git add
- git status
- git commit 
- git remote add origin [ git 仓库地址 ]
- git pull origin master
- git push -u origin master

补充:

  • git 拉取最新代码时,需确保当前HEAD 位于最新最近的一笔提交上;
  • gerrit push代码时,需要有合法的 commit message,且不能太长,一般在50个长度以内,title不能有特殊字符不能有空格,bug_id号需为激活状态;
12、Java优点( 较 C/C++ )
  • 解决内存泄露:垃圾回收机制
  • 空指针异常:彻底隐藏了指针的引用
13、Repo常用命令
- repo sync			#同步当前所有项目
- repo sync 【project1】 【project2】		#同步某些项目
- repo start     xxx 		#创建一个分支
- repo branches		#查看当前有多少分支
- repo status    #查询当前状态
- repo diff		 #查询未提交的修改
- git add   	 #暂存文件
- git commit 	 #提交到仓库
- repo upload 	 #上传到代码服务器

注:Repo 是Google用Python脚本写的调用git的一个脚本代码管理工具。

———————————————————————————————

二、bug及及解决方案

1、Ubuntu电脑网络卡顿

分析:

1)安装了虚拟机,主机与宿主机的网络连接方式为桥接模式,共用一个网卡,导致主机网络变慢;
2)ubuntu电脑安装了docker;

解决:

1)采用NAT+Host-only两种组合的方式 ;
2)卸载掉docker;
3)该用清华源或阿里源;

2、记事本删除记录进度条 progressDialog 调用时弹出缓慢,过程不显示,结束后不消失;

分析:

线程问题;

解决:

1)new Thread 开启一个线程,设置sleep缓存时长,最后别忘 .start();
2)在上述线程中设置时进度条调用
progressDialog.incrementProgressBy(values) 方法,value是进度条每次变化的长度;
3)无法直接在子线程中更新UI界面,需调取UI线程或者使用 handle;

3、在子线程中不能直接弹出Toast

分析:

非主线程中并没有开启 Looper;

解决:

在具体逻辑的前后加入 Looper.prepare 和 Looper.loop() 方法;

4、Toast 多次点击时重复排队显示,等待直到所有toast显示完毕

解决:

做判断,当( Toast != null )时,setText( text ) 即可;只有当Toast 为空时,才重新 new Toast;文章来源地址https://www.toymoban.com/news/detail-560345.html

5、

到了这里,关于Android开发笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第一行代码Android----阅读笔记(UI开发_1)

            在过去,Android应用程序的界面主要是通过编写XML的方式来实现的。写XML的好处是,不仅能够了解界面背后的实现原理,而且编写出来的界面还可以具备很好的屏幕适配性。         不过最近几年,Google又推出了一个全新界面布局: ConstraintLayout 。和以往传统的布局

    2024年01月25日
    浏览(45)
  • FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库

    ​ 《FFmpeg开发实战:从零基础到短视频上线》一书的例程主要测试本地的音视频文件,当然为了安全起见,很多网络视频都采用了https地址。FFmpeg若要访问https视频,就必须集成第三方的openssl库,但编译FFmpeg时却默认关闭了openssl。为了让App能够播放采用https的在线视频,需要

    2024年04月22日
    浏览(40)
  • FFmpeg开发笔记(八)Linux交叉编译Android的FFmpeg库

    ​ 《FFmpeg开发实战:从零基础到短视频上线》一书的“12.1.2  交叉编译Android需要的so库”介绍了如何在Windows环境交叉编译Android所需FFmpeg的so库,接下来介绍如何在Linux环境交叉编译Android所需FFmpeg的so库。 登录Linux服务器(比如华为云的欧拉系统),依次执行下面的命令。 重

    2024年03月24日
    浏览(50)
  • Android问题笔记四十三:JNI 开发如何快速定位崩溃问题

    Unity3D特效百例 案例项目实战源码 Android-Unity实战问题汇总 游戏脚本-辅助自动化 Android控件全解手册 再战Android系列 Scratch编程案例 软考全系列 Unity3D学习专栏 蓝桥系列 ChatGPT和AIGC 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、工具、素材、源码、游戏等

    2024年02月05日
    浏览(51)
  • FFmpeg开发笔记(九)Linux交叉编译Android的x265库

    ​ 《FFmpeg开发实战:从零基础到短视频上线》一书的“12.1.2  交叉编译Android需要的so库”介绍了如何在Windows环境交叉编译Android所需FFmpeg的so库,前文又介绍了如何在Linux环境交叉编译Android所需FFmpeg的so库,接下来介绍如何在Linux环境交叉编译Android所需x265的so库。 执行以下命

    2024年04月08日
    浏览(72)
  • 【Android13开发WIFI添加频段设置项(2.4G/5G/automatic)更改笔记】

    提示:这里简述项目相关背景: Android13中客户需求添加WIFI频段选项: 2.4G only,只显示链接2.4G的AP。 5G only,只能显示和链接5G的AP。 Automatic:自动显示,即全部正常显示。 提示:这里描述项目中遇到的问题: 作为初学者的我,刚开始接到这个bug,还是比较懵的,多亏了CSDN的前辈

    2024年02月05日
    浏览(44)
  • android界面开发详解,Unity实战问题--Loading更好的实现方式,714页PDF的鸿蒙学习笔记,

    最后进度条的效果显示如下: 进度条并没有连续的显示加载的进度,而是停顿一下切换一个数字,再停顿一下切换一个数子,最后在没有显示100%就情况下就切换到主场景了。究其原因在于 Application.LoadLevelAsync 并不是真正的后台加载,它在每一帧加载一些游戏资源,并给出一个

    2024年04月26日
    浏览(38)
  • mipi接口 1280(RGB)*720 LCD屏开发驱动笔记帖 1、MTK8788[android 9.0]GT9XX TP触摸屏驱动流程分析

    ps:创业开发产品,自学笔记,不一定适合教材性的阅读,零碎整理,自我总结用 材料:4.1寸lcd屏两块,屏自带触控,屏幕资料具备,rk3399和MK8788开发版上分别开发。 1】rk3399       ​​​​​​​ 开发板:友善的rk3399v2开发版, 资料链接 : 处理器:RK3399 内核: 编译工具

    2023年04月08日
    浏览(141)
  • 【Android学习笔记】Android布局属性大全

    第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 android:layout_alignParentBottom 贴紧父元素的下边缘 android:layout_alignParentLeft 贴紧父元素的左边缘 android:layout_alignParentRight 贴紧父元素的右边缘

    2024年01月16日
    浏览(38)
  • Android开发-Android开发环境搭建(Android Studio详细安装教程,适合新手)

    01 Android开发工具 Android Studio Android Studio是谷歌推出的一个Android集成开发工具, 基于 IntelliJ IDEA .类似Eclipse ADT, Android Studio提供了集成的Android开发工具用于开发和调试 架构组成 。基于Gradle的构建支持 。Android专属的重构和快速修复 。提示工具以捕获性能、可用性、版本兼容性

    2024年02月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包