
Android
henysugar
这个作者很懒,什么都没留下…
展开
-
Android studio中排除文件功能的小总结
刚开始发现android studio的sourceSets的main下面java的excludes无效,改了好多次都没成功,以为关键字不支持,或者是gradle版本问题,结果查了半天没成功。后来经过对比发现是相对路径问题。在此总结一下,希望节省大家的时间,以便为共和国的开发事业更快超越其它国家做出一点贡献。原创 2024-10-16 11:37:50 · 596 阅读 · 0 评论 -
adb协议之sync服务
看了一下网络上翻译的sync.txt有点生硬。自己看了一遍原版的,做一下整理总结。注:网上的翻译文章是“《MonkeyRunner源码剖析》ADB协议及服务: ADB协议概览SYNC.TXT翻译参考”。同步模式adb通信有普通模式和同步模式,在普通模式下给adb服务发送“sync:”指令后,adb服务以普通模式的协议答复“OKAY”或者“FAIL”,然后,adb和客户端之间的交互就进入同步模式。接下来,sync.txt中表达了这么一个意思:进入同步模式后呢,adb服务和客户端之间交互接下来就原创 2021-12-10 11:33:13 · 1539 阅读 · 0 评论 -
使用C++创建Android中的authToken
android系统中的指纹识别调用时候需要提供一个hw_auth_token_t的结构,hw_auth_token_t就是authToken数据,这个结构填充如果不对,则会导致后面的接口调用不正常。authToken需要硬件来产生,其实关键的是hmac的计算,这个计算目前没有公开源码,大概原理是计算一个key,拿着key做hash。在安卓系统中,调用gatekeeper的verify接口可以生成authToken数据。下面通过例子代码演示如何调用(代码中的“hat”就是输出的authToken数原创 2021-02-04 09:43:58 · 487 阅读 · 0 评论 -
Android HIDL简介(指纹服务为例)
进程采用HIDL方式实现提供服务,一共有三个进程:客户端、渠道、服务端。其它什么XX模式的别管,以上是HIDL终极目标,也是目前android运行的方式。调用过程客户端调用接口 --> 接口联系渠道 --> 渠道转发给服务端 --> 服务端响应做相应的业务处理。客户端一般来说客户端都是APP。渠道这里的是hwbinder。服务端一个可执行文件,服务逻辑实现,一般都是一个类函数的实现。例如“BiometricsFingerprint.cpp”文件中的类原创 2021-01-06 16:49:29 · 516 阅读 · 0 评论 -
HIDL接口修改后编译报错问题
HIDL接口文件修改后,会提示hash不匹配的问题,例如下面的提示:ERROR: android.hardware.biometrics.fingerprint@2.1::IBiometricsFingerprint has hash e21385ffc342a7c28276fbf3b26f8c191400f84ebc9ebd879ef8e4c5358a635c which does not match hash on record. This interface has been frozen.原创 2021-01-05 11:13:39 · 3012 阅读 · 0 评论 -
android studio显示logcat原理
adb是一个服务,它在本地的5037端口开了口,谁都可以通过这个口找它咨询,咨询它,需要遵循它的规则,随便问会被乱棍打回。它的规则其实很简单,每次问话必须:内容大小+内容。例如你想问adb一个hello要这样问:0005hello。adb如果认识就给你会个OKAY,不行就返回错误串。其他的规则,请自己查一下相关材料,有很详细的。基于这个规则,android studio也是通过不向5037端口咨询,然后adb不断地返回logcat日志而实现的。android studio向adb原创 2020-06-08 20:46:29 · 619 阅读 · 0 评论 -
clipdrawable属性正确说明(网上有些版本是错的)
drawable : 指定要裁剪的drawable clipOrientation:表示裁剪的方向,水平或者垂直,可以单独指定一个方向,或者同时指定两个方向 gravity:表示裁剪区的对齐方式,可以取多个值或在一起 取值含义: top 裁剪区放在本clipdrawable的顶部。当clipOrientation 是”vertical”,裁剪从顶部开始(从顶部开始展现) bottom ...原创 2020-05-16 09:18:17 · 301 阅读 · 0 评论 -
解释得最清楚的一篇:从使用角度理解android中的them和style
要点方式整理:app可以指定一个theme,简称apptheme任意一个view也可以指定一个theme,简称viewtheme任意个view都可以指定一个style系统默认给view准备一个style,在系统默认的apptheme中定义了style只影响所在view自身...原创 2020-04-01 23:24:31 · 270 阅读 · 0 评论 -
rxjava2要点介绍
rxjava2比1有什么差异?如果说开发rxjava1的时候,作者只是个程序初哥,那么rxjava2的时候,作者已经是有点经验的人了,rxjava2的接口函数、类名的命名以及接口调用方式,都比rxjava1成熟不少,且更容易理解,逻辑也合理些。flowable数据/事件源增加了一个叫flowable的东西,和observable类似,都是把数据/事件推给订阅方进行处理。特点如其名f...原创 2018-12-02 09:06:48 · 464 阅读 · 0 评论 -
深图系列:Android Studio使用C/C++
前言Android Studio支持C/C++,自从有了向导,用起来不再那么麻烦,但是配置起来还是有点复杂。特别是拿到别人的C和C++库要合并到自己的Java中使用,更为明显。本文针对在Android Studio中使用C/C++语言开发和编译做介绍和记录,供大家参考,也给自己做个记录。为了方便,以下使用“C”表示C/C++。注:本文只介绍CMake的方式编译C代码,旧方式(And...原创 2018-12-02 09:05:28 · 1161 阅读 · 0 评论 -
rxjava要点简介
rxjava用来干什么举例子吧。某个地方不定期地发放个人娱乐用品,小张喜欢这些用品,希望每次都能被通知过来领取享受一把。rxjava就是能让小张实现愿望的一个社团机构。在以上的例子中,rxjava负责以下工作:1.主动发起发放娱乐用品活动,每次都由rxjava主办;2.每次搞活动时候,rxjava都派人通知小张过来领取当场享受;所以,切回程序框架的角度,rxjava...原创 2018-10-25 17:07:39 · 232 阅读 · 0 评论 -
Retrofit简介
Retrofit干什么的?Retrofit让你便捷地封装出一个类来给其它地方调用和服务器进行HTTP API调用。比如,一般来说,不用retrofit的时候,你需要填写http参数,然后get数据下来,然后解析,然后。。。。用了retrofit之后,你只需a.xxget("参数值")拿到一个对象,就可访问服务器返回的数据了。retrofit一般都是结合okhttp使用。定义服务接口类要想做到上面说...原创 2018-06-28 14:39:34 · 1334 阅读 · 0 评论 -
Android.mk 转换 cmakelists.txt 注意要点
前言Android Studio推荐使用CMakeLists.txt,对于已经使用Android.mk写的编译文件,转换为CMakeLists.txt即可。本文就是针对转换的一些要点做记录和介绍。CMakeLists.txt文件头CMake的规则很多,需要了解详情的请到其官网,这里只介绍常用的一些格式要点。CMakeLists.txt文件头需要声明一下最小版本:cmake_...原创 2018-07-19 11:08:44 · 3940 阅读 · 0 评论 -
PJSIP Android版编译
前言PJSIP的configure-android文件已经跟不上android ndk的步骤,所以不要指望下载后就能configure-android执行。我们需要手动改一下configure-android才行。再修改configure-android之前,我们了解一下confignure-android的本质。configure-android本质PJSIP的configure-android...原创 2018-07-05 14:00:01 · 2329 阅读 · 3 评论 -
java便捷调用现成c/c++库: cmake使用swig简介
简介swig是个工具,能便捷地让其它脚本语言调用你使用C语言编写的程序。更具体的请自己google一下相关资料(如果没条件上google,用一下baidu应该也能查到点东西)。在android应用开发中,可能java要大量地调用一个现成的c库的时候,可以考虑用swig转换一下。android studio现在都推荐用cmake了,而cmake支持使用swig。使用SWIG模块S...原创 2018-09-26 11:07:27 · 1583 阅读 · 0 评论 -
android studio库引用依赖方式本质区别
前言implementation,api...,每次写的时候,都不好记住差别,都要重新查资料,实在麻烦,这也说明android studio有关这块的命名肯定不当,那么不容易记。在此,需要搞清楚google为何这么搞,其动机是什么为了解决什么问题?背景原因其实追究其后面原因,是因为android studio要优化编译效率,解决依赖库的后期开发变更引起的一系列编译的效率问题。例...原创 2018-10-22 14:58:42 · 773 阅读 · 0 评论 -
Mac OS jdk 10.0.1
从官网下载非常慢,特上传一个到这里分享给大家:https://download.youkuaiyun.com/download/henysugar/10734069#0-qzone-1-62930-d020d2d2a4e8d1a374a433f596ad1440 点击后,下载,打开下载的文本文件,然后复制里面的链接(百度网盘分享 pan.baidu.com),输入文件中提供的密码即可。 ...原创 2018-10-20 18:03:17 · 549 阅读 · 0 评论 -
Mac OS 下搭建android studio开发环境
1.jdk安装这步骤是少不了的,如果不安装jdk直接安装android studio,后期使用还是一样会遇到license报错的问题。所以,在安装android studio前,先安装jdk。jdk可以到官网下载,然后按照提示操作就行,很简单。不过官网在大陆地区下载速度很慢,在此共享一个百度网盘的(10.0.1版本的jdk,下载文本文件里面有链接和密码):https://downloa...原创 2018-10-21 10:12:27 · 4083 阅读 · 0 评论 -
简单介绍Android的Handler的本质
1.前言网络上关于Handler的介绍已经有太多了,本文希望能图文并茂简单地介绍一下Handler,让大家更形象地理解并掌握Handler。2.Handler是什么?简单地说,Handler是 用来响应和处理消息的工具,所以才叫“Handler”。例如,如果你想处理别人给你发的消息,通过Handler提供的方法填写你的响应代码就可以实现。3.Handler都能干些什么?...原创 2018-05-14 23:27:39 · 345 阅读 · 0 评论