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

Android面试系列之应用内多语言切换

昨天组里的同事遇到一些切换多语言的细节问题,发现在Android N版本上配置应用内多语言没有生效,正好拿出来做为一个面试题讲解一下。 面试题:如何实现应用内多语言切换?...然而,我们还是会有一些业务场景需要不根据Android系统的Locale配置就改变应用的语言。...new Locale(language); } resources.updateConfiguration(config, null); } 上面的代码,我们可以在应用内通过...好吧,只是假设,还没有看到Android N的源代码。不过去掉这段代码后,在Android N(Preview)手机上切换语言正常了。...回到这个面试题,现在你知道了可以在应用内切换语言(当然也可以修改Configuration的其他值),那么你有没有想过,如果不知道这个updateConfiguration的存在,你会怎么实现这个需求呢

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

    【Android 应用开发】Android 数据存储 之 SQLite数据库详解

    数据库支持大部分SQL语法, 允许使用SQL语句操作数据库, 其本质是一个文件, 不需要安装启动; -- 数据读写 : SQLite数据库打开只是打开了一个文件的读写流, 如果有大数据量读写, 需要高并发存储...SQLite的数据存储格式 支持的数据类型 : SQLite数据库 内部 只支持null,integer,real(浮点型),text(文本),blob(二进制数据) 五种数据类型; 数据类型转换 :...SQLite可以接受varchar(n), char(n), decimal(p,s) 等数据类型, 不过内部的机制使将这个数据类型转换成上面的五种数据类型进行存储; 无类型限制: SQLite允许将各种类型的数据保存到各种类型的字段中...使用 openOrCreateDatabase()方法创建数据库 : 传入数据库的路径 和 CursorFactory对象; -- Context.getFilesDir()方法: 该方法返回 内存中应用安装目录中的...文件存储目录的绝对路径, 在这里是 "data/data/shuliang.han.database/files", 整个数据库的完整路径是 :"data/data/shuliang.han.database

    2.5K10

    如何在10分钟内让Android应用大小减少 60%?

    如果你的应用没用到兼容库,可以考虑去掉support包。...它包括相同的 ProGuard 规则,但还包括其他在字节码一级(方法内和方法间)执行分析的优化,以进一步减小 APK 大小和帮助提高其运行速度。...现在flavor2使用所有三个 ProGuard 规则,因为还应用了来自release代码块的规则。...从 Apk Analyser 的输出来看,应用的原大小是 3.1MB。经过 Play 商店的压缩,大致是 2.5MB。 从截图中可以看出主要有 3 个文件夹占据了应用的大多数空间。...结尾 好啦,如此文章到这里就结束了,希望这篇文章能够帮到正在看的你们,能够解决Android小伙伴们应用内存问题~ 如果你觉得文章写得不错就给个赞呗?

    86420

    【Android 文件管理】应用可访问的存储空间 ( 存储空间分类 | 存储空间访问权限 | 分区存储 )

    文章目录 一、存储空间分类 二、存储空间访问权限 三、分区存储 四、相关文档资料 一、存储空间分类 ---- 在 Android 9( API 级别 28 ) 及以下版本中 , Android 文件存储空间分为两类..., 内部存储空间 外部存储空间 内部存储空间的可靠性高于外部存储空间 ; 在 Android 10( API 级别 29 ) 及以上版本中 , 应用只能访问应用的 专属存储空间 和 共享存储 中的文件..., 不能方位外置存储空间的其它文件了 ; 专属存储空间指的是 应用内部存储空间 和 外置存储中分配给应用的专属目录 ; 应用内部存储空间 放置保密性较高 , 体积较小的文件 ; 共享存储 指的是本应用与其它应用共享的存储空间...Android 10( API 级别 29 ) 及以上版本 , 会自动开启分区存储 , 这时候需要进行兼容开发 ; 一旦启用了分区存储 , 就无法访问 SD 卡中创建的目录或文件 , 只能访问外部存储空间的应用专属目录...---- Android 文件处理参考文档 : 数据和文件存储概览 访问应用专属文件 保存到共享的存储空间 管理存储设备上的所有文件 分享文件 应用安装位置 Android 存储用例和最佳做法 FileProvider

    2.5K30

    基于Android的浮动组件,可以用于应用中的新功能展示等等。

    前言 在开发Android应用时,加新功能是必不可少的,我们加入了新的功能,有的一看界面就可以看出来,但是有的新功能就比较隐蔽,也就是用户很难知道你添加了这个新功能,这个时候就需要用户在打开我们的应用时给出一些提示...你可以学到 Toast的基本用法 Android的消息机制,如何创建自己的消息队列 怎样在Activity启动时获取一个View的width、height、top、left等属性 基本思路 首先你要有一个处理好的...9 PNG的图片,用于自适应文字显示,关于9 PNG处理可以参考Android Doc 要显示在哪个View的下面,就要知道这个目标View的位置 把要显示的文本放在一个TextView里,使用Toast...为了达到这一目的,我们在开发者调用FloatTextToast.show()的时候使用Android的Message机制轮询获取一个targetView的属性,如果获取到,就会显示提示文字了。...小结 这里主要是通过类之间的组合编写一个一个FloatTextToast组件,便于在应用中提示一些信息,不光局限于新功能的提示,还有其他的点击查看个人信息等等,就如上面的效果图一样。

    57640

    【错误记录】Android 分区存储下的 SD 卡应用专属外部存储空间目录访问 ( 需手动创建应用专属外部存储空间目录 )

    文章目录 一、报错信息 二、解决方案 一、报错信息 ---- 开发时 , 需要向外置 SD 卡中拷贝一些文件 , 应用读取这些文件 , 进行相关配置 ; 但是 Android 系统 , 并不会主动为应用创建文件..., 外置 SD 卡的应用专属外部存储空间目录 , 需要开发者自己创建 ; 当前的包名是 com.example.filepath ; android { defaultConfig {..., 说明 Android 系统并不是自动为每个应用都创建一个应用专属外部存储空间目录 ; 二、解决方案 ---- 在应用中 , 获取 应用专属外部存储空间目录 下的 cache 目录 , 如果没有创建该目录...; 该目录的路径是 /storage/emulated/0/Android/data/com.example.filepath/cache ; /** * 应用专属外部存储空间目录下的...cache 目录 */ public void generateExternalCacheDir() { // 获取应用专属外部存储空间目录下的 cache 目录

    64110

    【Android 应用开发】Activity 返回堆栈管理 ( 栈内复用模式 singleTask | 单实例模式 singleInstance )

    文章目录 一、 singleTask ( 栈内复用模式 ) Activity 实例在返回堆栈中的位置 二、 singleTask ( 栈内复用模式 ) Activity 启动的五种情况 三、 singleTask...栈内复用模式 任务栈处理 ( 前台任务栈 | 后台任务栈 ) 四、 singleTask 模式 存在 Activity 实例的任务栈处理 五、 FLAG_ACTIVITY_BROUGHT_TO_FRONT...常量解析 六、 singleTask 栈内复用模式回退键行为 七、 singleTask 栈内复用模式 启动总结 八、 singleInstance 单实例模式 一、 singleTask ( 栈内复用模式...---- singleTask 栈内复用模式回退键行为 : 启动 singleTask 栈内复用模式的 Activity 界面后 , 会在一个单独的任务的返回堆栈栈底存放该 Activity 实例 ,...此时如果点击回退键 , 会回退到启动该 Activity 实例的界面 , 与正常的回退操作一致 ; 七、 singleTask 栈内复用模式 启动总结 ---- 启动 singleTask 栈内复用模式

    1.1K10

    Android应用性能优化——内存优化(内附一个内存泄露优化实例)

    当我们刚开始接触Android时,可能关注的比较多的是如何实现某个功能,但学到一定程度的时候,我们会发现无论一个应用多么炫酷,如果运行特别慢,或者说很耗内存,这将会带来很差的用户体验,所以说,性能优化变得尤为重要...Android有垃圾回收机制,无需手动管理内存,Android系统会自动跟踪所有对象,并释放那些不再使用的对象。 二....内存泄露 ---- 应用程序分配了大量不能被回收的对象。 系统可分配内存越来越少。 新对象的创建需要内存不够。 GC之后再分配。 60fps。 四....Heap Viewer 实时展示应用程序运行时所有已分配的对象的数量、大小以及类型信息。用于检测内存泄露。 特点: 内存快照信息。 每次GC之后收集一次信息。 查找内存泄露利器。 使用复杂。 六....还有一个工具叫Heap Viewer,这个工具可以实时展示应用程序运行时所有已分配的对象的数量、大小以及类型信息,可以检测内存泄露。

    1.4K10

    android应用内为某个Activity创建快捷方式后按home键的问题

    有时开发应用后,会为某个Activity创建一个桌面快捷方式,以后希望通过快捷方式直接进入到该Activity里,加Activity A。譬如百度卫士的桌面加速球就是这样。  ...但是会碰到如下问题,当你的应用没有完全退出,譬如在一个其他的Activity B里,按下home键后,在通过桌面Activity A的快捷方式点击后,系统并不会进入到Activity A里,而是会先打开你未关闭的...这是由于android系统的task决定的,如果不特别指明某个Activity的task,则整个application是在同一个以包名命名的task里。...那你需要在Manifest里为 Activity A指明一个不同的task,android:taskAffinity = "com.wiwigo.launcher" 命名随意,只要不与系统包名一样即可。...该方法适用于,一个应用内有多个不同功能的快捷方式,需要分别进入到不同Activity。又不影响应用内其他Activity。   感觉有点类似于多线程的机制。默认一个应用在一个task。

    1.1K30

    Android开发笔记(一百六十八)为应用绑定通知渠道并展示消息角标

    一个应用允许拥有多个通知渠道,每个渠道的重要性各不相同,有的渠道消息在通知栏被折叠成小行,有的渠道消息在通知栏展示完整的大行,有的渠道消息甚至会短暂悬浮于屏幕顶部,有的渠道消息在推送时会震动手机,有的渠道消息在推送时会发出铃声...setShowBadge:是否在应用图标的右上角展示小红点。...channel.enableVibration(true); // 通知渠道是否让手机震动 channel.setShowBadge(true); // 通知渠道是否在应用图标的右上角展示小红点...原本通知渠道提供了setShowBadge方法,可设置是否在应用图标的右上角展示小红点(此红点又称消息角标),调用该方法设置true之后,有未读消息时就显示红点,无未读消息则不显示红点。...国产手机的红点方案参考了苹果手机的红点样式,同样把消息红点放在桌面应用的右上角,并且红点内部显示当前未读消息的数量(如下面左图所示),而安卓官方的红点内部不展示数字(如下面右图所示)。

    1.8K40

    【Android 应用开发】Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组

    Android资源文件简介 1....Android应用资源的作用 (1) Android项目中文件分类 在Android工程中, 文件主要分为下面几类 : 界面布局文件, Java src源文件, 资源文件; -- 界面布局文件 : 在res...需要用到很多常数, 如果在程序中直接使用这些数字, 给源码阅读和维护带来很多麻烦, 在重构领域我们将这些数值成为 Magical Number; 改进魔法数值 : 为了改进魔法数值分散在程序各个地方, 可以专门定义存储魔法数值的接口...存放真实的位图文件, 也可以存放Drawable对象及子类对象的XML文件; -- res/layout : 界面布局文件目录; -- res/menu : 程序中使用的菜单文件目录, 该文件下的XML文件可以应用与...android.content.res.TypedArray; import android.os.Bundle; import android.view.View; import android.view.ViewGroup

    61340

    基于评论、新闻的情感倾向分析作商品的价格预测

    系统分为四个模块:第一,数据采集处理;第二,信息可信判别以及情感倾向因素计算;第三,情感倾向因素预测模型的建立及预测;第四,基于研究算法的Android应用软件。...NLTK、sklearn、MATLAB2015b、Pycharm 服务器: tomcat 用开源框架Scrapy分析Xpath路径抓取中关村报价网站 上述文件中product文件夹是定制好抓取电子产品价格的数据采集器...,MySQL建立数据库见文件 应用scrapy爬虫框架,定制爬虫抓取中关村报价产品的价格数据并且存储于MySQL数据库中 1.其中的过程是分析网页的Xpath路径,根据要获取的数据的路径定位到价格数据(...可以分析不同的网站数据抓取) 2.存储数据打MySQL数据库中,主要是方便操作和使用 scrapy startproject tutorial ?...基于研究算法Android应用软件 基于应用上述研究的算法对电子产品的价格作出预测后,在Android系统开发应用软件增加研究的实际意义展示效果如下: ? ? 单个商品的预测趋势如下图所示: ?

    87620

    你所不知道的 wechat-vfs —— 浅谈 Android 应用数据存储方案设计

    一、前言 Android 应用的数据存储问题也是一个被讨论多年的老话题了,伴随 Android 从诞生到现在的 Android 10。...二、微信数据存储上的问题与思考 1. 有限的内部存储 早期 Android 手机自带存储空间只有内部存储,而且空间很有限。...目前还不安全的外部(私有)存储 Android 的权限管理只防君子不防小人,SD 卡存储读写权限只要应用申请了基本都可以获取到。...但目前这样的设计对应用数据的安全来说没有帮助,因为外置(私有)存储仍可以被有权限的应用读取。 所以在发现这种问题后,我们选择对部分敏感的外置存储的部分文件进行加密或混淆。...恰巧在应用 wechat-vfs 不到一年时间里,我们得知 Android Q 将计划施行 Scoped Storage 安全隔离策略,这一契机让 wechat-vfs 的设计展现出方案上的优势。

    3.4K70

    政府案例分享:用大数据预防农产品价格过山车式波动

    价格大数据分析及可视化平台基于农产品批发市场的顶层设计,从全局的角度,对批发市场大数据的应用方向、数据源、实施路径、应用效果、应用场景设计、实施计划、可行性等方面提出解决方案,深入挖掘农产品批发市场数据的价值...最后,平台将选取数据分析的结果以大数据可视化的方式展示,方便决策人员使用。...对于20年的历史数据缺乏挖掘和应用,没有全面分析批发市场环节的农产品供给和需求变化规律、生产和消费变化规律,难以明确最终应用方向。...对此,平台一方面根据客户的业务需求,对历史数据进行系统的分析,描绘不同类型农产品价格周期、传导机制,进行可视化设计及展示;另一方面,针对清洗后的数据进行初步的建模,并筛选有价值的建模结果以可视化方式展示到价格信息网...可视化展示方式落后,用户体验较差,不能充分展示数据价值。

    79390

    【Android 进程保活】提升进程优先级 ( 使用前台 Service 提高应用进程优先级 | 效果展示 | 源码资源 )

    文章目录 一、 使用前台 Service 提高应用进程优先级 1、 前台 Service 代码 2、 前台 Service 代码 3、 启动服务 二、效果展示 三、源码资源 一、 使用前台 Service...提高应用进程优先级 ---- 上一篇博客 【Android 进程保活】提升进程优先级 ( 1 像素 Activity 提高进程优先级 | taskAffinity 亲和性说明 | 运行效果 | 源码资源...设置 Activity 亲和性 让该界面在一个独立的任务栈中 , 不要与本应用的其它任务栈放在一起 避免解除锁屏后 , 关闭 1 像素界面 , 将整个任务栈都唤醒...取消注册广播接收者, 也可以不取消注册 //KeepProgressAliveManager.getmInstance().registerReceiver(this); } } 二、效果展示...---- 启动应用 , 查看 Logcat 中的 PID 为 30014 , 查询进程 oom_adj 值 , 0 , 前台进程 ; C:\Users\octop>adb shell

    2.8K40

    【Android 应用开发】Android 返回堆栈管理 ( 默认启动模式 | 栈顶复用启动模式 | 栈内复用启动模式 | 单实例启动模式 | CLEAR_TOP 标识 )

    :name="" android:launchMode="standard"/> 总结 : 默认模式下 , Activity 是可以实例化多次的 , 返回堆栈内可以相邻存放相同的 Activity...实例并入栈 ; AndroidMenifest.xml 设置方式 : <activity android:name="" android:launchMode="singleTop..., 启动第三方浏览器 或 播放器 , 那么这些第三方的应用界面 , 不应该加入到自己开发的任务栈中 , 而是创建一个新任务 , 将这些第三方的应用启动界面 , 放入新的返回堆栈中 , 这些启动界面应该设置成...singleTask 模式 ; 如果这些第三方应用已经被启动过 , 在后台运行 , 那么再次启动会将这个界面所在的任务转到前台运行 ; AndroidMenifest.xml 设置方式 : android:name="" android:launchMode="singleTask"/> Intent 标志位 设置方式 : Intent intent = new Intent

    55910

    案例 | 如何做商品信息数据分析和展现?

    商品价格和人们生活息息相关,比如农产品价格波动不仅会对农民收入和农民生产积极性产生直接影响,更关乎百姓的日常生活和切身利益。...存储方式: 将处理好的数据,建好表结构存储到mysql数据库中。 二 数据展现 展现方式:使用Echarts在网页显示。 展现内容: 1. 价格分析 ?...通过下面时间轴拖动、拉长查看某一范围内的价格走势;也可通过区域缩放按钮查看某一段曲线的详细走势。 ② 价格对比: 针对从潍坊物价信息网获取来的数据,根据价格采集地点进行价格对比。...三 数据预测 预测工具:rapidminer 数据来源:潍坊物价信息网 实现算法:基于时间序列神经网络的短期价格预测 实现过程: (以大白菜价格为例) 训练集:选取2013-2014内大白菜的价格。...数据预测因素单一,需要收集更多的数据来进一步产品价格预测精度,及时发现价格异常的农产品。

    1K90
    领券