- 在官方7.0的以上的系统中,尝试传递 “file:/// Uri”可能会触发FileUriExposedException。FileProvider是 ContentProvider的子类。它的作用是通过创建“content:// Uri ”的方式来实现文件的安全共享。 我们可以授予临时访问权限(只读、只写或两者)给一个content URI。授予临时权限的最常见的方... 在官方7.0的以上的系统中,尝试传递 “file:/// Uri”可能会触发FileUriExposedException。FileProvider是 ContentProvider的子类。它的作用是通过创建“content:// Uri ”的方式来实现文件的安全共享。 我们可以授予临时访问权限(只读、只写或两者)给一个content URI。授予临时权限的最常见的方...
- 设计思路 Fragment:存放不同选项的页面内容 ViewPager:实现页面的左右滑动效果 FragmentTabHost:点击切换选项卡 这种方式我们可以分三步走: 第一步:实现ViewPager功能 第二步:实现FragmentTabHost功能 第三步:加监听事件,实现联动。 主体布局 <?xml version="1.0" encoding="utf... 设计思路 Fragment:存放不同选项的页面内容 ViewPager:实现页面的左右滑动效果 FragmentTabHost:点击切换选项卡 这种方式我们可以分三步走: 第一步:实现ViewPager功能 第二步:实现FragmentTabHost功能 第三步:加监听事件,实现联动。 主体布局 <?xml version="1.0" encoding="utf...
- 性能无外乎就是CPU密集型或I/O密集型两种。 StrictMode是一个开发者工具,常用于捕获在应用主线程中发生的磁盘I/O、网络访问违例等问题。 StrictMode具体能检测什么呢 StrictMode主要检测两大问题:线程策略(TreadPolicy)和VM策略(VmPolicy)。 ThreadPolicy线程策略: 自定义的耗时调用,使用detec... 性能无外乎就是CPU密集型或I/O密集型两种。 StrictMode是一个开发者工具,常用于捕获在应用主线程中发生的磁盘I/O、网络访问违例等问题。 StrictMode具体能检测什么呢 StrictMode主要检测两大问题:线程策略(TreadPolicy)和VM策略(VmPolicy)。 ThreadPolicy线程策略: 自定义的耗时调用,使用detec...
- 首先看一下Android系统的层次架构 层次描述应用层(Systeml Apps)系统内置的和非系统级的应用程序都在这一层,都是用Java语言编写的,负责与用户进行直接交互。应用框架层(Java API Framework)为开发应用层的程序提供了所需要的API,这一层也是用Java语言编写的系统运行库层(Native):(1)C/C++程序库 (2)Android运... 首先看一下Android系统的层次架构 层次描述应用层(Systeml Apps)系统内置的和非系统级的应用程序都在这一层,都是用Java语言编写的,负责与用户进行直接交互。应用框架层(Java API Framework)为开发应用层的程序提供了所需要的API,这一层也是用Java语言编写的系统运行库层(Native):(1)C/C++程序库 (2)Android运...
- 自定义ViewGroup和自定义View的区别: 类型onMeasureonLayoutonDraw自定义View测量控件本身的大小一般不用重写此方法在父布局指定的区域绘制图形自定义ViewGroup一定要测量子控件及本身的大小必须重写此方法,在布局中摆放子控件一般不重写此方法 自定义ViewGroup的步骤: 继承ViewGroup;重写onMeasure方法测量... 自定义ViewGroup和自定义View的区别: 类型onMeasureonLayoutonDraw自定义View测量控件本身的大小一般不用重写此方法在父布局指定的区域绘制图形自定义ViewGroup一定要测量子控件及本身的大小必须重写此方法,在布局中摆放子控件一般不重写此方法 自定义ViewGroup的步骤: 继承ViewGroup;重写onMeasure方法测量...
- IntentService是Service的子类,在独立的handler线程里处理异步任务请求。 IntentService中HandlerThread线程类,开启了一个HandlerThread线程实例,这个实例做一件就是开辟一个线程,并创建Looper循环器和消息队列MessageQueue。最后在IntentService里,通过HandlerThread线程实... IntentService是Service的子类,在独立的handler线程里处理异步任务请求。 IntentService中HandlerThread线程类,开启了一个HandlerThread线程实例,这个实例做一件就是开辟一个线程,并创建Looper循环器和消息队列MessageQueue。最后在IntentService里,通过HandlerThread线程实...
- 加载WebView弹框没有弹出来,百思不得其解,后来发现是Android WebView会阻止alert对话框弹出。如何才能让它不阻止呢,解决方法如下: mWebview.setWebChromeClient(new WebChromeClient(){ @Override public boolean onJsAlert(WebView view, String u... 加载WebView弹框没有弹出来,百思不得其解,后来发现是Android WebView会阻止alert对话框弹出。如何才能让它不阻止呢,解决方法如下: mWebview.setWebChromeClient(new WebChromeClient(){ @Override public boolean onJsAlert(WebView view, String u...
- Android SDK Build-Tools是Android SDK的组成部分,是开发Android应用必须要有的。它安装在/build-tools/目录下。 我们应该通过Android SDK Manager下载最新的Build Tools组件,以保持组件是最新的。 如果使用的Android插件是gradle 3.0.0或更高,那么项目会自动使用一个由插件指定的默认... Android SDK Build-Tools是Android SDK的组成部分,是开发Android应用必须要有的。它安装在/build-tools/目录下。 我们应该通过Android SDK Manager下载最新的Build Tools组件,以保持组件是最新的。 如果使用的Android插件是gradle 3.0.0或更高,那么项目会自动使用一个由插件指定的默认...
- WebView的重要类 类名作用常用方法WebView创建对象、加载URL、生命周期管理、状态管理loadUrl()加载网页WebSettings配置和管理WebViewsetCacheMode()设置缓存模式、setJavaScriptEnabled()与JS交互WebViewClient处理各种通知和请求事件shouldOverrideUrlLoading()打开... WebView的重要类 类名作用常用方法WebView创建对象、加载URL、生命周期管理、状态管理loadUrl()加载网页WebSettings配置和管理WebViewsetCacheMode()设置缓存模式、setJavaScriptEnabled()与JS交互WebViewClient处理各种通知和请求事件shouldOverrideUrlLoading()打开...
- 作用: 是在后台长期运行某些服务,如复杂的计算 、音乐播放、下载等等。 分类: Service按运行的位置划分有:本地服务、远程服务Service按运行的类型划分有:前台服务、后台服务Service按运行的功能划分有:可通信服务、不可通信服务 下面逐一讲解。 本地服务与远程服务 类型说明优缺点应用场景本地服务(最常用)运行在主线程,当主线程终止后,服务也会跟着... 作用: 是在后台长期运行某些服务,如复杂的计算 、音乐播放、下载等等。 分类: Service按运行的位置划分有:本地服务、远程服务Service按运行的类型划分有:前台服务、后台服务Service按运行的功能划分有:可通信服务、不可通信服务 下面逐一讲解。 本地服务与远程服务 类型说明优缺点应用场景本地服务(最常用)运行在主线程,当主线程终止后,服务也会跟着...
- android studio 使用夜神模拟器 开发调试 可能会问,为什么不用Genymotion啊?我是用了Genymotion 模拟器大约4月左右,始终感觉有些繁琐,有些慢,有时会卡。后来,在朋友推荐下,使用了夜神模拟器 来做安卓开发调试。总体感觉不错,才推荐给大家。 一、夜神模拟器: 二、相信很多... android studio 使用夜神模拟器 开发调试 可能会问,为什么不用Genymotion啊?我是用了Genymotion 模拟器大约4月左右,始终感觉有些繁琐,有些慢,有时会卡。后来,在朋友推荐下,使用了夜神模拟器 来做安卓开发调试。总体感觉不错,才推荐给大家。 一、夜神模拟器: 二、相信很多...
- new Thread的缺点: 每次new Thread新建对象都会影响性能线程缺乏统一管理,可能出现无限制新建线程,导致相互竞争,及可能占用过多系统资源导致死机或oom没有定时执行、定期执行、线程中断等功能 相比new Thread,Java提供的四种线程池的优点: 重用存在的线程,减少对象创建、消亡的开销,性能好能够有效控制最大并发线程数,提高系统资源的使用率,... new Thread的缺点: 每次new Thread新建对象都会影响性能线程缺乏统一管理,可能出现无限制新建线程,导致相互竞争,及可能占用过多系统资源导致死机或oom没有定时执行、定期执行、线程中断等功能 相比new Thread,Java提供的四种线程池的优点: 重用存在的线程,减少对象创建、消亡的开销,性能好能够有效控制最大并发线程数,提高系统资源的使用率,...
- WebView漏洞: ** WebView 中的 addJavascriptInterface()接口** JS调用Android的其中一个方式是通过addJavascriptInterface接口进行对象映射: // 参数1:Android的本地对象 // 参数2:JS的对象 // 通过对象映射将Android中的本地对象和JS中的对象进行关联,从而实现JS调用... WebView漏洞: ** WebView 中的 addJavascriptInterface()接口** JS调用Android的其中一个方式是通过addJavascriptInterface接口进行对象映射: // 参数1:Android的本地对象 // 参数2:JS的对象 // 通过对象映射将Android中的本地对象和JS中的对象进行关联,从而实现JS调用...
- 屏幕尺寸 指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米。 常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等 屏幕分辨率 指在横纵向上的像素点数,单位是px,1px=1个像素点。一般以纵向像素*横向像素来表示,如1960*1080。 屏幕像素密度 指每英寸上的像素点数,单位是dpi,即“dot per inch”的缩写。... 屏幕尺寸 指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米。 常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等 屏幕分辨率 指在横纵向上的像素点数,单位是px,1px=1个像素点。一般以纵向像素*横向像素来表示,如1960*1080。 屏幕像素密度 指每英寸上的像素点数,单位是dpi,即“dot per inch”的缩写。...
- android自定义View,相信大家都会了。因此我也不打算在这一篇文章中去展示如何自定义View。我想分享一下自定义View中onMeasure、onLayout、onDraw这几个方法中,我认为有趣的地方,尤其是onMeasure方法对视图的测量。 onMeasure:测量视图大小 首先,这个方法是用于测量我们的View的大小的。要用好这个方法,关键在于理解on... android自定义View,相信大家都会了。因此我也不打算在这一篇文章中去展示如何自定义View。我想分享一下自定义View中onMeasure、onLayout、onDraw这几个方法中,我认为有趣的地方,尤其是onMeasure方法对视图的测量。 onMeasure:测量视图大小 首先,这个方法是用于测量我们的View的大小的。要用好这个方法,关键在于理解on...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中 -
一个AI团队帮你写代码:华为云码道Agent Space实战2026/06/25 周四 19:00-21:00
张翰文-华为云码道工程师/郭英旭-青软创新科技集团股份有限公司 软件架构师
本场直播聚焦华为云码道Agent Space两大模式:研发办公、代码开发,亲身体验从需求到代码的AI自动化能力。实操演示基于华为 CodeArts CLI,依托 OpenSpec 规格体系从零搭建业务项目。
即将直播
热门标签