app资源文件的定位(Localization)

百度地图实现app定位功能 百度地图实现app定位功能 android开发 前期准备 (一)注册(登录)百度地图账号和获取密钥 1.注册和获取密钥 网址:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/ak 2.什么是密钥 开发者在使用SDK之前需要获取百度地图移动版开发密钥(AK),该AK与您的百度账户相关联。请妥善保存您的AK,地图初始化时需要使用AK。 3.获取开发密钥(AK) 百度地图 SDK开发密钥的申请地址为:http://lb 阅读详情

本地资源(res)

Android将运行在许多设备的很多地方,为了延伸到更多的用户,你的应用可能运用文本,音频文件,数字,货币,和图形在你的应用中适当的位置使用。

这个文档Android本地资源的最好练习,这个使用原则适用你正在开发的Android项目,无论是你使用的是ADT和 Eclipse, Ant-based tools, or其他的 IDE.

你应该已经有一个Java的应用知识,熟悉安卓资源加载,在xml中用户界面元素的声明,开发思路例如activity的生命周期和国际化和本地化的一般原则

良好的实践使用Android资源框架对于单独的应用程序的本地化方面尽可能多的使用核心Java功能:

你可以将大部分或者全部的你的应用用户界面内容放进资源文件中,如同本文档和Providing Resources中的描述一样

用户界面的行为,另一方面,是使用Java代码,例如,如果用户输入的数据,需要格式化或排序根据地区不同,然后你会使用Java编程方式来处理数据,本文不讨论如何定位您的Java代码

 

Hello,L10N教程将介绍的使用特定于本地语言环境的资源在本文档中描述的方式创建一个简单的本地化应用程序的步骤。

概述:在Android中的资源转换

资源是文本字符串、布局、声音、图形和其他静态数据在Android应用程序的需求。每个自定义的设备配置应用程序可以包含多个资源集,当用户运行这个应用,Android自动选择和加载设备最匹配的资源

(本文侧重于本地化和语言环境,对于完整描述资源转换和所有类型的配置,您可以指定---屏幕方向,触屏类型,等等,可以查看《Providing Alternative Resources.》)

写应用程序的时候:你创建一组默认的资源,加上替代品在不同地区使用     ---------》

运行应用程序的时候:Android系统选择哪些资源加载,基于设备的场所。

 

当写Android应用的时候,你创建一个默认的和可替换的资源在应用中,为了创建资源文件,你的本地文件放在特定的res/目录的子目录里面

默认的资源为什么重要:

无论什么时候运行应用,你没有提供一个特定的本地文本,Android会默认的从res/values/strings.xml默认的加载strings,如果默认的文件不存在,或者你的应用缺失一个字符串,那么你的应用将不能够运行,而且会显示一个错误,下面举例说明,当默认的text文件缺失的时候会发生什么

 

Example:

一个应用的Java代码查找2个strings资源,text_a和text_b,这个应用包含一个本地的资源文件(res/values-en/strings.xml),在英文中定义了text-a和text_b,这个应用也包含默认的资源文件(res/values/strings.xml)其中包含了text_a,但是不包含text_b;

这个应用编译可能没有问题,如果文件缺失,在eclipse的IDE中可能不会强调任何错误

当应用启动的时候,将本地语言设置为英语,这个应用运行可能没有问题,因为( res/values-en/strings.xml)包含两个需要的text strings(字符串文本)

然而当应用启动在一个非英语设备上的时候,用户会看到一个错误和一个强制关闭的按钮,这个应用不能够加载。

为了防止这个情况,需要确认(res/values/strings.xml)这个文件存在并且,定义好每个需要的字符串,这种情况适用于所有类型的资源,不仅仅是strings资源,您需要创建一个包含所有的资源在您的应用程序调用的默认资源文件的集合-----布局、画板、动画等信息测试( layouts, drawables, animations, etc. Forinformation about testing),查看《Testing for Default Resources.》

 

本地资源的使用

怎样创建默认的资源:

把默认的文本文件放在下面的路径和名字里面:

res/values/strings.xml (要求的文件)

 

Res/values/strings.xml 中的文本字符串应使用的默认语言,将你的应用所使用的的大多数的语言设置为默认语言

默认的资源设置也必须包括任何默认drawables和布局,而且可以包含其他类型的资源例如animations

res/drawable/(要求目录支持至少一种图形文件,为了能在Google上应用图标)

res/layout/ (需要持有一个XML文件,它定义了目录默认布局)

res/anim/ (其他的文件夹 res/anim-<限定符> )
    res/xml/ (其他的文件夹res/xml-<限定符> )
    res/raw/ (其他的文件夹res/raw-<限定符> )

小窍门:在你的代码中,查找每个所引用Android资源,确定每一个默认资源是被定义的,也确保默认字符串文件是完整的:本地的字符串文件可以包含字符串的子集,但是默认字符串文件必须包含所有。

 

怎样创建替换资源

很大一部分的本地化应用程序提供替代文本不同的语言,在某些情况下,您还将提供替代图形、声音、布局和其他特定于本地语言环境的资源。

一个应用可能指定许多的res/<限定符>/文件,每个都有不同的限定符。若要创建为不同区域的替代性资源,你使用一个特定的语言或者语言—地区的组合(资源文件的名字必须符合《Providing Alternative Resources》,否则它就不会编译)

 

Example:

假设您的应用程序的默认语言是英语,同时你也想所有的text文本使用法语和大部分的语言使用使用日语(日语中除了应用程序的标题),在这种情况下,你可以创建3个替换的strings文件,每一个保存地区特点特定资源的文件

1、  res/values/strings.xml

包含所有的应用中所使用的字符串文本,包括文本字符串命名标题

2、  res/values-fr/strings.xml

包含所有的法语文本,和命名标题

3、  res/values-ja/strings.xml

包含所有的字符串,除了标题

如果在你的Java代码中查找R.string.title,下面在运行时会发生:

如果设置法语以外的任何语言,Android将会加载title从res/values/strings.xml文件中

如果设置的是法语,加载title将会从res/values-fr/strings.xml文件中加载

注意,如果设备设置的是日语,Android查看title将会从res/values-ja/strings.xml 中加载,但是在文件中没有这样的字符串,Android会回到默认值,将会加载res/values/strings文件

 

哪些资源优先考虑?

如果多个资源文件匹配设备的配置,Android下面的原则将会决定文件的使用,在限定符中可以指定一个资源文件的名字,本地的几乎都是优先的。

Example:

假设应用程序包括一组默认的图形和其他两套图形,每个优化不同的设备设置:

res/drawable/

包含默认的图形

res/drawable-small-land-stylus/

包含图形优化使用的设备预计从手写输入,在横向QVGA低密度的屏幕

res/drawable-ja/ 

包含使用日语图形优化

如果应用在运行时设备使用日语,Android加载图形会从res/drawable-ja/即使碰巧设备是一个预计手写输入的在横向QVGA低密度的屏幕

例外:唯一的限定符,优先于语言环境选择的过程是 MCC and MNC (mobile country code and mobile network code)

Example:

假设你遇到下面的情况:

应用代码需要R.string.text_a

两个相关的资源文件是可用的

res/values-mcc404/strings.xml 在应用的默认语言中,在这种情况下的英语包含text_a

res/values-hi/strings.xml 在印度语中包含text_a

应用运行在设备配置中:

这个SIM卡连接的是印度手机网络(MCC 404)

语言设置的是印度语(hi)

Android中加载text_a从res/values-mcc404/strings.xml (在英语中),即使这个设备配置的是印度,因为这个资源选择的过程,Android中MCC匹配超过语言匹配

这些选择过程并不是简单易懂的,请阅读《 How Android Finds the Best-matching Resource》,

这里面有一个更微妙的过程的描述,描述的所有限定符,按照优先级的顺序列出,在《Table 2 of Providing Alternative Resources.》里面

 

在Java中涉及到的资源

在你应用的Java代码中,你查阅使用的语法R.resource_type.resource_name或者android.R.resource_type.resource_name.关于更多请查看《Accessing Resources.》

本地化策略

设计你的应用程序在任何工作场所

你不能假设任何有关该设备的用户要运行您的应用程序,这个设备的硬件可能是你所不能预料的,或者设置的本地环境不是你计划的或者可能测试的,设计您的应用程序,以便它将正常或不优雅地运行无论何种设备。

重要提示:确认您的应用程序包含一个完整的默认资源

确认包含 res/drawable/和res/values/文件夹(没有任何额外的修饰符在文件夹的名字),包含你应用需要使用的图片和文本

如果一个应用缺少即使一个默认的资源文件,它将不能在设备上运行换句话说就是设置了一个不支持本地语言环境,例如:默认文件res/values/strings.xml,可能缺少应用程序需要的一个字符串:当应用运行在不支持当地语言环境中时,尝试加载res/values/strings.xml,用户将会看到一个错误信息和强制关闭的按钮,eclipse中的IDE不会强调这种错误,当你在设备或者模拟器上设置本地语言环境测试这个应用的时候不会看见这个错误。

更多的信息,请查看《Testing for Default Resources.》

设计一个灵活的布局

如果你需要重新安排你的布局以适应特定的语言(例如德国长单词),您可以创建该语言的替代布局(例如res/layout-de/main.xml),然而这样做可能使您的应用程序难以维护,最好是创建一个更灵活的布局。

另外一下特定的环境需要一些不同的布局,例如,当应用程序运行在日语中的时候,您可能有一个表单形式,应该包括两个名字字段,但三个名字字段当应用程序运行在其他语言的时候,你可以处理这个问题的两个方法:

创建一个布局和一个字段,您可以通过编程方式启用或禁用,基于语言,或者

主布局包括另一个布局,包括改变的布局,第二个布局可以为不同的语言有不同的配置。

避免创建你所需要的更多的资源文件和text字符串资源

你可能不需要为每个资源在您的应用程序创建一个特定于地区的选择,例如,定义一个布局res/layout/main.xml可能在任何区域起作用,在这种情况下,会有不需要创建任何替代布局文件,同样,你可能不需要为每个字符串创建替代文本,例如,以下假设:

您的应用程序的默认语言是美式英语,每一个字符串定义应用程序使用,使用美式英语写法,在res/values/strings.xml.之中

对于重要的几个短语,你想要提供英式英语写法,您的应用程序运行在一个英国设备上运行时,你想要这些替代字符串时使用。

为了这样做,你可能创建一个小的文件, res/values-en-rGB/strings.xml,只包含字符串应该是不同的,当应用程序运行在英国的时候,对于所有剩下的字符串,应用程序将回到默认值并使用定义在 res/values/strings.xml.中的值

手动查找本地Android上下文对象

你可以查找本地使用Android的上下文对象

String locale = context.getResources().getConfiguration().locale.getDisplayName();

测试本地化应用

在设备上测试

记住,你所测试的设备可能和你在其他地方自定义的设备有很大的不同,你本地的可用区域可能和其他的设备的可用区域不同,同时,设备的分辨率和密度屏幕可能有所不同,这可能影响到strings and drawables的UI显示。

为了改变本地设备的环境,设置应用(Home> Menu > Settings > Locale & text > Select locale)

在模拟器上测试

详细查看模拟器的使用,请查看《Android Emulator.》

 

创建和使用一个定制的语言环境

“自定义”区域是一个语言/区域组合,Android系统映像并不明确的支持(在Android平台上支持的地区列表看到SDK的版本记录选项卡)你可以测试在自定义的语言环境运行在自定义的模拟器上,下面有两种方法:

可以从Android应用选项卡中使用Android自定义语言环境的应用(创建一个自定义区域后,开关按下和地区名称)

从adb  shell改变语言环境,所述如下:

当你设置本地语言环境模拟器,不可用在安卓系统映像,系统本身将显示其默认语言,你的应用,应该正确定位。

 

从adb  shell改变语言环境

为了使用adb shell来改变语言环境

1、 挑选你想要的现场测试和确定它的语言和地区代码,例如fr法国和CA加拿大。

2、 启动模拟器

3、 在主机电脑的命令行,输入一下命令:

adb shell

或者,如果你有一个设备连接,指定您想要添加的模拟器通过添加 –e选项:

adb -e shell

在adb中提示(#),命令行运行:

setprop persist.sys.language [languagecode];setproppersist.sys.country [country code];stop;sleep 5;start

采用步骤1中的代码替换括号中的部分

比如,测试在加拿大法语:

setprop persist.sys.language fr;setproppersist.sys.country CA;stop;sleep 5;start

这样会造成模拟器重启(看起来像是一个完整的重新启动),一旦屏幕再次出现,重新启动您的应用程序(例如在eclipse中点击运行图标)该应用程序将启动新的区域设置。

测试默认的资源

下面是如何测试一个应用程序是否需要包括每一个字符串资源

1、         设置模拟器或设备到您的应用程序不支持的语言,例如,如果应用程序有法语的字符串在res/values-fr/之中,但是没有任何的西班牙语字符串在res/values-es/之中,然后设置模拟器西班牙语的语言环境(您可以使用自定义区域设置应用程序设置仿真程序为不受支持的区域设置)

2、         运行应用

3、         如果应用显示了一个错误信息,并且显示了强制关闭的按钮,它可能是查找到一个字符串是不可用的,确认一下你的res/values/strings.xml文件,应用程序使用包括定义的每一个字符串

如果这个测试成功,重复一下其他的配置类型,例如应用有res/layout-land/main.xml这个布局文件,但是没有res/layout-port/main.xml这个布局文件,然后设置模拟器或设备到竖屏,看看应用程序运行。

 

本地化清单

这些检查表总结 Android应用程序的本地化的过程,不是所有这些列表将适用于每个应用程序。

规划和设计检查表

选择一个定位策略,您的应用程序将支持哪个国家和哪个语言?你的应用程序的默认国家和语言是什么?当它没有特定的可用资源对于一个给定的地区,你的应用将会有怎样的表现

确定所有需要本地化资源的在你的应用程序中:

     考虑您的应用程序的具体细节——文本、图像、声音、音乐、数字、货币、日期和时间。你可能不需要本地化的一切。例如,您不需要本地化文本,用户不会看到,或文化中性图片,图标,表达相同的含义在每一个地区。

     考虑广泛的主题。例如,如果您希望在两种文化不同的市场推销应用程序,您可能想要设计你的应用程序UI和现在,各区域在一个完全不同的方式。

设计Java代码尽可能具体化资源

使用R.string和strings.xml文件,而不是硬编码的字符串或字符串常量。

使用R.drawable的R.layout而不是硬编码的画板或布局

内容清单

创建一个完整的默认资源 res/values/和其他 res/文件夹,创建默认的资源描述《 Creating Default Resources.》。

获得可靠的静态文本的翻译,包括菜单文本,按钮名称,错误消息,帮助文本。翻译后的字符串在 res/values-<qualifiers>/strings.xml文件。

确保您的应用程序正确格式动态文本(例如数字和日期)为每种受支持的语言环境。确保你的应用程序处理单词休息,标点符号,字母排序正确地为每个受支持的语言。

如果有必要,创建你的图形和布局的特定版本,并将其放在res/drawable-<qualifiers>/ and res/layout-<qualifiers>/ 文件夹

如果您的应用程序需要,创建任何其他本地化内容,;例如,如需要,

创建为每个语言声音的录音文件,。

 

测试和发布清单

测试您的应用程序为每个受支持的区域设置。如果可能的话,有一个人是在于每个区域设置测试您的应用程序,并给你反馈。

测试默认资源通过加载一个地区所不能提供的设备或模拟器,请查看《Testing forDefault Resources》

测试本地化字符串的横屏和竖屏显示模式

签署应用程序和创建您的最终buildor builds.

,选择适当的语言在Google上上传你的apk文件


第一次翻译文章,感觉有很多不好理解的地方,希望小伙伴们能够多多交流

Unity编辑器中文语言包手动安装指南:解决下载失败问题 软件本地化是提升开发效率与降低学习门槛的关键技术,其核心原理是通过替换界面文本资源实现多语言支持。在游戏开发引擎Unity中,编辑器语言包作为独立的资源文件,遵循特定的目录结构与加载机制。当自动下载因网络或缓存问题失败时,手动部署成为稳定可靠的解决方案。这一技术实践不仅解决了因CDN访问不稳定导致的安装中断,还赋予了开发者对环境配置的完全控制权,尤其适用于需要稳定中文界面的开发、教学与团队协作场景。本文以Unity 2021.2 LTS为例,详细剖析其语言系统的工作机制,并提供从资源获取、路径定位到文件部署 阅读详情

相关推荐

Docker Desktop 汉化实战:原理、方案与避坑指南

容器化技术通过封装应用及其依赖,实现了环境的一致性与快速部署,其核心原理基于操作系统层面的虚拟化。这项技术为现代软件开发和运维带来了巨大的价值,特别是在微服务架构、持续集成和测试环境搭建等场景中。Docker 作为最流行的容器引擎,其桌面管理工具 Docker Desktop 的界面语言设置,成为了许多开发者,尤其是中文用户关注的焦点。本文聚焦于 Docker Desktop 的界面本地化需求,深入剖析其基于 Electron 框架的界面渲染原理,并对比手动替换资源文件、使用社区汉化补丁以及配置启动参数这三

weixin_34163553的博客 330

android开发中资源文件和资源ID是如何映射的

http://tweetyf.org/2013/02/mapping_between_res_resid_android.html android开发中资源文件和资源ID是如何映射的 in android, 我的原创, 操作系统, 移动互联网 , by tweety 有一段时间没有更新博客了。这里贴一篇从stackoverflow整理过来的问答,来冒充一下

的专栏 994

Flutter 多语言本地化完整指南:从配置到动态切换语言

本文介绍了Flutter多语言本地化的完整实现方案,包括以下核心内容: 国际化和本地化的区别:国际化(i18n)是支持多语言的能力,本地化(l10n)是为具体语言提供内容。

爱喝水程序员的博客 336

资源与本地化(Resource and Localization)一

本文来自:http://www.csharpwin.com/csharpspace/325.shtml#PageTop 在基于Microsoft® .NET框架的应用程序中,你有两种方法来利用诸如字符串,图片,基于文本的文件等资源,你可以把它们之间嵌入应用程序中或者从外部文件中加载。当你选择的是从外部文件中加载而不是从嵌入资源时,必选随同程序集一起分发该文件,你也必需确保应用程序中的代码

chengj814957005的专栏 957

WinForm轻松打造AntDesign现代化工具栏

摘要: 本文介绍如何在WinForm中利用AntdUI库实现AntDesign风格工具栏,包括安装配置、动态生成按钮/下拉菜单、布局优化及主题美化。通过AntButton、AntDropdown等控件结合事件绑定,可快速构建支持图标、工具提示、权限控制的现代化工具栏,并解决常见图标加载、布局错乱问题。最后提供代码示例与响应式设计技巧,助你打造高效美观的WinForm界面。 (字数:150)

java专栏 1593

COMSOL仿真避坑指南:列管反应器模拟中多孔介质与化学反应设置的5个常见错误

本文详细解析了COMSOL仿真中列管反应器模拟的5个常见错误,包括多孔介质模型选择、化学反应接口配置、对流扩散方程处理、薄层热阻设置及网格独立性验证。特别针对多孔介质与化学反应设置的误区,提供了实用的判断标准和修正方法,帮助工程师避免计算偏差,提升仿真精度。

weixin_29597551的博客 323

Android资源和R.java文件详解《一》

今天无意间在群里看到一个朋友问怎么引用特殊位置下的资源,所以今天抽下时间写下,以便处于跟我一样的朋友们学习咯,废话不多讲,直入正题: Android资源: 资源是被你代码使用和在构建时编译进你的应用程序中的额外的文件(非代码文件)。Android支持一些不同各类的资源文件,包括XML、PNG和JPEG文件,XM...

weixin_33910759的博客 197

从Jira到Notion:用Sequential Thinking重构你的敏捷工作流(含GPT-6配置模板)

本文探讨了如何利用Sequential Thinking这一AI认知模型,重构敏捷开发工作流。通过连接Jira、Notion等工具,构建动态依赖图谱,实现从被动响应到主动规划的转变。文章提供了详细的配置教程和GPT-6配置模板,帮助团队实现任务自动拆解、智能看板生成与跨平台协调,从而提升项目管理效率。

gpt4scribbler的博客 205

Android应用的R类与资源文件的关系说明

一.使用Eclipse创建一个HelloWorld工程。创建方法如下图所示: 一.工程创建后,目录结构如下图所示:   三.R类与资源文件关系说明 1.  静态类drawable类对应res文件夹中的drawable-hdpi、drawable-ldpi、drawable-mdpi三个文件夹,drawable类中每个整型的静态常量名与这三个文件夹中的图片资源文件相同(不含扩展名),

FireOfStar的专栏 5369

利用Cesium引擎实现大疆智图B3DM三维模型的高效加载与可视化

本文详细介绍了如何利用Cesium引擎高效加载与可视化大疆智图B3DM三维模型。通过性能优化实战和典型应用场景分析,帮助开发者掌握模型预处理、渲染参数调优及高级功能实现技巧,提升大规模倾斜摄影数据的网页端展示效率。

weixin_29231725的博客 219

手把手教你用DLP4500投影仪玩转结构光3D扫描(附固件烧录与序列设置避坑指南)

本文详细解析了如何使用DLP4500投影仪搭建结构光3D扫描系统,涵盖硬件组装、固件烧录、图案生成与优化等全流程。重点解决了固件烧录失败、图像格式错误等常见问题,并提供了实用的避坑指南和进阶技巧,帮助读者快速掌握DLP4500在3D扫描中的应用。

weixin_42662293的博客 301

三分钟搞定多语言:Flutter Boilerplate 中 easy_localization 国际化实战

想让你的 Flutter 应用走向全球市场?**Flutter 国际化(多语言)**是每个出海应用的必修课。本文要介绍的 Flutter Boilerplate,是一个基于 RiverPod、Dio、go_router、Freezed 构建的脚手架项目,内置了 **easy_localization** 国际化方案,开箱即用。这篇 easy_localization 教程将带你三分钟完成 **Fl

gitblog_00185的博客 262

深度学习|卷积神经网络

介绍卷积神经网络基本理论,包括卷积层、池化层和全连接层,并阐述LeNet卷积神经网络的构建过程。

weixin_58243219的博客 5727

别让 AI 丢线索:AI 编码的上下文工程三步上手

改到第三轮,AI 开始答非所问:忘了你说要改哪个文件,顺手把上次生成的测试也覆盖了。这不是模型笨,而是 Context Rot(上下文腐化)在起作用——对话越长,关键信息被淹没得越深。项目 context-engineering-intro 用上下文工程(Context engineering)来对付 AI 编码里的这个毛病:不再指望模型记住,而是由你来管理进出上下文的信息流。 ## 为什么 A

gitblog_01132的博客 130

YOLO26-seg分割优化:FPN涨点&轻量化篇 |多级特征融合金字塔(HS-FPN),助力小目标检测

​​​​​摘要:本研究对Ultralytics YOLO26进行了全面分析,重点阐述了其关键架构改进及其在实时边缘目标检测中的性能基准测试。YOLO26于2025年9月发布,是YOLO系列最新、最先进的成员,专为在边缘及低功耗设备上实现高效、精确且易于部署的目标而构建。本文依次详述了YOLO26的架构创新,包括:移除了分布焦点损失(DFL);采用端到端的无NMS推理;集成了渐进损失(ProgLoss)与小目标感知标签分配(STAL);以及引入了用于稳定收敛的MuSGD优化器。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 282

RT-DETR 跨模态检测改进:融合红外数据提升 R50 夜间检测效果

本文提出跨模态自适应融合RT-DETR(CMF-RTDETR-R50),通过双分支骨干网络、可变形模态对齐和门控注意力融合三大模块,将红外数据融入RT-DETR-R50检测器,显著提升夜间目标检测性能。该方法在夜间场景下mAP@0.5提升11.7%,小目标检测AP_S提升15.3%,同时保持实时性(38 FPS)。关键技术包括:1)独立提取可见光与红外特征;2)可变形卷积解决模态对齐问题;3)动态门控机制自适应融合双模态特征。该方案适用于安防监控、自动驾驶等夜间检测场景,为跨模态实时检测提供实用解决方案。

走向CTO的路上... 1447

dsh-purge 三步装好:DeepSeek Harness 红队评测跑通

dsh-purge 是装在本机官方 DeepSeek Harness 上的红队评测插件。宿主(你在用的 `dsh web` 或桌面客户端)会改写提示词、加拦截,模型也会自己拒绝;它把这两层拆开,让你看清「不回答」到底卡在哪一层。读完这篇,你能把插件装进当前宿主,走完应用与重启,用 `/purge status` 确认补丁生效。 > 插件的所有操作只发生在你本机已安装的官方 DeepSeek Ha

gitblog_00629的博客 161

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Android APK反编译得到Java源代码和资源文件

一.反编译Apk得到Java源代码 首先要下载两个工具:dex2jar和JD-GUI,前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。以下是下载地址:dex2jar:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip JD-GUI:http://l

期待 1540

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Qwen3-Coder-Next-FP8硬件需求指南:跑通256K上下文编程模型到底需要多大显存

Qwen3-Coder-Next-FP8 是一款专为编程 Agent 和本地开发设计的开源权重模型,80B 总参数、仅 3B 激活参数,原生支持 256K 上下文,并以 FP8 量化发布,是当前跑"大上下文编程模型"性价比很高的选择。这篇硬件需求指南帮你算清楚:本地部署它到底需要多大显存、买什么 GPU、显存不够又该怎么办。 ## 一、先认识模型:Qwen3-Coder-Next-FP8 是什么

gitblog_00298的博客 70

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

dsh-purge 跑通宿主策略清洗:从安装到注入验证的四步操作

同一句话,模型拒绝了。但拦下你的未必是模型,而是宿主策略。dsh-purge 是装在本机 DeepSeek Harness 上的系统提示词注入与策略清洗插件,先把这两层分开。 ## 快速上手:从零到第一次跑通 1. **装插件**。在终端执行(桌面端把 `web` 换成 `desktop`,只装你正在用的那一个宿主): ```bash dsh plugin --profile w

gitblog_00740的博客 196

GitHub Desktop 汉化终极上手:3 分钟一键变中文,看不懂英文也能放心提交代码

> 这篇文章要介绍的开源项目是 **GitHubDesktop2Chinese**——一个专门给 GitHub Desktop 桌面客户端做语言本地化(汉化)的小工具。它会自动找到你电脑上安装的 GitHub Desktop,把界面里的英文菜单、按钮、提示全部替换成中文,全程只需几分钟,不需要任何编程基础。 ## 一、先讲一个真实发生的"社死"瞬间 程序员小陈,入职第三个月。周一的早上,他端着

gitblog_00968的博客 814

仓颉应用资源管理错误码完全解析:9001001~9001010 定位与排查指南

本文基于 OpenHarmony 仓颉(Cangjie)应用开发框架 Localization Kit 中的[资源管理错误码文档](https://link.gitcode.com/i/2b03703b99a122f0aed523251265dca2),系统梳理资源管理模块(`ohos.resource_manager`)的全部 10 个业务错误码(9001001~9001010)。文章逐一给出每

gitblog_01025的博客 1030

android -语言设置

在android中语言适配 响应国际化,一种场景是手动进行语言切换 ,另一种是根据定位得到国家码匹配。  这里仅对中英文切换配置:   1.在res文件下创建对应的values-en文件夹 和 values-zh文件夹 创建所属strings.xml;    如: values-en下strings.xml  中<string name="hello_world">hello word

踏雪飞鸿的博客 442

android error: Apostrophe not preceded by \

android 报错: error: Apostrophe not preceded by \ 很久没更新博客了,今天遇到一个低级错误,定位了好一会儿,在android string.xml文件增加语言自适应描述时遇到如下报错: E:\client\common_version\Ipcamera3.0.10\res\values\strings.xml:16: error: Apos

Sunnyfans的专栏 7400

Unity编辑器深度汉化实战:从PO文件修改到专业术语精准翻译

软件本地化是提升开发者工作效率和体验的关键环节,其核心原理在于通过替换界面文本资源实现语言适配。在游戏开发领域,Unity引擎作为主流工具,其官方中文语言包常存在翻译生硬、术语不统一等问题,影响开发流程。通过手动编辑GNU gettext框架下的PO文件,开发者可以实现对Unity编辑器的深度、精准汉化,这不仅能统一“Asset”(资源)、“Inspector”(检视窗口)等核心术语的译法,还能根据中文习惯优化菜单和提示信息,从而打造更符合本土开发者思维习惯的高效工作环境。本文以Unity 2022 LTS

weixin_30399155的博客 378

仓颉语言 ohos.resource 模块详解:AppResource 资源引用类型与 ArkUI 资源管理实战

本篇技术指南围绕 Localization Kit(本地化开发服务)中的 `ohos.resource` 模块展开,系统讲解 `AppResource` 资源引用类型的完整定义、成员属性、构造方式,并结合 ArkUI 的 `@r` 资源宏与 `ResourceManager` 读取接口,说明如何在仓颉模板工程中声明资源引用、从应用资源中读取字符串、颜色、媒体与复数资源。读完本文,你将掌握 `App

gitblog_00826的博客 187
上一篇: android画多种颜色的圆环带动画效果
下一篇: win7注册表损坏无法开机启动时(开机屏幕一直灰屏)
small_technical
博客等级 码龄11年 9粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值