自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 收藏
  • 关注

原创 Android EditText输入暂停2秒后默认为输入事件完成

EditText

2023-02-17 14:02:28 562

原创 遍历对象为null的属性

public static String checkFieldValueNull(Object bean) { StringBuffer sb=new StringBuffer(); sb.append(""); if (bean == null) { return sb.toString(); } sb.append(bean.getClass().getName()+" 以下属性为空 "); Class<?> cls = b.

2022-04-15 16:53:44 377

原创 Android笔记

1.APP重启/*** * APP重启 * **/private void restartApp(Context context,Class<?> cls){ Log.d("TAG","aaa+++ Kill myself,because of need to restart after set font size."); Intent intent = new Intent(context, cls); intent.setFlags(Intent.FLA

2021-09-24 14:55:31 162

原创 DownloadManager做下载操作案例

package com.lenovo.dh.saveaudio;import androidx.appcompat.app.AppCompatActivity;import android.app.DownloadManager;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentF.

2020-11-29 15:16:35 255

原创 android11 存储机制变化之保存图片至图库代码案例

1.首先附上一份android 11存储机制变动简介官方文档供参考https://developer.android.google.cn/preview/privacy/storage#java2.参考源码实现的在android11中保存图片到图库的代码:public void saveImageToGallery2(Context context){ Long mImageTime = System.currentTimeMillis(); String imageDate

2020-11-09 17:23:00 4503 23

原创 Service篇相关总结

一 Service: 1.启动方式: (1)Context.startService(); 生命周期执行流程: 第一次启动: 08-25 13:49:43.038 9531 9531 D haohaoding--: onCreate() 08-25 13:49:43.038 9531 9531 D haohaoding--: onStartCommand() 08-25 13:49:43.038 9531 ...

2020-08-25 22:14:15 274

原创 Animator记录一次属性动画实现的逐渐出现和逐渐消失的动画

应用场景,View出场逐渐由小到大显示,View退出逐渐由大到小的效果:代码:Activity部分:package com.lenovo.dh.zuidemo.ui.activity;import android.animation.ObjectAnimator;import android.os.Bundle;import android.view.View;import android.view.animation.Animation;import android.view.an

2020-08-18 17:32:53 947

原创 浅谈跨进程隐私启动Activity

startActivity()的方式有显示和隐式方式,今天记录一下隐式启动。一:代码案例:被启动端Activity中:AndroidManifest.xml<activity android:name=".ui.activity.ActionActivity" > <intent-filter> <category android:name="android.intent.category.DEFAULT"/>

2020-08-18 14:02:12 1197

原创 Android国际化常见语言对应Values

1.泰语:values-th2.印地:values-hi3.越南: values-vi4.马来西亚:values-ms5.阿拉伯:values-ar6.保加利亚:values-bg7.西班牙语:values-es8.波斯语:values-fa9.孟加拉:values-bn10.印尼:values-in11.乌尔都:values-ur12.葡萄牙:values-pt/values-pt-rPT13.塞尔维亚:values-sr14.克罗地亚:values-hr15.斯洛文尼亚:va

2020-08-14 15:22:19 3217

原创 蓝牙相关知识总结

蓝牙:

2020-07-28 17:27:34 1773

原创 Android手机屏幕的三种状态

Android手机屏幕有三种状态变化分别是:屏幕开启变亮,屏幕解锁,屏幕关闭变黑。这三种状态系统都会发出对应的广播,外部应用只需去注册对应的广播的来监听即可得到屏幕的状态来做一些操作。private void initReceiver(){ IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(Intent.ACTION_SCREEN_ON); intentFilter.addActio

2020-07-28 15:49:48 837

原创 Android手机型号及产品名

首先聊聊产品名问题,每个手机平台都会设置一个型号做为项目名称,但是这个项目名称基本都不符合手机厂商自己品牌的产品名,厂商自己就会把它更改掉,在我的手机页面中显示出来,还有就是蓝牙显示默认名称,以及USB选择"传文件"模式在“我的电脑"中显示的名称。一般厂商都会自定义个system分区的属性值,比如:ro.zuk.product.market等待,来设置产品项目名。其它,模块去读取这个属性即可[String name= SystemProperties.get("ro.zuk.product.mar.

2020-07-28 15:31:48 2627

原创 Android开发修改状态栏背景颜色以及状态栏字体颜色

// 设置状态栏字体颜色 View stateView = getWindow().getDecorView(); if(stateView != null){ int vis = stateView.getSystemUiVisibility(); vis |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; //黑色 //vis &=...

2020-07-28 15:01:50 909 1

原创 Android中隐藏底部导航栏NavigationBar,以及修改NavigationBar按键颜色及NavigationBar背景颜色。

一:把NavigationBa隐藏掉Window window= getWindow(); WindowManager.LayoutParams params = window.getAttributes(); params.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|View.SYSTEM_UI_FLAG_IMMERSIVE; window.setAttributes(params);在setContentV...

2020-07-28 14:34:33 2547

原创 查看函数被调用的流程(通过打印堆栈日志的方法)

RuntimeException here = new RuntimeException("here"); here.fillInStackTrace(); Log.w("dh--","Called:",here);

2020-05-14 16:23:25 673

原创 解决跨应用程序启动services报without a permission not allowed for APK的问题

appA去启动appB的Sevices的情况:(1)appB的Services需要配置:<service android:name=".MyService" android:exported="true" android:permission="app.my.custom.services.permission"> &...

2020-03-01 22:14:37 1050

原创 自定义notification布局,加仿消息通知悬浮效果,加通知中控件点击事件 刷新界面的代码实现。

第一部分java文件:package com.lenovo.dinghao1.mydialog.notification;import android.app.Notification;import android.app.NotificationChannel;import android.app.NotificationManager;import android.app.Pen...

2020-02-24 11:04:01 698

原创 dumpsys 查看android 常用的service

1.dumpsys window: 可以查看window stack,wallpaper等情况2.dumpsys activity 可以查看所有activity service的情况 dumpsys activity oom 可以看到oom adj 信息3.dumpsys SurfaceFlinger 可以查看各个layer 的情况--------...

2019-12-06 10:54:19 1047

原创 android开发获取手机已连接的蓝牙设备(包括已链接的设备和已经配对绑定的设备)

在应用开发中有时会碰到操作蓝牙设备的需求,这时就需要获取手机已连接的蓝牙设备,其中"已连接"是广泛含义,其实蓝牙设备分为可链接设备(比如:蓝牙音箱 蓝牙耳机) 和可绑定设备(比如:手机 蓝牙自拍杆 蓝牙手表 蓝牙键盘等设备) 其中的区别就是connected状态,用int表示其区别共有三个值 10表示无绑定也无链接 11表示绑定 12表示链接。如果通过标准协议api获取已连接的设备由于其实现...

2019-11-28 14:25:27 7604 1

原创 android应用层api到系统应用的调用机制

android应用层的开发中使用的标准api都映射到系统源码的LINUX/android/framework/base下面,另外很多api的调用最终都会执行到一些系统的apk来完成,这其中关键的环节就是通过aidl机制来完成通信的,在Android系统源码中LINUX/android/system/目录下对应着aidl文件,具体的实现类也就是相对应的service一般在LINUX/android/...

2019-11-28 14:14:44 669

原创 TexView的字体透明度16进制对照表

2019-11-19 10:57:43 235

原创 Android控件背景点击按下变色并设置下部圆角弧度效果

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <shape> ...

2019-08-22 15:12:55 512

原创 android开发获取手机上的所有应用信息包括包名,应用名,版本,版本号等。

public static HashSet<String> getItems(Context context) { PackageManager pckMan = context.getPackageManager(); List<PackageInfo> packageInfo = pckMan.getInstalledPackages(0); H...

2019-08-13 11:22:25 1552

原创 Android不同应用间通过Service进行通信

步骤一:接收方应用定义一个service,清单文件中注册: <service android:name=".xx.xx.xxx" android:enabled="true" android:exported="true" android:process=":remote...

2019-08-09 15:57:28 484

原创 W10下adb配置完环境变量执行adb shell 仍然报错!!!

W10下adb配置完环境变量执行adb shell 仍然报错:daemon not running.starting it now on port 5037 *CreateProcess failure, er解决方案:1.将本机C:\WINDOWS\System32下的adb.exe文件复制到C:\Windows\SysWOW64下。2.将本机C:\WINDOW...

2019-07-23 11:15:04 1011

原创 Android中Handler的post和sendMessage的区别

1.post和sendMessage功能其实差不多,post其实也是通过sendMessage来实现的,都是发送消息到Handler所在的线程的消息队列中2.post的用法更方便,经常会post一个Runnable,处理的代码直接写在Runnable的run方法中,其实就是将这个Runnable发送到Handler所在线程(一般是主线程)的消息队列中。sendMessage方法主线程处理方法一...

2019-05-29 21:46:42 1759

原创 Android服务启动两种方式的总结

简介:Service是Android四大组件之一,也是可执行的程序,有自己的生命周期。创建,配置Service和创建,配置Activity的过程相似。和Activity一样,都是从Context派生出来的。一.Service的第一种启动方式采用start的方式开启服务使用Service的步骤:1.定义一个类继承Service2.在Manifest.xml文件中配置该Servic...

2019-05-29 21:25:34 437

转载 Android图片加载框架之(Glide和Picasso的区别,Glide的简单使用)

Glide,一个被google所推荐的图片加载库,常见的还有Picasso,Fresco等,每一个都非常稳定,功能也都十分强大。但是它们的使用场景基本都是重合的,也就是说我们基本只需要选择其中一个来进行学习和使用就足够了,每一个框架都尝试去掌握的话则有些浪费时间。最常用的是Glide和Picasso,今天就针对于Glide和Picasso的区别,以及Glide的简单使用来进行具体介绍Pica...

2019-05-29 00:33:52 311

原创 Activity的4种启动模式

1.Standard模式(该模式是activity的默认启动模式):Standard模式是Android的默认启动模式,不在配置文件中做任何设置时,那么这个Activity就是Standard模式,这种模式下,Activity可以有多个实例,每次启动Activity,无论任务栈中是否已经有这个Activity的实例,系统都会创建一个新的Activity实例。2.SingleTop模式...

2019-05-28 21:33:41 282

原创 Android之“横竖屏切换生命周期的执行过程”

当Activity被启动创建时(获取焦点置于前台)生命周期方法调用:onCreate() -->> onStart() -->> onResume()此时切换到横屏:onPause() -->> onStop() -->> onDestroy() -->> onCreate() -->> onStart() --&...

2019-05-27 23:18:40 322

转载 Java类加载机制

类的加载过程2.1 JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)。链接又分为三个步骤,如下图所示:1) 装载:查找并加载类的二进制数据2) 链接:验证:确保被加载类的正确性;准备:为类的静态变量分配内存,并将其初始化为默认值;解析:把类中的符号引用转换为直接引用;3) 初始化:为类的静态变量赋予正确的初始值...

2019-05-27 23:02:55 143

原创 Android手机获取当前是否安装有外置SD卡以及外置SD卡的状态是否挂载mounted

该工具类说明:获取手机存储设备如手机本身存储以及插入的外置SD卡存储信息,包括根路径,是否可以移除,以及是否为挂载状态,可根据是否可移除来判断是否是机身存储以及是否是插入的外置SD卡。package com.dh.lenovo.mysdcrd;import android.content.Context;import android.os.storage.StorageManager;i...

2019-05-08 20:37:14 1169

原创 RxJava笔记

一:RxJava是什么:1.异步任务处理数据2.扩展的观察者模式二:RxJava特点1.Jar包的大小 < 1MB2.轻量级框架3.支持Java 8 Iambda4.支持Java 6 + & Android2.3+5.支持异步和同步三:扩展的观察者模式讲解1.onCompleted()事件:事件结束时会把通知发送到观察者2.on...

2019-05-05 22:24:46 145

原创 处理网络图片产生OOM异常的总结

一:产生原因分析每个Android应用程序运行时都有一定的内存限制,限制大小视平台而定,个手机开发厂商的标准都不相同,因此在开发应用时需要特别关注自身应用的内存使用量,否则就容易出现内存溢出的情况,既OOM异常。常见的OOM异常主要是由程序中图片过多过大引起的,Android图片中有好多处理图片的框架,如ImageLoader,Fresco等。二:解决方案(1)每个Android手机屏...

2019-05-04 15:16:12 326

原创 android中修改NavigationBar的按键颜色和背景颜色

/** * 修改NavigationBar按键颜色 两色可选【黑,白】 * */public void setLightNavigationBar (Activity activity, boolean light) { int vis = activity.getWindow().getDecorView().getSystemUiVisibility(); ...

2019-04-28 18:18:26 9919

原创 OkHttp使用总结

首先添加依赖:implementation 'com.squareup.okhttp:okhttp:2.6.0'1.get请求2.post请求3.Post传Josn4.post提交File5.post上传文件6.下载文件//或者转化成BitmapBitmap bitmap = BitmapFactory.decodeStre...

2019-04-16 00:28:40 238

原创 Android从源代码的视觉总结出修改状态栏颜色的轻便方法

在app开发中不可避免的根据需求来改变状态栏背景颜色,纵观网上很多方法,总体感觉冗余繁琐,现从源码的视觉总结出一个轻便的方法,如下:

2019-04-13 10:53:54 288

原创 Android开发之修改状态栏背景色&设置状态栏背景透明

2.案例使用 public class StatusBarColor{ //改变状态栏颜色 public static void setStatusBarColor(Activity activity,int statusColor){ Window window = activity.getWindow(); //取消透明状态栏 window.clea...

2019-04-03 15:13:32 1345

原创 Android开发APK更新下载自动安装打开

private ProgressBar downLoadPB; //下载APK进度条private TextView allMount; //显示APK总大小的控件 private TextView currentMount; //显示当前已下载大小的控件 private TextView info_TV; //显示下载中或已完成 //下载方法(用Xutlis3的文件下载...

2019-04-03 15:11:59 2569

原创 Android常用的内存优化方法总结

1.降低运行时内存2.代码优化3.内存泄漏优化1.降低运行时内存降低运行时内存可以分为减小APK体积和Bitmap优化两部分(1)减小APK体积方法一:去除无用的资源代码,通过合理使用git,一些由于业务变更而基本不会用到的代码,该删除的决不能手软。即使以后要用到,通过git也能找回。同时一些图片资源未用到的也应该删除,因为即使gradle配了sharkresource选项发布的...

2019-04-03 15:10:14 988

空空如也

空空如也

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

TA关注的人

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