自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android SQLite 数据库存学习与总结

SQLite 是一种轻量级的关系型数据库,它不仅支持标准的 SQL 语法,还遵守了数据库的 ACID (Atomicity原子性、Consistency 一致性 、Isolation 隔离性 、Durability 持久性)事务。不同的是,当数据库不可写入时(如磁盘空间已满),前者返回的对象将会以只读的方式打开数据库,而后者将会出现异常。此外,需要注意的是,当数据库已存在时,程序是不会再创建数据库的。方法来创建或打开数据库,这两个方法都会返回一个可对数据可进行读写操作的。方法,并且还要定义一个构造方法。

2024-07-02 17:02:47 967

原创 Android 11.0 SettingsProvider 源码分析

Android 系统设置提供数据共享的 Provider,它包含全局、安全和系统级别的用户偏好设置。Global:全局偏好设置 ,对系统中所有用户公开;System:系统偏好设置Secure:安全偏好设置。此外,为了方便对数据的操作,系统对 SettingsProvider 的一些接口进行封装处理。在 Settings 类中,分别声明了 Global、Secure、System 三个静态内部类,分别对应上述的三种数据类型。

2024-07-02 16:58:27 648

原创 Android 查询及获取应用程序 Package 及 Acticity 名称的方法

注意:在 Android 11 (API 30)中引入了包可见性的概念,即在 Android 11 及以上版本中将不能直接获取或查询到系统已安装的全部应用包名,包括第三方应用。最后通过上述 log 信息可知,包名为 com.android.gallery3d ,被启动的活动名为 GalleryActivity。查询包和安装信息(安装来源)

2024-06-11 10:50:27 2072

原创 Android 应用程序 ANR 问题分析总结

应用程序无响应。如果应用程序在UI线程被阻塞太长时间,就会出现ANR,通常出现ANR,系统会弹出一个提示提示框,让用户知道,该程序正在被阻塞,是否继续等待还是关闭。

2024-06-11 10:47:58 1164

原创 SpringBoot 项目创建和 IDEA 常见问题

项目创建成功,可以在src的包名目录及resources目录下分别看到一个启动类(这里是DemoSpringBootApplication.java)和项目配置文件 application.properties。至少选择 Spring Web ,当然真正的项目肯定少不了SQL等依赖,比如 Mybatis Framework。Group:groupId,它分为几个字段,例如com.piggy,其中com叫域,piggy叫域名。JDK:项目JDK。项目脚手架(开源脚手架,项目基础框架,便于开发)

2024-06-11 10:36:20 1366

原创 Android 按上/下键,焦点会移动到第一个控件上面或最后一个控件下面的解决办法

Android开发过程中,在页面中按上或者下键,有时候会出现焦点移动到第一个控件上面或者最后一个控件下面,即焦点会移出当前View,这时就需要对第一个控件或最后一个控件做限制。而最后一个控件按下键的拦截限制同理。以第一个控件(该控件设置了。

2024-05-30 18:30:12 580

原创 Android xml 代码绘制图形之 Shape 详解

shape--共有4种类型:矩形(默认)、椭圆、直线、环形-->--以下4个属性只有当类型为环形时才有效-->--内环半径-->--内环半径相对于环的宽度的比例,比如环的宽度为100,比例为2.0,那么内环半径为50-->--环的厚度-->--环的厚度相对于环的宽度的比例-->--如果当做是LevelListDrawable使用时值为true,否则为false-->

2023-10-24 10:05:48 511

原创 android获取屏幕分辨率的正确方法;获取到分辨率(垂直方向像素)的不正确

我通过此方法去获取屏幕分辨率的,但获取到的分辨率有时会不准确。原因是此方法有时候会忽略一些布局或控件的高度,从而得不到正确的高度。而通过此方法则没有上述那种问题,可以获取到正确的屏幕分辨率。

2023-08-07 16:51:04 2375

原创 Android 修改 SELinux avc 权限的方法

在 Android 系统的开发及适配过程中,我们常常需要对 SELinux avc 权限进行修改

2023-03-01 16:52:54 5377 1

原创 java.lang.SecurityException: Permission Denial: startForeground …… permission.FOREGROUND_SERVICE

报错信息:Caused by: java.lang.SecurityException: Permission Denial: startForeground from pid=6632, uid=10122 requires android.permission.FOREGROUND_SERVICE原因:从Android 9.0系统开始,使用前台Service必须在AndroidManifest.xml文件中进行权限声明。例如,<manifest xmlns:androi

2022-05-03 14:25:45 914

原创 WebView出现net:ERR_CLEARTEXT_NOT_PERMITTED和net::ERR_UNKNOWN_URL_SCHEME错误的解决办法

1、net:ERR_CLEARTEXT_NOT_PERMITTED错误原因:Starting with Android 9 (APIlevel 28), cleartext support is disabled by default.即从Android 9.0(API级别28)开始,默认情况下禁用明文支持。因此http的url均无法在webview中加载。解决办法:方法一1:把 "http://" 改成 "https://"方法2:在AndroidManifest.xml.

2022-04-27 16:44:34 16651 1

原创 adb: error: failed to get feature set: more than one device/emulator

当输入 adb 命令操作设备时提示【more than one device/emulator】错误,可能的原因是电脑同时连接了一台以上的Android设备。以下解决办法:1、使用 adb devices 命令查看连接的设备信息例如,List of devices attachedCUY3ITPD0R devicesp09107238163576 device2、使用 adb -s <设备序列号>命令指定设备,再接操作命令即可例如,adb -s...

2022-04-22 15:44:09 15730 1

原创 Android 接收不到静态广播(自定义广播)

最近,我在学习 Android 广播接收器时发现了个问题,就是我按照书上的方式去自定义一个静态广播,然后却怎么也接收不到自己定义的广播。我当时自定义静态广播的代码如下,定义广播:public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceStat

2022-03-04 11:09:05 9478 3

原创 批量修改照片(图片)格式、批量旋转照片方向(图片)、批量命名照片(图片)

1 修改照片格式的方式1、批量修改照片格式,例如:mogrify -format jpg *.png2、批量或单张修改照片格式,例如:convert *.jpg *.png2 旋转照片方向的方式1、批量将照片顺时针旋转90度,例如:mogrify -rotate 90 *.png2、批量将照片逆时针旋转90度,例如:mogrify -rotate -90 *.png3 批量修改照片名称应用场景:现有名称格式为 【图层 1.png】~【图层

2022-02-23 16:21:35 2500

原创 Linux(Ubuntu)终端不能输入中文的解决办法

在用户目录下打开或新建 .inputrc 文件 , 然后添加以下内容:set meta-flag onset convert-meta offset input-meta onset output-meta on如果还是不能输入中文,可以试试在 /etc/profile 文件里添加以下内容:LANG=”zh_CN.UTF-8”LC_MESSAGES=”zh_CN.eucCN”export LANG LC_MESSAGES编辑 /etc/profile 文件的两种方式:打开

2022-02-23 11:43:05 14577 12

原创 Java泛型的简单理解

泛型的概念:泛型就是把要操作的数据类型指定为一个参数,即参数化类型。但看这句话是不是还有点懵?没关系,先来看个例子。例1:private void generic(){ List list = new ArrayList(); list.add("111"); list.add("222"); list.add(333); for(int i = 0; i< list.size(); i++){ .

2022-02-16 15:05:50 293

原创 Android创建通知和更新通知的简单实现方法

1.布局布局这里添加发送和更新通知的两个按钮,其中更新按钮默认不显示,即visibility="gone"<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_w...

2022-02-11 09:47:10 9707 3

原创 Android获取物理键盘按键的keycode

有时候,我们需要获取键盘按键的keycode值来对某个按键设置相应功能,这时候可以通过以下几种方法获取按键的keycode值:1、通过onKeyDown()方法打印按键的keycode值在Activity中添加以下方法,然后打印Log即可。不过,这种方法只能获取到数字、字母、特殊符号和部分功能键的keycode值,有一部分功能键、组合键可能无法打印。@Override public boolean onKeyDown(int keyCode, KeyEvent event) {

2022-01-25 18:05:47 8249 3

原创 ubuntu提示根目录存储空间不足的解决办法

因为每次系统使用都会产生大量的日志文件,如果没有设置自动清理日志文件或者分区较小,日志文件在一段时间的堆积后就会导致存储空间不足,所以需要清除日志文件。以下是清除步骤:1、切换为超级用户su2、查看日志文件大小du -h –max-depth=1 /var/log/*3、删除较大的日志文件一般删除的是这几个文件:/var/log/syslog.1/var/log/syslog/var/log/kern.log/var/log/kern.log.1rm -rf /var/log

2021-12-27 16:28:08 9853 1

原创 android如何使用adb命令启动一个app(应用)

android如何使用adb命令启动一个app(应用)在Android系统中,有些应用虽然安装了,但它们却隐藏了自己的桌面图标,所以我们一般无法通过点击图标启动它们。这里有一个办法,就是可以通过命令来启动它们。不过在用命令启动隐藏的应用之前,我们得先知道应用的包名和主活动名。命令格式:adb shell am start -n 应用包名/.应用主活动名例如:adb shell am start -n com.android.calendar/com.android.calendar.AllInOn

2021-12-27 15:53:35 9964

原创 android studio导入jar包的方式;Add as Library

android studio导入jar包的方式1、新建工程后一般默认Android模式,这里需要切换到Project模式;2、提前复制好jar包。在Android studio中打开Project/app目录,然后找到libs,点击右键粘贴jar包;3、粘贴好jar包后,选中该文件点击右键,然后在出现的对话框中找到并点击Add as Library…添加为类库;4、最后就可以看到jar中的工具类了。如果想要调用这些工具类,需要导入相应的包名+类名,如这里是" import com.jlink.

2021-12-15 15:40:50 5423 1

原创 android调节系统音量之获取和设置音量(媒体音量、通话音量和提示音量等)

android调节系统音量之获取和设置音量(媒体音量、通话音量和提示音量等)import android.app.Service;import android.content.Context;import android.media.AudioManager;/** * 音量工具类 */public class VolumeUtil { private AudioManager mAudioManager; public VolumeUtil(){} public

2021-11-05 15:56:38 8601 1

原创 android调节系统音量之修改默认音量、最大音量和最小音量

android调节系统音量之设置默认音量、最大音量和最小音量有时候我们想改变系统的默认音量等音量属性,这时可以修改以下对应内容实现:默认音量//位置 frameworks/base/media/java/android/media/AudioSystem.java/** @hide */ public static int[] DEFAULT_STREAM_VOLUME = new int[] { 4, // STREAM_VOICE_CALL 7,

2021-11-05 14:54:15 17412 4

原创 android调节系统亮度的方法

android调节系统亮度的方法Android系统允许APP直接调节当前屏幕亮度,但是却不能直接调节系统亮度,这需要申请权限或询问用户,比较麻烦。不过并不是没有解决办法,我们可以修改框架层的代码绕开这个步骤。这里提供一种使用广播的方式直接调节系统亮度的办法。思路:在应用层设置一个广播,把我们改变的亮度值发送出去。在框架层设置一个接收器,接收发送过来的亮度值并调用调节亮度的方法,该方法根据传送过来值改变系统亮度。--------------------实现-----------------------

2021-10-30 15:45:17 4860

原创 android调节当前屏幕亮度的实现方式

android调节当前屏幕亮度;获取系统屏幕亮度;seekbar拖动条1、效果图2、布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_

2021-10-29 10:03:18 2869

原创 android获取电池信息;android获取电池容量、技术、电压、电量、温度等信息

android获取电池信息;android获取电池容量、技术、电压、电量、温度等信息public class BatteryUtil { private static final String TAG = "BatteryUtil"; private static String technology; private static int voltage; private static int level; private static double tempera

2021-10-20 15:14:58 8588

原创 android获取GPU信息;android获取GPU渲染器、供应商、版本和扩展名等信息

android获取GPU信息;android获取GPU渲染器、供应商、版本和扩展名1、布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_par

2021-10-19 10:36:56 4392

原创 adb命令获取设备IMEI

adb命令获取设备IMEI1、查看adb shell service call iphonesubinfo 12、输出正确格式adb shell service call iphonesubinfo 1 | awk -F “’” ‘{print $2}’ | sed ‘1 d’ | tr -d ‘.’ | awk ‘{print}’ ORS=

2021-10-18 17:09:16 12001

原创 android获取MAC地址

android获取MAC地址1、测试版本:Android 102、添加权限<!-- 授予程序访问网络的权限--> <uses-permission android:name="android.permission.INTERNET"/>3、获取方法/** * 获取MAC地址 */ public static String getMacAddress() { try { // 把当前机器上访问网络

2021-10-18 16:22:01 5284 1

原创 android更新UI(界面)的方法;android刷新界面数据的方法;android定时器更新界面

android更新UI(界面)的方法;android刷新界面数据的方法;android定时器更新界面;android显示当前时间一、定时器更新UI的两种方法1、使用Timer的方式private Timer timer=new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {times.setText(CurrentTime());}},0,500); //延迟500毫秒后,执行一次task...

2021-10-16 16:01:33 9810 4

原创 编译报错: error: method does not override or implement a method from a supertype

编译报错:error: method does not override or implement a method from a supertype@Overrideerror: TestDocumentClipper is not abstract and does not override abstract method copyFromClipboard(DocumentInfo,DocumentStack,Callback,Injector) in DocumentClipper以上是在子

2021-09-17 14:30:08 11431

原创 layout_gravity不能居中以及失效、无法使用问题的解决办法

layout_gravity不能居中以及失效、无法使用问题的解决办法今天在工作中遇到了关于layout_gravity属性失效的问题,在查阅了相关资料后,了解到了一些解决的办法,顺便写一篇文章记录一下。首先,先了解一下layout_gravity属性的含义:layout_gravity 表示组件自身在父组件中的位置然后,是我遇到的问题--android:layout_gravity="center"在RelativeLayout布局中不能居中。以下是代码示例:<?xml version

2021-08-30 12:27:39 3918 3

原创 Java(4):while循环结构的应用:使用Random类,随机生成0-100随机数,直到生成88为止

使用Random类,随机生成0-100随机数,直到生成88为止Random r=new Random();//定义一个int型变量number用于接收随机生成的数int number=0;//使用while循环结构,当生成数number!=88,循环就一直执行下去,直到number=88循环结束 while(number!=88) { //生成100以内的整数 number=r.nextInt(100); System.out.println(number);}运行结果(部分):

2020-05-22 13:51:40 1372

原创 Java(3):阶乘及求和1-5

对阶乘及求和:求1!+2!+3!+4!+5!=?int sum=0;//定义sum用于存放各个阶乘的和int pro=1;//定义pro用于存储每个阶乘的积//求1!+2!+3!+4!+5!=?for(int i=1;i<=5;i++) { pro*=i; sum+=pro; System.out.println(i+"!="+pro+"\t"+"sum="+sum);}运行结果:...

2020-05-22 13:38:37 2114

原创 Java(2):for循环的应用,打印三角形(金字塔)

1.打印*直角三角形目标图形:分析:一、目标图形由星号*组成,共有5行;二、每行对应的星号*数目为:第1行1个、第2行2个、第3行3个、第4行4个、第5行5行,可以看出每行的星号*个数等于行数。所以代码如下://打印直角(左)三角形//外层循环控制行数for(int i=0;i<5;i++) { //内层循环控制输出*的个数 for(int j=0;j<=i;j++) { System.out.print("*"); } //换行 Sy

2020-05-22 13:19:17 1596

原创 Java(1):数据的类型转换(自动类型转换和强制类型转换)

1.自动类型转换 自动类型转换:指的是容量小的数据类型自动转换为容量大的数据类型。 常见数据类型的转换方式如下图所示:值得注意的是:蓝色虚线部分表示的是在转换时可能会有精度的损失。 boolean类型的数据不可以自动转换。代码示例1int a=2345;long b=a;int c=b;//你会发现这行报错,因为long类型不能自动转换为int类型按照示例1的代码,那么问题来了,是不是容量大的数据类型都不能转为容量小的数据类型呢?其实不是!自动类型转换中也有特例..

2020-05-19 00:15:19 468

原创 Java中如何计算字符串中的英文字母个数呢?

Java中如何将计算字符串中的英文字母个数?

2019-06-15 00:27:13 8164

开机动画压缩包 bootanimation.zip

开机动画压缩包 bootanimation.zip

2024-07-01

res-CheckBox和Switch图标

res-CheckBox和Switch图标

2024-06-29

ic-back-to-previous-page-tip.png

ic_back_to_previous_page_tip.png

2024-06-20

Android的KeyCode与KeyASCII值对照表

Android的KeyCode与KeyASCII值对照表

2022-01-25

生成壁纸缩略图的方式.zip

用于生成每张壁纸对应的缩略图

2021-12-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除