首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WebView 的一切都在这儿

WebResourceResponse封装了一个Web资源的响应信息,包含:响应数据流,编码,MIME类型,API21后添加了响应头,状态码与状态描述 WebResourceError添加于API23...WebViewDatabase存储与管理以下几类浏览数据: 表单自动填充的的用户名与密码 HTTP认证的用户名与密码 曾经输入过的文本(比如自动完成) WebStorage用于管理WebView提供的JS...可通过Cookie保存浏览信息来获得更轻松的在线体验,比如保持登录状态、记住偏好设置,并提供本地的相关内容。...JS 移除已注入Javascript的对象 执行JS表达式 在API19后可异步执行JS表达式,并通过回调返回值 9 地理位置(Geolocation) https://developer.mozilla.org.../zh-CN/docs/Web/API/Geolocation/Using_geolocation 需要以下权限 默认可用 当H5调用地理位置API时,会先通过WebChromeClient.onGeolocationPermissionsShowPrompt

2.1K60

AppCompat v23.2  -- Vectors的时代

一下是几个整合的原因,包括: 允许开发者在所有的Android2.1以上的设备更早的用上图 允许APP本身能够用矢量图。它本身已经减少了APP AAR的70KB左右。...这听起来不算很大,但是对于设备来说节省是很重要的。快速的节省是为了存储和传输。...= true } } 如果你还没有更新,在用v1.5后者更低的版本,你需要在你的build.gradle文件里添加以下内容: android { defaultConfig { //...这意味着你当你在Api21或者更高时你在用framework层的VectorDrawable类。在用api21+的framework create()方法是不同的,是一个代理项目。...例如,一个StateListDrawable它引用其中包含的载体的其他文件。 res/drawable/state_list_icon.xml <selector xmlns:android="...

47440
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android技术选型闲聊

    网络框架 Retrofit + RxJava + OkHttp 这似乎没啥可说的,已经是主流了,而且非常好用。 Retrofit充分利用注解的灵活性,以接口的形式配置来实现解耦。...至于为什么,稍微关注下就知道哪些项目是骗业绩骗star的哪些是真正为解决问题用心维护的。 Tinker官方Wiki 为什么强推Tinker?...使用Tinker有几点需要注意: TinkerId非常重要,最好在App内某个地方显示出来; Manifest.xml最好不要去改动,虽然某些改动生成的补丁包可以合成,但不是在所有设备上都能成功; Tinker...如果真的是强迫每个设备上显示物理大小需要一致,那么直接用inch就行(少部分鸡贼厂商是没有给出准确inch的),也别用什么dp了(搬倒砖)。...现在是2019年了,Android 5.0已经发布5年了,App最低兼容到api21就行了(主要是5.0相比4.+变得太大了,过多的适配影响开发效率。

    1.2K30

    Android-Bitmap

    Bitmap简介 位图(Bitmap)是使用像素阵列(Pixel-array/Dot-matrix点阵)来表示的图像,包括像素以及长、宽、颜色等描述信息。...而当我们通过代码,将这张图片加载进内存时,会先解析图片文件本身的数据格式,然后还原为位图,也就是 Bitmap 对象,Bitmap 的大小取决于像素点的数据格式以及分辨率两个因素。...在实际应用中而言,建议使用ARGB_8888以及RGB_565。 如果你不需要透明度,选择RGB_565,可以减少一半的内存占用....原因在于:上面的计算方式并不准确,我们要考虑不同设备以及同一设备不同条件: 2.1.1同设备或不同设备不同条件又分好多种: 不同drawable文件 磁盘或res中 图片格式由png转为jpg 那我们就从同设备不同...image.png 也就是位于 res 内的不同资源目录中的图片,当加载进内存时,会先经过一次分辨率的转换,然后再计算大小,转换的影响因素是设备的 dpi 和不同的资源目录 其实影响内存的还有其他因素

    1.4K20

    Android性能优化(五)之细说Bitmap

    例如:使用Pixel手机拍摄4048x3036像素(1200W)的照片,如果按ARGB_8888来显示的话,需要48MB的内存空间(4048*3036*4 bytes),这么大的内存消耗极易引发OOM。...Android4.4(API 19)之后被复用的Bitmap的内存必须大于需要申请内存的Bitmap的内存; Android4.4(API 19)之前待加载Bitmap的Options.inSampleSize...备注:inSampleSize值的大小不是随便设、或者越大越好,需要根据实际情况来设置。...Bitmap占用内存的计算 getByteCount()方法是在API12加入的,代表存储Bitmap的色素需要的最少内存; getAllocationByteCount()在API19加入,代表在内存中为...Glide 查看官方文档以及性能优化典范,Google强烈推荐使用Glide来做Bitmap的加载。

    2.6K50

    为何大厂的图片不会OOM?

    通常情况下,我们可以使用 BitmapFactory 来将某一路径下的图片解析为 Bitmap 对象。 当一张图片加载到内存后,具体需要占用多大内存呢?...,会根据当前设备屏幕密度和图片所在的 drawable 目录来做一个对比,根据这个对比值进行缩放操作。...、Bitmap.Config 以及 缩放比,而缩放比大小取决于 设备屏幕密度和图片所在drawable对应密度。...因此适当时候,我们需要对需要加载的图片进行缩略优化。 修改图片加载的 Config 修改占用空间少的存储方式可以快速有效降低图片占用内存。...可以使用以下代码实现上述效果: ? 但是在每次调用 switchImage 切换图片时,都需要通过 BitmapFactory 创建一个新的 Bitmap 对象。

    1.1K20

    六个小技巧帮你瘦身Android APK

    为什么APK瘦身重要 在开始深入研究APK瘦身之前,让我们先了解为什么它如此重要。 用户体验:大型APK文件会增加应用的安装时间,启动时间和页面加载时间,降低了用户体验。...存储空间:手机设备的存储空间是有限的,用户不希望一个应用占用大部分存储空间。 下载速度:大型APK文件需要更长时间来下载,尤其是在慢速网络条件下。...更新难度:每次应用更新都需要下载整个APK文件,而且用户可能需要卸载其他应用以腾出足够的空间。 资源优化 Android应用通常包含大量资源文件,如图像、音频和布局文件。...应用捆绑:使用Android App Bundles格式(.aab)来构建应用,Google Play会根据用户设备和语言等因素生成定制的APK文件。...资源文件限定符:使用资源文件限定符(如hdpi、xhdpi、sw600dp等)来为不同的设备提供适当的资源。 矢量图标:使用矢量图标代替位图图标,它们可以无损缩放,适应不同的屏幕密度。

    63120

    从400多k的大小减到了2B,我的APP是怎么优化的?

    ,用户体验还是很不好的,下面我们就来整理一下 Android apk 的优化方法 一、icon 图标使用 svg 在我们的App中会有很多icon,而且美工小姐姐一般都是成套的给,所以在我们的res文件中可能需要放入多套...icon,这样一来就会使我们的apk文件体积变得非常大了,所以,优化的第一步就从icon 处理开始. icon 尽量使用svg 文件,而不要使用png文件 首先 svg 文件是以xml文件的方式存在的...,占用空间小,而且能够根据设备屏幕自动伸缩不会失真....谷歌开发的一种旨在加快图片加载速度的图片格式。...使用如下: 转化前后对比 五、 移除无用资源 一键移除 (不推荐) 一键移除未用到的资源,如果出现使用动态id加载资源会出现问题,而且这是物理删除,一旦删除将找不回了,所以能不用尽量别用,非要用请事先备份

    1.3K40

    android 中 vector 的用法 ,坑 ,怎么替代,关于这几方面的一些看法

    在安卓的发展历程中,由于设备碎片化的原故,谷歌在app中图标的适配上做出一步又一步的改进,大体有这么几个阶段: 首先有了drawable-(m|h|xh|xxh|xxxh)dpi 自android studio...---- 首先,去哪找合适的矢量图: 阿里巴巴UX矢量库 传送门 找到你需要的图标,并下载svg 在android中打开vector assert 点击Local SVG 选择路径,并命名...为什么?...嗯,这个并不算是什么高科技, 只是一个字体而已, 我就不长篇大论了, 下面贴出获取的流程吧,图从官网拿的: 选中一堆需要的图标并加入购物车, 然后再这里点下载到本地, 其中iconfont.ttf...就是我们需要的字体了, 其他的那些在web上用的, 可以忽略。

    1.1K30

    依赖管理(一):图片、字符串文件和字体在Flutter中怎么用?

    因为这样不仅有利于单独维护资源,还可以对特定设备提供更准确的兼容性支持,使得我们的应用程序可以自动根据实际运行环境来组织视觉功能,适应不同的屏幕大小和密度等。...资源管理 在移动开发中,常见的资源类型包括:JSON文件、配置文件、图标、图片以及字体文件等。他们都会被打包到APP安装包中,而App中的代码可以在运行时访问这些资源。...在iOS平台中,为了区别不同分辨率的手机设备,图片和其他原始资源是区别对待的:iOS使用Images.xcassets 来管理图片,而其他资源直接拖进工程项目即可。...而对于其他资源文件的加载,我们可以通过Flutter应用的主资源Bundle对象rootBundle,来直接访问。...与Android、iOS开发类似,Flutter也遵循了基于像素密度的管理方式,如1.0x、2.0x、3.0x或其他任意倍数,Flutter可以根据当前设备分辨率加载最接近设备像素比例的图片资源。

    2.9K30

    Android开发中Wi-Fi处理

    相关属性及概念 networkId——连接某个wifi热点时,系统会为该热点生成一个networkId,在同一设备上,不同热点的networkId是唯一的,通常情况下为大于0的整数,在某些设备上,...ssid是有差异的 WifiInfo中的ssid是包括了双引号的,如"CCMC" ScanResult中的ssid是不包括双引号的,如CCMC 热点加密类型 目前,常见及需要处理的热点,包括以下3大类...,不代表wifi状态的变化; 通过监听广播WifiManager.WIFI_STATE_CHANGED_ACTION ,来判断真正的wifi开关变化,该广播带有一个int型的值来表示wifi状态: int...,只有ssid和networkId是一定有的,可以用于直接连接该热点,其他信息如bssid,密钥等信息基本都是空的。...10%以下,在api21以下,基本都可以成功; 可以通过反复进行此操作来提高成功率,但效果不大。

    4.3K20

    解决 iOS 15 上 APP 莫名其妙地退出登录 解决 iOS 15 上 APP 莫名其妙地退出登录

    是什么发生了改变以及为什么它如此难以复现? 是什么发生了改变以及为什么它如此难以复现? 我粗略地看了一下发布说明,在谷歌上快速搜索了一下,我找不到任何东西,所以我不得不继续挖掘以更好地了解这个问题。...看一下这段代码,我们调用 SecItemCopyMatching 方法来加载我们的访问令牌,它返回数据以及描述结果的 OSStatus 代码。...现在这完全说得通了,但唯一的问题是,在 Cookpad 中,我们只在应用启动时从Keychain中读取信息,而我的假设是,用户一定是点击了应用图标来启动应用,因此设备在这时应该总是解锁的,对吗?...即使我能够重现这个问题,我也100%确定我的手机在我点击应用图标的时候是解锁的,所以我不明白为什么会出现这个Keychain错误。...这就是为什么读取会失败,以及最终为什么一些用户会发现自己被登出了。

    1.6K20

    如何克服响应式布局的不足之处

    文章提出了通过优化CSS代码、延迟加载资源、使用矢量图形和字体、调整字体大小和行距、增大点击区域、采用合适的交互模式以及进行测试和优化等方法来克服这些不足,以提供更优质的用户体验。...响应式设计通常使用CSS媒体查询来适应不同的屏幕尺寸,这意味着浏览器需要加载更多的CSS代码。为了解决这个问题,我们可以采取以下几种方法: 首先,优化CSS代码。...其次,延迟加载不必要的资源。不同屏幕尺寸下可能需要加载不同的图片或其他媒体资源。可以使用延迟加载技术,只在需要的时候才加载资源,从而减少页面加载时间。...可以使用CSS的媒体查询来针对不同屏幕尺寸设定不同的字体大小和行距。 此外,响应式布局可能会导致用户体验上的不便。例如,页面上的图标和按钮可能会变得太小,不易点击。...综上所述,虽然响应式布局在提供多设备适应性方面有一些不足之处,但通过优化CSS代码、延迟加载资源、使用矢量图形和字体、合适的字体大小和行距、增大点击区域以及使用合适的交互模式,并进行测试和优化,我们可以克服这些不足

    13110

    Android开发(21) Android Manifest.xml 结构详解二

    当然还有一些其他常用的属性需要注意一下,比如android:versionCode是给设备程序识别版本用的,必须是一个整数值代表app更新过多少次;而android:versionName则是给用户查看版本用的...另外,如果设备需要支持蓝牙,我们可以使用来支持这个功能。... 对于一些应用或者游戏来说,只能支持某些屏幕大小的设备或者在某些设备中的效果比较好,我们就会使用标签来指定支持的屏幕特征。...当然,标签还提供了其他丰富的配置属性,由于篇幅原因就不列举了,大家可以打开Android SDK文档来进一步学习,以下是语法范例。...当然,这些属性的具体用法我们还需要慢慢学习,以下是标签的语法范例。

    78240

    iOS项目——项目开发环境搭建

    设置界面如下图所示,这一块主要设置应用图标和启动界面,其中启动界面有两种设置方法:通过设置启动图片或者通过设置启动界面文件来启动,启动图标和启动界面对不同的机型的设备所需要的尺寸是不同的,具体应用图标和启动页面的大小尺寸介绍见官网...最右边的面板可以选择添加哪一种或哪几种设备上的图标,每一个型号的设备上的图标的尺寸是不同的,具体需要多大尺寸的图标可参见Human Interface Guidelines。...二来则是在我们点击应用图标启动应用时,应用启动需要一定的操作时间,在启动期间,为了增强应用程序启动时的用户体验,您应该提供一个启动图像。启动图像与应用程序的首屏幕看起来非常相似。...一样,我们将所有切好的图标直接拖过来,他们会自动找到自己应该放在的格子里,同样可以选择设备以及不同方向的启动图。...的文件进行加载,所以我们需要进行这两步,具体如下图所示。

    1.5K150

    Android4.42-Settings源码分析之蓝牙模块Bluetooth(上)

    好了,属性配置就介绍到这儿了,接下来要真正开始蓝牙模块的学习了,首先明确模块的布局,蓝牙模块的功能,蓝牙实现的有:开启蓝牙,蓝牙重命名,蓝牙检测性及检测时间设置,扫描附近可用蓝牙设备,加载已经配对的蓝牙设备...蓝牙开关涉及到本地蓝牙状态的更改以及用户点击switch更改蓝牙状态,当本地蓝牙状态发生改变时需要更新switch的状态,当switch的状态发生改变时需要更新本地的蓝牙状态。...首先执行addPreferencesForActivity加载switch,在该方法中构造BluetoothEnabler对象,对switch的状态进行初始化以及状态改变的监听。...mMyDevicePreference.setTitle(mLocalAdapter.getName()); //如果是手机,图标设置为手机的图标,如果是平板电脑或其他则设置为电脑图标...,int型值,大小为23,表示对附近所有设备可见,可以扫描其他设备。

    1.6K20

    Android Design Support Library初探-更新中

    在Android Design Support Library的帮助下,我们为所有的开发者,所有的2.1以上的设备,带来了一些重要的material design控件。...NavigationView 通过提供抽屉导航所需要的框架让实现更简单,同时它还能够直接通过菜单资源文件来直接生成导航元素。 ?...NavigationView处理好了和状态栏的关系,可以确保NavigationView在API21(5.0)设备上正确的和状态栏交互。...,它为你提供被点击的 菜单元素 ,让你可以处理选择事件,改变复选框状态,加载新内容,关闭导航菜单,以及其他任何你想做的操作。...通常EditText会在用户输入第一个字母后隐藏提示信息,但是现在可以使用TextInputLayout来将EditText封装起来,提示信息(hint)会变成一个显示在EditText之上的floating

    97420

    解决 iOS 15 上 APP 莫名其妙地退出登录

    是什么发生了改变以及为什么它如此难以复现? 是什么发生了改变以及为什么它如此难以复现?...看一下这段代码,我们调用 SecItemCopyMatching[2] 方法来加载我们的访问令牌,它返回数据以及描述结果的 OSStatus 代码。...现在这完全说得通了,但唯一的问题是,在 Cookpad 中,我们只在应用启动时从Keychain中读取信息,而我的假设是,用户一定是点击了应用图标来启动应用,因此设备在这时应该总是解锁的,对吗?...即使我能够重现这个问题,我也100%确定我的手机在我点击应用图标的时候是解锁的,所以我不明白为什么会出现这个Keychain错误。...这就是为什么读取会失败,以及最终为什么一些用户会发现自己被登出了。

    93810
    领券