<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[XuZhenhao]]></title><description><![CDATA[冰冻三尺，非一日之寒；为山九仞,岂一日之功。]]></description><link>https://blog.youkuaiyun.com/sumsear</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sumsear]]></copyright><item><title><![CDATA[HarmonyOS - 一次开启混淆导致的参数获取失败事件]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/140928017</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/140928017</guid><author>sumsear</author><pubDate>Mon, 05 Aug 2024 15:33:12 +0800</pubDate><description><![CDATA[一次开启混淆之后打包运行 APP 发现，有部分参数无法获取，但打印 object 对象该参数确实存在于 object 中。被 IDE 混淆了。经过测试发现将字符串修改为驼峰命名法之后开启混淆不会出现该问题。a）规范代码命名方式， object 中的属性一律使用驼峰命名法。b）属性名单独使用字符串保存，不直接在中括号中使用硬代码。拆包鸿蒙APP之后发现开启混淆之后字符串。]]></description><category></category></item><item><title><![CDATA[HarmonyOS - 通过.p7b文件获取fingerprint]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/140181131</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/140181131</guid><author>sumsear</author><pubDate>Thu, 04 Jul 2024 16:04:09 +0800</pubDate><description><![CDATA[开发者证书指纹获取方式
1.证书存放.p7b文件的development-certificate字段下，将证书的内容拷贝存储为test.cer文件。
2. 利用keytool工具打印对应的证书的指纹 keytool -printcert -file test.cer
去掉冒号
]]></description><category></category></item><item><title><![CDATA[HarmonyOS - 记一次HSP异常堆栈无法定位问题]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/138913930</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/138913930</guid><author>sumsear</author><pubDate>Wed, 15 May 2024 16:46:50 +0800</pubDate><description><![CDATA[根据堆栈显示的路径去到 HSP 工程编译时生成的 Build 目录找到对应的 .ts 文件即可。导致无法定位问题的原因是，混淆时开启了代码压缩导致，关掉代码压缩之后正常。重新编译之后运行，异常堆栈显示的行列号正常。]]></description><category></category></item><item><title><![CDATA[Android — 使用 Runtime 获取日志并保存至 download 目录]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/138704852</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/138704852</guid><author>sumsear</author><pubDate>Sat, 11 May 2024 10:35:32 +0800</pubDate><description><![CDATA[使用 Runtime 获取日志并保存至 download 目录。]]></description><category></category></item><item><title><![CDATA[HarmonyOS —— 仿 XPermission 鸿蒙权限申请工具类]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/138149249</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/138149249</guid><author>sumsear</author><pubDate>Wed, 24 Apr 2024 10:00:34 +0800</pubDate><description><![CDATA[仿 XPermission 写一个简单的鸿蒙权限申请工具类。]]></description><category></category></item><item><title><![CDATA[HarmonyOS —— 跳转应用详情页]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/138145877</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/138145877</guid><author>sumsear</author><pubDate>Wed, 24 Apr 2024 09:34:57 +0800</pubDate><description><![CDATA[鸿蒙跳转应用详情页功能，使用场景可以是引导用户进入应用详情页 授予应用权限。1.在 UIAbility 中获取。]]></description><category></category></item><item><title><![CDATA[HamonyOS —— HDC 指令]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/137633048</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/137633048</guid><author>sumsear</author><pubDate>Thu, 11 Apr 2024 11:50:20 +0800</pubDate><description><![CDATA[hdc install -r 【hap路径】持续待更新......]]></description><category></category></item><item><title><![CDATA[Javascript — 异步方法与异常捕获问题]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/136898721</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/136898721</guid><author>sumsear</author><pubDate>Thu, 28 Mar 2024 10:09:15 +0800</pubDate><description><![CDATA[如果 Promise 实现了拒绝事件处理器，则这个事件转交由 Promise 的拒绝事件处理器处理了，那么 try catch 依然无法捕获这个异常。PS：如果一个被拒绝的 Promise 没有实现拒绝事件处理器（then()、catch()、finally()），则这个事件将会由环境来进行处理，比如浏览器等。其中finally() 是 Promise 被兑现或者拒绝之后执行的回调函数，可以用来处理一些在 then 和 catch中执行的重复性代码。]]></description><category></category></item><item><title><![CDATA[HarmonyOS — BusinessError 不能被 JSON.stringify转换]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/136834009</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/136834009</guid><author>sumsear</author><pubDate>Tue, 19 Mar 2024 10:25:27 +0800</pubDate><description><![CDATA[在鸿蒙中BusinessError 继承于Error，而在JavaScript（以及TypeScript，因为它是JavaScript的超集）中，属性可能因JavaScript引擎的实现而异，并且可能不是所有环境下都是可枚举的。方法会将一个JavaScript对象或者值转换为一个JSON字符串，但是。对象可能还包含其他非枚举或不可序列化的属性，比如函数、循环引用或者。它只接受能够被序列化为有效JSON格式的属性。属性是一个包含调用堆栈信息的字符串，而。捕获的，因为它是可枚举的。]]></description><category></category></item><item><title><![CDATA[HarmonyOS —— AES 加解密实现]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/135689973</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/135689973</guid><author>sumsear</author><pubDate>Mon, 22 Jan 2024 14:12:17 +0800</pubDate><description><![CDATA[创建对称密钥生成器。通过密钥生成器随机生成对称密钥。创建加解密生成器。通过加解密生成器加密或解密数据。]]></description><category></category></item><item><title><![CDATA[HarmonyOS —— SM4 加解密实现]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/135689473</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/135689473</guid><author>sumsear</author><pubDate>Mon, 22 Jan 2024 14:11:38 +0800</pubDate><description><![CDATA[创建对称密钥生成器。通过已有二进制数据生成密钥。创建加解密生成器。通过加解密生成器加密或解密数据。]]></description><category></category></item><item><title><![CDATA[HarmonyOS —— SM3 摘要计算]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/135688685</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/135688685</guid><author>sumsear</author><pubDate>Fri, 19 Jan 2024 09:05:47 +0800</pubDate><description><![CDATA[国密 SM3 签名的实现和 MD5 签名实现是一致的，其实和 Java bcprov 的也是基本一致。这大大提高了上手速度。]]></description><category></category></item><item><title><![CDATA[HarmonyOS —— Hex 字符串转 Uint8Array]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/135688445</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/135688445</guid><author>sumsear</author><pubDate>Fri, 19 Jan 2024 08:51:45 +0800</pubDate><description><![CDATA[OpenHarmony 开发 ets Hex 字符串转 Uint8Array基本和 js 一致，需要注意的是 string 的 subString 方法和 subStr 的区别，前者所取得值是 start 和 end 后者是 start 和 len。]]></description><category></category></item><item><title><![CDATA[HarmonyOS —— buildMode 设置（对比 Android Build Varient）]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/135628644</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/135628644</guid><author>sumsear</author><pubDate>Wed, 17 Jan 2024 16:52:06 +0800</pubDate><description><![CDATA[在安卓中 Build Variant 主要依赖模块（module）中 build.gradle 的 BuildType 和 ProductFlavor 提供的属性和方法，我们可以使用 Build Type 可以配置不同的构建方式、ProductFlavor 主要用来进行多渠道打包。]]></description><category></category></item><item><title><![CDATA[HarmonyOS —— SHA256 MAC（对比 Java 实现）]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/135400856</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/135400856</guid><author>sumsear</author><pubDate>Fri, 05 Jan 2024 09:54:32 +0800</pubDate><description><![CDATA[使用 cryptoFramework  实现 HMAC 计算，并与 java 的实现方式进行对比。 ]]></description><category></category></item><item><title><![CDATA[HarmonyOS —— MD5 摘要计算]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/135390569</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/135390569</guid><author>sumsear</author><pubDate>Thu, 04 Jan 2024 16:49:47 +0800</pubDate><description><![CDATA[计算 MD5 摘要需要导入HarmonyOs提供的统一的密码算法库加解密相关接口。]]></description><category></category></item><item><title><![CDATA[HarmonyOS —— Uint8Array 转 Hex 字符串]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/135390251</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/135390251</guid><author>sumsear</author><pubDate>Thu, 04 Jan 2024 16:32:56 +0800</pubDate><description><![CDATA[OpenHarmony 开发 ets Uint8Array 转 Hex 字符串。]]></description><category></category></item><item><title><![CDATA[Android布局优化-include、merge以及ViewStub使用]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/128837235</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/128837235</guid><author>sumsear</author><pubDate>Tue, 21 Mar 2023 10:22:22 +0800</pubDate><description><![CDATA[merge 标签可以用来减少 View 层级，由于一般需要复用的 xml 都比较复杂因此极少存在需要使用的场景，目前主要是配合 include 标签，或者在自定义 View 时候，比如继承了某个 ViewGroup 的场景下使用 merge 标签减少自定义控件的层级。merge 标签不是View，所以被 merge 标签包裹的 view 无法使用  ViewGroup 的属性实现对应的布局效果，Google 提供了 parentTag 标签来解决这个问题。定义ViewStub。调用ViewStub。]]></description><category></category></item><item><title><![CDATA[中国移动一键登录 —— SDK5.8.1-5.9.0使用setAuthContentView方法开发更有个性的授权界面]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/120011006</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/120011006</guid><author>sumsear</author><pubDate>Tue, 31 Aug 2021 11:27:00 +0800</pubDate><description><![CDATA[此文出要解决部分接入者不知道如何设置点击事件以及设置的View没有和预想的一样全屏问题。

目录

1. 准备工作

2. setAuthContentView的调用

3. 运行效果图

1. 准备工作

1.1 已经接入好SDK，使用默认配置能够运行。

1.2 根据公司产品要求调好SDK "本机号码一键登录" 按钮、号码栏、协议栏位置。

2. setAuthContentView的调用

2.1 准备好要添加到SDK授权页的XML文件


&lt;?xml version="1.0" encodin]]></description><category></category></item><item><title><![CDATA[中国移动一键登录 —— SDK5.8.1DEMO运行提示 not found for signing config ‘config‘.问题]]></title><link>https://blog.youkuaiyun.com/sumsear/article/details/116274097</link><guid>https://blog.youkuaiyun.com/sumsear/article/details/116274097</guid><author>sumsear</author><pubDate>Thu, 29 Apr 2021 18:27:08 +0800</pubDate><description><![CDATA[由于SDK提供方发布demo工程时将app下的build.gradle文件中的signingConfigs中的内容以**替换了，所以开发者直接运行会出现Keystore file 'E:\CMCCSSOSDK_Demo\app\**' not found for signing config 'config'. 目前发现很多开发者面对这个提示一筹莫展完全没有解决思路，更有甚者可能耗时一个下午。

目录

1. 准备工作

2. 打开项目

3. 运行工程

4. 注意事项

1. 准备工作

1.1 开发.]]></description><category></category></item></channel></rss>