自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android中Camera的聚焦流程---应用层

在Camera中,autofocus是个很重要的知识点,一般有移动对焦,点击聚焦和长按聚焦,这里我们以展锐平台相机的点击聚焦为例,分析下聚焦在app层的流程。1、聚焦触发点击屏幕事件的触发PhotoModule.java的onSingleTapUp中 public void onSingleTapUp(View view, int x, int y) { ...... //调用Fo...

2020-05-07 11:23:50 1261 1

原创 Android中自定义弧形的seekbar

项目需求,需要做一个弧形的seekbar直接上代码,代码有注释package com.hughzhao.seekbardemo.ui;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Ca...

2020-03-24 14:49:47 1252 1

原创 Android的Preference的使用和监听事件

自己是做系统settings的,所以学习了Preference的用法,这里记录下来供大家参考。1、基本组成的使用1.1组织方式(组合控件)PreferenceScreen:最平白和基础的方式PreferenceCategory:带有层次感的方式请继续往下看 下面有展示1.2各组件介绍(单一控件)Preference一般用作设置中,常用的组件就下面四种组件含义组件名...

2019-08-09 17:47:42 4813 10

原创 Android Camera启动流程---应用层

今天来分析下camera的启动的流程,camera模块的整个流程是很复杂的,贯穿整个Android上下层。这里以展锐平台的原生相机为例,分析一下app层的camera启动流程。准备工作Camera模块的launcher入口即是CameraActivity,其继承自QuickActivity,QuickActivity的作用是解决两次onResume的bug,所以我们不必关心,直接来看CameraActivity中的onCreateTasks方法(调用自QuickActivity中的onCreate方法)

2020-06-17 17:12:49 2575

原创 浅谈Android中的事件分发

在我们实际的项目中,涉及到手势的操作很多,这就需要我们对Android的事件有一定的了解,才能设计出好的手势。本文就对Android中的事件分发做一些简单的介绍。1、Android中事件的基本概念1.1、事件分发的对象事件分发的对象就是事件,当我们触摸屏幕的时候就会触发一系列的事件。Touch事件相关细节(发生触摸的位置、时间、历史记录、手势动作等)被封装成MotionEvent对象。1.2、事件的种类Android中的事件分为4类:MotionEvent.ACTION_DOWN:按下Vie

2020-05-15 14:43:06 455 1

原创 Java中几种常见的单例模式写法

1、饿汉式package com.hughzhao.seekbardemo.single;/** * create by hugh * on 2020/4/14 */public class Singleton { private static Singleton instance= new Singleton(); private Singleton(){ ...

2020-04-14 10:35:35 178

原创 浅谈Android中动画的使用

Android中的动画重要分为两类:View Animation和Property AnimationView Animation又分为补间动画(Tween Animation)和帧动画(Frame Animation)

2020-04-14 09:33:17 213

原创 当ListView中有Button,如何使setOnItemClickListener失效

相信很多朋友设置了有Button的ListView之后,监听listview的item不生效了这里有三种解决办法1、在listView的item根布局中设置属性android:descendantFocusability="blocksDescendants" 2、设置listView的item中的Button属性android:focusable="false"android:fo...

2020-04-08 16:15:49 271

原创 Android P上访问非安全的http链接

记录一下Android p上访问http失败Android P上全面禁止了非安全的http链接,如果要使用非加密连接,需要配置network security config。步骤如下:1、在res/xml下新建network security config文件,名字任意,可以叫做network_security_config.xml<network-security-config&g...

2020-04-03 16:54:50 1019

原创 Android中圆角矩形背景

四个角都为圆角在drawable文件夹下新建文件round.xml<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!-- rectangle表示为矩形 --> <!-- 填充的颜色 --...

2020-03-24 15:39:40 1605

原创 Android strings.xml的特殊字符,添加空格或字符的方法

项目中要在string.xml 中显示特殊符号、如@号冒号等、直接写肯定不行啦只能考虑使用ASCII码进行显示、在XML中空格符不是用HMTL中的表示、而是用编码表示以下为常见的ASCII十进制交换编码:&#064; 对应 -----@-----&#058; 对应 -----:-----&#160; 对应 -----空格-----&#032; 对应 --...

2020-03-03 10:43:43 1303

原创 Android Studio配置阿里镜像

当你代理全部失效的时候,这也许可以解决你无法同步gradle的问题配置阿里镜像氛围两种:1.单个项目配置第一步:首先你需要确认你已经在 Settings -> Appearance&Behavior -> System Settings -> HTTP Proxy 中选中了 No Proxy。第二步:然后找到项目根目录下的 gradle.properties 文件...

2020-02-28 11:48:31 3060

原创 Android 10铃声列表按照客户要求排序

在路径:\providers\MediaProvider\src\com\android\providers\media\MediaProvider.java注意在insertFile和updateInternal方法里都要实现,因为在insertFile是初始化手机的时候调用,updateInternal是重启或者铃声列表发生变化的时候调用代码我就不分析了,很简单,一看就明白需要注意一点的...

2020-02-25 18:44:16 468

原创 Git Your branch is ahead of 'origin/master' by X commits解决方法

git reset --hard origin/master还有一个将本地代码与服务器代码更新一致的语句git branch -u origin/master

2020-01-02 09:55:03 1523

原创 调节音量的各个方法——AudioManager的使用

//获取AudioManager实例对象AudioManager audioManage = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);//获取最大音量和当前音量,参数:STREAM_VOICE_CALL(通话)、STREAM_SYSTEM(系统声音)、STREAM_RING(铃声)、STREAM_MUSIC(...

2019-12-12 15:05:11 1717

原创 Java中DecimalFormat的用法

public class TestNumberFormat{   public static void main(String[]args){     doublepi=3.1415927; //圆周率     //取一位整数     System.out.println(new DecimalFormat("0").format(pi));   //3     //取一位...

2019-12-11 15:54:32 254

原创 利用adb查询手机分辨率

首先adb shell接着输入wm size 回车即可如果想要查询比较详细的信息adb shell后输入dumpsys window displays |head -n 3

2019-12-09 15:10:13 472

原创 Git撤销&回滚操作(git reset 和 get revert)

git的工作流工作区:即自己当前分支所修改的代码,git add xx 之前的!不包括 git add xx 和 git commit xxx 之后的。暂存区:已经 git add xxx 进去,且未 git commit xxx 的。本地分支:已经git commit -m xxx 提交到本地分支的。远程分支:git push到的地方代码回滚在上传代码到远程仓库的时候,不免会出现问...

2019-12-09 13:54:10 257

原创 Android中打印intent的extra携带信息

Intent intent = getIntent(); Bundle bundle = intent.getExtras(); for (String key: bundle.keySet()) { Log.i("Bundle Content", "Key=" + key + ", content=" +bundle.getStri...

2019-11-06 14:35:12 3647

转载 Android系统的手机文件夹目录

1./acct/ 系统回收站,删除的系统文件。2./cache/ 缓存3./data/ 用户的所有程序相关数据app/ 所有用户安装的apk文件app-private/data/ 每一个应用的数据com.xx.appname/ 每一个应用的数据都存放在本目录下的一个以包名为命名的文件夹cache/lib/files/shared_prefs/...

2019-10-11 11:15:13 18584

原创 导入Android源码到Android Studio

路径切到源码编译idegensource build/envsetup.sh // 将执行文件设置为临时变量mmm development/tools/idegen/ //生成idegen.jar文件(#### build completed successfully (49 seconds) #### 标识生成idegen.jar文件)执行脚本 idegen.sh. develop...

2019-09-26 10:00:08 366

原创 Android中Dialog的使用

1、创建AlertDialog首先,我们大致来了解下AlertDialog的创建步骤。在平时的使用中,你会发现这种dialog布局和普通的TextView、Button等不同,它是在某个特定时机才会触发,所以AlertDialog并不是在xml布局文件中创建,而是在代码中通过构造器创建的。创建AlertDialog的步骤:1.创建AlertDialog.Builder的对象2.通过方法设置...

2019-09-25 10:53:00 1294

原创 android:configChanges="keyboard|keyboardHidden|orientation|screenSize"

android:configChanges=“xxx” 详解:1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次3、设置Activity的andro...

2019-09-17 15:22:49 5749

原创 Android中网络请求库对比

2019-09-10 18:06:18 367

原创 Android数据库更新并保留原来数据

思路很简单,只需要把原来table中的数据转移就好我们来看实现 @Override private String createTableBook="create table Book(id integer primary key autoincrement,author text,price real,pages integer,name text)"; private String...

2019-09-06 17:22:03 1025

原创 Android网络通信开源库——Volley

Volley是由Google开发和维护的开源库,提供了对String,图片,JSON的解析下面简单来说一下用法一、首先需要导入Volley依赖包 implementation 'com.android.volley:volley:1.1.1'二、添加网络访问的权限在AndroidManifest.xml中 <uses-permission android:name=...

2019-09-05 15:57:36 397

原创 Android中使用Serializable和Parcelable实现序列化

Android中实现序列化有两种方式,一种是使用Serializable,另一种就是Parcelable。Serializable本身就是JavaSE支持的,Parcelable是Android特有的,效率比Serializable高,据统计一般情况下能快10倍左右!但是Parcelable不能用在需要数据永久储存的情况,比如存到本地文件中,Parcelable不能保证在外界有变化的时候数据的持...

2019-09-04 16:45:17 195

原创 Android基本组件之服务Service

Service的开启与关闭1.继承Service类2.在AndroidManifest.xml中注册<service android:name=".MyService" android:enabled="true" android:exported="true"></service>直接创建Service的话,前两步会自动执行3.通过Contex.startSer...

2019-09-03 17:44:08 184

原创 RecyclerView加载不同的Layout

有时候一个界面的RecyclerView可能要显示好几种的不同的布局,学习了,记录一下下面是同一个RecyclerView加载两种不同布局的写法主要加载的xml文件activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.andro...

2019-09-03 13:59:11 674

原创 优美的UI---Material Design

1.Toolbar的用法1.1关于标题栏的那些事每个应用都有默认的标题栏在AdroidManifest.xml中:<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" ...

2019-08-27 09:27:16 303

原创 Android中获取系统信息的类android.os.Build

android.os.Build类是一个非常方便使用的类,不需要任何权限。说明如下:android.os.Build.BOARD:获取设备基板名称android.os.Build.BOOTLOADER:获取设备引导程序版本号android.os.Build.BRAND:获取设备品牌android.os.Build.CPU_ABI:获取设备指令集名称(CPU的类型)android.os....

2019-08-22 10:37:45 2324

原创 git删除本地分支

切换到要操作的项目文件夹cd +文件目录查看当前仓库所有分支git branch -a查看当前所在分支git branch删除分支git branch -d +分支(注意不能删除当前所在分支)...

2019-08-20 20:43:42 1671

原创 Android中的PackageManager

如Android P的源码中获取可以设置壁纸app的逻辑 Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);//手机中能设置壁纸的活动 PackageManager pm = getPackageManager();//获得PackageManager对象 List<ResolveInfo> rList =...

2019-08-19 11:59:48 439

原创 linux下从一台服务器复制文件或文件夹到本地

1.从服务器复制文件到本地:scp root@×××.×××.×××.×××:/data/test.txt /home/myfile/root@×××.×××.×××.××× root是目标服务器(有你需要拷贝文件的服务器)的用户名,×××.×××.×××.×××是IP地址,如192.168.1.100,后面紧跟的:不要忘记,/data/test.txt是目标服务器中你要拷贝文件的地址,接...

2019-08-16 11:53:07 25021

原创 Android中BroadcastReceiver的使用

由于初学,了解的还不是很全面,写一点,记录下来1.标准广播1.1 接收广播比如系统网络改变会发送一条action为“android.net.conn.CONNECTIVITY_CHANGE”的广播那么活动中如何去接收这条广播呢1.1.1动态广播注册自定义广播接收器继承BroadcastReceiver重新onReceive()方法 public class Networkchan...

2019-08-14 20:30:22 136

原创 关于Android源码全编译和单编的问题

全编cd到源码工程目录下idh.core$git branch -a 查看所有分支git checkout --track +指定分支 切到指定分支git pull./build…(.sh脚本文件) + …(spec文件) + pac(编译完在idh.core$ 下生成了.pac文件,可利用刷机软件进行刷机)单编source buildall_userdebug.sh ED572...

2019-08-14 10:20:02 2770

原创 Android中Fragment的用法

Fragment的出现主要是为了解决安卓设备尺寸多样化后界面的显示问题。Fragment比Activity较轻量级,可以提供与用户交互的界面并且有自己的生命周期,也不用在AndroidManifest.xml中注册,但它必须嵌套在Activity中使用。之前需要使用多个Activity显示的内容,现在可以用一个Activity嵌套多个Fragment来实现。1.静态Fragment的实现从De...

2019-08-13 20:32:27 993

原创 事务管理ACID

原子性(Atomicity)事务中的操作要么都发生,要么都不发生一致性(Consistency)事务前后数据的完整性需保持一致隔离性(Isocation)多个用户并发访问数据库,数据库为每个用户开启的事务,不能被其它事务的操作干扰持久性(Durability)事务一旦被提交,它对数据库中数据的改变是永久性的...

2019-08-08 17:25:42 122

原创 活动Activity的生命周期

onCreate()活动第一次被创建时被调用onstart()活动由不可见到可见时调用onResume()在活动准备好和用户进行交互时调用,此时的活动一定处于返回栈的顶栈,并且处于运行状态onPause()暂停状态,系统准备去启动或者恢复另一个活动时调用,这个方法执行要快onStop()活动完全不可见时调用onDestroy()活动被销毁前调用onResrart()活动...

2019-08-08 11:42:58 195

原创 Java中的四种引用

Java中将引用类型分成四种,分别是强引用、软引用、弱引用和虚引用强引用创建一个对象并把这个对象赋给一个引用变量 String str = "aaa";//new了一个String对象,赋予str引用 System.out.println(str);强引用不会被回收机制回收,如果想要回收强引用,需要将引用指向null,如str=null;软引用(SoftRefere...

2019-08-08 10:49:58 133

空空如也

空空如也

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

TA关注的人

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