写给Android开发者的HarmonyOS入门指南
前言自 2023华为开发者大会 之后,HarmonyOS 后续版本将不再支持 Android应用 的说法愈演愈烈,虽然网络上有很多相关的新闻,但大多都是基于 HarmonyOS NEXT 开发者预览版 不支持 Android应用 安装做的推测,目前未见华为官方正式发布说明。
也有人说目前的鸿蒙开发工具 DevEco Studio 里面都没有集成 Android SDK,但这也只能说明原生的鸿蒙应用无法安装在 Android 系统上,这个说法尚未定论。
但是 HarmonyOS 的发展是必然的,作为移动端的从业人员,自然不能停滞不前,今天我们就来走进 HarmonyOS 的世界。
准备及注意这篇文章是面向 Android开发者 的,因此一些基本的东西我就不再赘述,相关文档可以在华为开发者联盟查看。
以下内容都是基于已经搭建好 HarmonyOS 开发环境(DevEco Studio、HarmonyOS SDK);
DevEco Studio应用签名是和华为账号绑定的,所以开始前需要注册一个华为账号(首次运行失败会有提示);
运行 HarmonyOS 项目需要一部鸿蒙系统的手机;(目前仅 ...
高版本 Android Studio 集成 framework.jar
前言最近工作需要在项目中集成系统的 framework.jar,以此来调用系统的定制功能,但是按照之前方案配置之后发现无法调用 framework.jar 中的方法,默认使用的还是 Android SDK 里面的方法。
经过一系列的排查之后终于找到解决方案,做此分享。
集成 framework.jar 方案导入 framework.jar首先将 framework.jar 导入项目中,以一个简单 Demo 项目举例,项目中有一个 app 模块,项目结构如下(只列出了关键文件)
123456789101112# 项目结构Demo |---- .idea | |---- modules | | |---- app | | | |---- Demo.app.main.iml |---- app | |---- libs | |---- src | |---- build.gradle.kts |---- build.gradle.kts |---- settings.gradle.k ...
Android Gradle 三方依赖管理
发展历史Gradle 的依赖管理是一个从开始接触 Android 开发就一直伴随着我们的问题(作者是Android开发,仅以此为例),从最初的 没有统一管理 到 通过.gradle或gradle.properties管理,再到 Kotlin 出现之后使用 buildSrc 管理 以及在这基础上优化的 Composing Builds,Gradle 依赖管理一直在不断的发展、更新,而到了 Gradle 7.0,Gradle 本身又专门提供了全新的 Version Catalogs 用于依赖管理,今天我们就来说说这些方式的优劣及使用方式吧。
最原始的依赖当我们通过 Android Studio 创建一个新项目,这个项目里面默认的依赖就是最原始的,没有经过统一管理的;如果你的项目中只有一个 module,那么这种默认的管理方式也是可以接受的,是否对它进行优化,这取决于你是否愿意投入成本去修改,谈不上什么优劣。
使用 .gradle 配置当你的项目中 module 的数量超过一个甚至越来越多的时候,对 Gradle 依赖进行统一管理就变得重要起来,因为你不会想在升级一个三方依赖的版本后发现冲突 ...
Android反编译:手把手教你制作高德地图车机共存版
前言去年年底提了新车,这车什么都好就是自带的高德地图版本太低了,在高德地图已经进入6.x的时代,车机上自带的才4.x,更重要的是不支持升级,从高德官网下载的车机版安装提示签名不同,覆盖安装又没有权限,就很难受,好在高德官方论坛里面有很多大佬都有提供共存版本,非常好用。
但是,作为一个Android开发人员,怎能如此没有追求,当然得自己造一个出来啊。
前期准备首先需要感谢的是高德地图的APK没有进行加固,这大大减轻了我们反编译的工作量,为此我们需要以下工具:
apktools.jar 用于对apk进行反编译及重新打包 官方地址
dex2jar 用于将apk中的dex文件转换为可读的jar格式 下载地址
jd-gui 用于查看反编译出来的源码信息的图像化工具 下载地址
由于部分网站可能被墙无法访问,可以选择从我打包好的云盘下载
当然,最后还不能忘了下载 高德地图车机版
最终环境结构如下:
反编译流程反编译获取有效信息首先第一步就是通过 apktools.jar 工具对官方的apk进行解包;
12# 通过 apktools.jar 进行解包$ java -jar .\apkto ...
Android中指纹识别的使用
前言 最近,在查看 SampleProject 这个项目的时候,就觉得吧,这个登录有点麻烦,总是要输密码,现在很多 APP 都是可以指纹登录的呀,这个必须支持一波;而且开发这么多年还没尝试过指纹识别,这可不行,学到老活到老嘛。
指纹登录流程 指纹登录 不就是简单的调用 指纹识别 的 API 然后登录账号吗,这有什么可说的?可能有人会问了。然而并非如此,一开始我也很天真的以为就这么简单,但是在网上找了很多文章之后发现,大多数的文章都只是详细的说明了怎么去调用 指纹识别 的 API,至于怎么用于登录,怎么去实现 指纹登录 的业务确是很少提及,所以,这里我会先给大家讲清楚实现 指纹登录 的流程再去实现。
指纹识别在指纹登录中的作用 登录是我们应用中的逻辑,我们把 指纹识别 穿插在其中是需要他做什么?
实际上,我们可以把 指纹登录 简单的理解成 不用密码登录,那么为了能过 不用密码登录,我们肯定需要把用户登录需要的信息 保存到本地,那么我们首先考虑到的就是 本地数据的安全问题,在这里,指纹识别 就为我们本地数据提供了 加密、解 ...
Android Studio:你的主机中的软件中止了一个已建立的连接
你的主机中的软件中止了一个已建立的连接。 最近,在使用Android Studio开发的过程中出现了一个问题,只要一同步 gradle 就会异常,错误提示:你的主机中的软件中止了一个已建立的连接,这就很奇怪,先前使用的时候还没有问题的啊。
将错误信息放到百度上搜索,发现很多人都碰到过这个问题,也给出了解决方案:关闭电脑的Wi-Fi热点。
尝试了一下,确实没有异常,能够正常使用了,但是为什么会这样?而且工作需要,是需要使用电脑的热点的,总不能需要的时候开热点,不需要就关掉吧,这样效率太低了。
开始排查原因,总不能平白无故的就出现这样的问题,之前项目运行没有问题,其他项目运行也没有问题,那么肯定是这个项目修改了什么导致的,而在这期间,唯一有变动的就是项目依赖的 Gradle 版本!最终我们在 Gradle 的 issue 中也发现了这个问题的反馈:Gradle 6.5 版本新出现的 bug,电脑开启热点会导致连接中断。
确实,最近升级到 Android Studio 4.1 的时候,顺手升级的 Grad ...
Kotlin类委托(二):实现原理及注意事项
相关文章
Kotlin 类委托(一):如何把一个列表页优化到十几行代码
Kotlin 类委托(二):实现原理及注意事项
上章留下的问题 有看过我上一篇文章的读者可能会有疑问,为什么对网络数据的请求要使用 lambda 对象 getArticleList 的方式调用,在不同的 viewModel 的 init 方法块中进行设置,为什么不使用在 接口 中声明,在子类中 重写 的方式实现呢?我们改用这样的方式实现看一下效果:
在 ArticleListPagingInterface 中添加方法用于获取数据
12345678910/** 分页获取数据相关接口 */interface ArticleListPagingInterface { ... 省略部分代码 ... /** 获取文章列表数据 */ fun getArticleList(num: Int): LiveData<NetResult<ArticleListEntity>> ... 省略部分代码 ...}
在 ArticleLi ...
Kotlin 类委托(一):如何把一个列表页优化到十几行代码
相关文章
Kotlin 类委托(一):如何把一个列表页优化到十几行代码
Kotlin 类委托(二):实现原理及注意事项
痛点 在之前,有用 玩Android 的 API 写了一个 Demo 项目 SampleProject,初期开发完成之后开始着手进行优化,就突然发现 首页、项目、体系等 文章列表 数据结构相同、功能也相同,但是由于不同界面获取数据的接口不同,导致同样的代码写了很多遍,一个界面代码少说百来行,这样的重复低效肯定是不行的,必须要优化!
这里贴上原有 ViewModel 代码:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 ...
使用Hexo搭建自己的博客(四)发布到 阿里云
前言 生命在于无限折腾,好不容易才搭好自己的博客网站,提交到了 Github 让别人也能欣赏到(づ。◕‿‿◕。)づ,现在嘛,我又开始嫌弃 Github 访问太慢了,首页精挑细选了好久的精美图片总是加载不出来,这怎么行,必须安排!
和 Github 一样,想 Gitee 等一些国内的代码仓库也提供了 Pages 给用户搭建静态网站,和发布到 Github 上都差不多,感兴趣的可以自己去了解一下。但是,这些方式提供的空间都是有限制的,如果你的博客越写越多,内容越来越多就会超出空间大小(是个远大的目标╮( ̄▽ ̄)╭),这些都不是重点,我就是要折腾,于是我选择租一台云服务器作为自己的博客服务器。
服务器配置 服务器这边我们还是推荐 阿里云 的哦,个人博客建站的服务器新用户第一年一折,如果你暂时还不想租用服务器,只想折腾实践一下,你也可以尝试 30 天的免费试用,也足够使用了。
配置安全组 首先,在租好服务器后第一步就是配置安全组,因为阿里云服务器默认是不授权80端口访问的,所以我们需要手动配置。
按照顺序点击 ...
使用Hexo搭建自己的博客(三)发布到 Github
前言 在简单的了解了使用 Hexo 搭建网站、修改主题、写博客之后,我们已经能在本地预览网站的效果了,但是只能自己一个人看,这多没意思,好东西要大家分享嘛,今天就来说说如何把你的网站发布出去让别人也能看到。
准备因为 Github 免费提供了一个 Pages 可以用于搭建网站,所以这里我们使用 Github 来发布我们的网站。
首先,你需要一个 Github 账号,这么简单的事情我就不细说了,然后,你需要新建一个仓库,名称为 xxxx.github.io ,名称一定要对,这里的 xxxx 是你 Github 账号的用户名。
接下来,为了能通过 git 将网站发布到 Github 上,我们需要安装 hexo-deployer-git 插件:
12## 安装 hexo-deployer-git 插件$ npm install hexo-deployer-git --save
然后,我们需要在 _config.yml 配置文件中进行配置:
1234deploy: type: 'git' repository: git@xxxxxx.git ...