安卓学习
文章平均质量分 78
codelang
这个作者很懒,什么都没留下…
展开
-
Compose 跨平台的现状
Compose 能应用于跨平台,主要是基于 KMM 架构,KMM 的介绍可以查看官方文档《Get started with Kotlin Multiplatform Mobile》,我们来看下 KMM 的简单架构:commonMain 为通用层模块,也可以被称为平台无关层,如果 commonMain 涉及到平台相关操作的话,则需要定义 expect 方法,让 xxxMain 模块去 actual 实现这个方法,这样,在不同的平台集成 KMM 时就可以实现各自平台的效果。从 KMM 架构可以看出,一些通用的逻原创 2022-07-02 22:55:33 · 2330 阅读 · 1 评论 -
我是怎么学习 Compose 的
最近一直在看 Compose 相关的东西,也算是从了解到入了个门,在将近一个月的课后(下班)学习中,输出了 3 篇原理性相关的文章,从文章标题可以看出,我是从原生与 Compose 之间的交互进行探索的:在看完官方文档的组件和一些优秀的开源项目,输出一个简单的 demo:效果如下:关于我的学习方式,引用一位博主的话:最后,将自己在学习 Compose 中看过的文章和好的示例 demo 都总结一下,为那些想学 Compose 的同学提供一些资料先从概览了解 Compose 是如何编写:Jetpack Com原创 2022-07-02 22:49:39 · 311 阅读 · 0 评论 -
隐私合规代码排查思路
本文文章已首发「扣浪」公众号隐私合规整治不仅仅是排查一次就完,而是要做一个完整的体系来规范后面的编码,避免隐私代码调用又出现而触发合规问题。一个体系的完善,总体流程为:发现问题更改问题规范问题1、如何检查 “同意用户隐私” 之前的隐私代码调用?通过 as 去手动 Find in Fies ?那你怎么知道这个代码是在什么时机调用的呢?所以,静态检查隐私代码调用是不合适的。有没有一种能在运行的时候知道是哪些类调用了隐私 API 呢?有,我们的基础团队写了一篇《Android APP运行时行为原创 2022-03-08 21:52:03 · 2994 阅读 · 0 评论 -
凸多边形航线规划算法优化
本文是对参考文章《无人机航线规划思路剖析,基于凸多边形地块往复式运动》算法实现的一个优化,优化内容点:航线间隔的优化航线外扩注:接下来的内容,请务必掌握参考文章内容的知识点。航线间隔计算的优化优化前写法:作者使用了一个非常简单粗暴的写法,即用多边形外接矩形计算出最北方向和最南方向的距离,然后除以航线间隔距离,得出规划航线的数量:function distance(p1,p2)...原创 2019-12-01 11:26:24 · 3714 阅读 · 5 评论 -
打造万能的EmptyLayout
前言最近一直在做新项目,做的途中也一直在思考,如何让开发更加的方便,界面的实现更加的优雅,于是,就去github稍微搜索了一下好的例子,结果不尽人意,要么太臃肿,要么移植难,要么结构不清晰,于是,就打算自己来实现一个 效果图 代码使用 LoadingLayout loadingLayout; @Override protected void onCreate(Bu原创 2017-12-16 14:41:37 · 500 阅读 · 0 评论 -
纯手工打造Easy支付库
纯手工打造Easy支付库 前言接触微信支付的开发者都知道,微信支付的所有处理都是在WXPayEntryActivity类里面,按一般开发流程走的话,我们在订单页面发起PayReq支付,微信调起支付页面,支付的结果处理会调用WXPayEntryActivity的onResp方法,根据BaseResp返回的结果码来判断当前的支付结果,整个思路是没错的,关键是有一点,WXPayEntryActivi原创 2017-11-26 13:22:56 · 416 阅读 · 0 评论 -
用kotlin来实现一个饼图
前言代码不难,所以打算用kotlin来实现,增加熟练度 先看看做的是什么原创 2017-12-08 11:40:04 · 1164 阅读 · 0 评论 -
仿电商商品分类的思路实现
仿电商商品分类的思路实现 引言按照以前的习惯,本来是每周一篇,因为昨天去逛街买了条169的裤子给耽误了,周一早上来补上。 丑豆很早就让我给他写一下这个demo,每次都有点忙没给他写,趁着昨天晚上睡前一小时来搞定。 效果图我参照的是拼多多商品分类的界面来写的,先看看样图然后看看动态的效果图 实现思路这个页面用了两个并排的列表,右边列表每个item都有一个type对应左边的列表ite原创 2017-11-20 11:32:44 · 1882 阅读 · 0 评论 -
畅聊微信支付遇到的坑
好久没更博了,甚是想念,工作的日子再也没有学校的那种悠闲,仕途一片迷茫,走一步看一步…列出自己开发中微信遇到的坑示例demo有坑爹的歧义支付的回调操作签名错误示例demo有坑爹的歧义刚接触微信支付文档的时候,是一种懵逼的状态,一般大家都会去找示例demo玩玩,讲真,我不建议大家看示例demo玩,里面的代码给开发者很多的误解,有的开发者看了代码,误以为订单的一些信息是前端去生成的,在支付中,是原创 2017-09-19 11:08:17 · 1165 阅读 · 0 评论 -
轻松实现驾考宝典等驾考项目答题界面
开源这个项目主要是想帮助更多想做驾考类项目的同志们参谋参谋,亦或是想做答题项目的,本项目实现了单选和复选的的混合,该项目配合的数据源是来自阿凡达,之前做驾考的时候,记得聚合数据也有的,后来关掉了,所以就用了阿凡达的,该接口每天可以请求1000次,感觉不算太多,但足够使用,如果运用到项目的话,安装应用的时候将所有题目缓存到数据库,以后取数据的时候就去数据库里面取数据,这样就方便了多次请求这个api,毕原创 2017-02-06 20:06:36 · 10000 阅读 · 14 评论 -
Android的Nexus搭建Maven私有仓库
前言我们平时在开发的时候总会compile一些远程仓库的框架来使用,但不可避免的是有些公司是内网,或是断网了,这就造成了依赖失败,亦或是自己开发了一个很牛的组件,希望同步给小伙伴一块耍耍,但是网络环境不允许,总不能拿个U盘拷贝过去吧,被别人听到程序员是这么协作的,估计会笑掉大牙。 Nexus这个私服正好解决了这个问题,他的思路是本地与远程之间嫁接一层本地的服务器,对于公司内部团队协作开发的原创 2018-01-08 11:33:57 · 372 阅读 · 0 评论 -
如何正确设置动态TextView的textSize
今天测试测出了一个问题,在高分辨率下TextView的显示没问题,在低分辨率出现了字体特别的小,也就是没适配好。左边的是 768 * 1028 分辨率的机子,右边的是 1440 * 2560 分辨率推荐新闻部分是动态设置的TextView,出现了适配问题,然后来看看我的代码 第一次尝试 TextView tv = new TextView(mContext);...原创 2018-03-28 15:09:23 · 5746 阅读 · 0 评论 -
最全的屏幕适配方案
使用直接在Application的onCreate方法中调用(Density类直接参照附录)Density.setDensity(this, 375f);这个地方我们需要注意375f这个参数,针对这个参数,我们来好好说说。375这个值是一个UI图的参照值,单位是dp,我参照的是1334*750像素的图然后我们来看下px与dp的转换图 Android 单位...原创 2018-06-29 13:08:14 · 5342 阅读 · 5 评论 -
Android应届生在杭州的求职经历
背景2018年毕业于一个普通的二本院校,向大厂扔过几次简历,就跟打水漂一样,最终沉底,从上海离职到杭州,对于一个应届生来说是一次艰难的选择,更稳妥的方式应该是在实习结束后,留在原公司再呆一年。话虽是这么说,但还是得视情况而定,我总是告诫自己,当周围学不到任何东西的时候,我们就该考虑离开这样的舒适区。来杭州了一个礼拜,收到了4个offer,其中让我印象深刻的,就是技术主管对于应届生这个身份,...原创 2018-07-30 17:41:08 · 1427 阅读 · 2 评论 -
点赞处理的一些小技巧
今天来讲一些平时用的小技巧,然后由此引申一些其他的小技巧。点赞是我们平时业务开发最常接触的,但如何更投巧的去做这块,还需要细细的开动小脑筋,下面会有一些和平时开发的对比,慢慢品味吧连续点赞网络请求处理在我们处理点赞业务中,主要处理“赞”图片的翻转和结果的网络请求,按照我们常规操作的话,每一次点击,都会把结果告知服务器,操作伪代码如下: boolean zanFlag ...原创 2018-09-13 19:57:08 · 1867 阅读 · 3 评论 -
关于RxJava使用的一些思考
最近在工作中,频繁的使用了Rxjava来解决一些问题,在使用过程中也给予了自己一些思考,如何使用好RxJava,在什么样的场景中才能发挥它更好的作用,如何脱离代码来理解RxJava的工作机制,下面是自己一些浅显的思考。示例太多示例喜欢链式的把RxJava的流程表述起来,这个地方我把观察者和订阅者拆开来看。Observable<String> observable = Observ...原创 2018-11-30 09:23:31 · 1886 阅读 · 0 评论 -
实战Android Wifi P2p
在我们的应用设计中,有这么一个需求,将一台已连接无人机的Android手机(主机)的图传发送给另一台手机(从机),并且从机也可以控制主机的一些操作,以此达到无人机协作的目的。发送数据我们可以通过socket来实现,但前提是从机或是主机如何知道对方的IP和端口呢?Wifi P2PAndroid有一种连接方式叫 Wi-Fi点对点(P2P),他不需要组织局域网环境,在手机两端打开wifi就可以搜索到...原创 2018-12-12 16:03:56 · 3299 阅读 · 1 评论 -
一款简单的消息防抖框架
WQthrottle 是一款消息防抖框架,在一定的时间延时中做到只触发一次结果的回调。使用使用的话,还是看 github 的 README 吧。开发目的开发这款框架的初衷是为了解决以下的几个痛点:多余的操作请求多页面消息传递痛点一(多余的操作请求)这个痛点在我们的业务中经常出现,下面列出两个比较常见的业务操作:点赞在我们设计点赞的时候,每点击一次 赞 操作都会请求服...原创 2019-02-28 13:21:32 · 185 阅读 · 0 评论 -
一个 Handler 面试题引发的血案!!!
一位热心群友在面试时抛了一个问题:说下 handler 机制,Looper 通过 MessageQueue 取消息,消息队列是先进先出模式,那我延迟发两个消息,第一个消息延迟2个小时,第二个消息延迟1个小时,那么第二个消息需要等3个小时才能取到吗?鉴于这个血案,我们来翻翻案,一探究竟。已知Main Handler 在 ActivityThread 的时候就 Looper.loop...原创 2019-03-08 18:27:10 · 566 阅读 · 0 评论 -
WebView与JS的那些事: 注入JS去除悬浮广告
刚做好前几个功能,老板又来业务了,说,我们的应用是推荐一些别人的文章,可是,你看简书和掘金,我们用他们的链接的时候,总是有下载应用的悬浮框,看起来特别的别扭,不喜欢,让我给他解决一下,我看了一下我之前写的,确实有这样 的东西存在,如图:这种东西确实有点恶心的,我用debug查看了一下这个控件的属性是一个以class为top的a标签,这个时候好办了,我们只要通过js去遍历所有的a标签,然后通过getA原创 2017-04-22 15:40:53 · 6504 阅读 · 1 评论 -
WebView与JS的那些事: 注入JS提取url链接
上篇博文中,我们已经知道了如何通过js去控制webview中一些页面的变化和操作,今天,我们来玩一个更好玩的,或许有玩过掘金客户端的都知道,我们在点击页面的时候,掘金客户端并不是直接在webview页面进行加载,而是通过打开另一个Activity进行呈现,忽然发现这种方式真的挺不错的,玩过webview的都知道,我们在做一个页面的前进和后退时,我们会因为goBack返回页面的时候,页面会进行重新加载原创 2017-04-22 14:35:04 · 6077 阅读 · 1 评论 -
深入理解自定义Annotation,实现ButterKnif小原理
不知道怎么搞的,我发表博客就是不给我发表,一直说服务器错误,郁闷死了,但是也抵挡不了我写博客的心思,我后来一想,就用markdown生成html页面,然后上传到我github上面去,然后就可以访问页面了,我真是机智啊 附上链接秋田犬原创 2016-10-13 09:27:06 · 550 阅读 · 0 评论 -
android listview点赞问题
《最近做一个小功能遇到这么一个问题,listview 与 baseadapter结合使用,关于点赞的的时候 图片重复问题,比如:我在第1个item 点赞然后 心型换成了红色,但是以后每隔几个item就会出现一个红色的心,响应事件是对的,不知道哪出的问题,请大神解答”》 上面是一小哥在论坛中发的帖子遇到的问题,跟我遇到的问题一样,下面有很多热心的评论哥们给出了思路,我一想,原来这么简单啊。先给出实现原创 2016-03-04 14:57:38 · 5237 阅读 · 15 评论 -
Android进阶之NDK开发入门
最近一直在练车,晒的是好黑好黑啊,好久没写博客了,趁着中午有时间,赶紧写一篇,写完就得骑着我的宝马电瓶车去驾校学车,累死哦。为了满足as和ec的用户,我两种IDE都讲,好久没水了,装装X。首先,得做好开发准备,下载好NDK包,as用户呢,可以在setting–>Android SDK里面找到,如下图:可以看看自己的NDK是否安装了,如果没安装就勾选,并点击Apply就会自动下载了,下载的安装包会在s原创 2016-08-14 12:46:06 · 2282 阅读 · 0 评论 -
RecyclerView.Adapter的优化与封装
说实在的,敲代码和看书相比较,我还是看书或是看博文看得多,到现在好久都没练练手了,然后在简书上面看了别人对adapter的封装和优化,嘿,还真的挺不错的,adapter真的简洁了不少,看完了思路,原来这么简单的啊,他的方法可能和我不同,但是思路都是差不多的,但是我觉得我的更通俗易懂(真是不要脸啊=_=!!)。好了,开始表演真正的技术了。 项目结构图主要是对BaseRecycleAdapter和原创 2016-07-16 17:42:14 · 5399 阅读 · 6 评论 -
TextView使用Spannable设置复合文本
端午过后又一天,还是没事干,再写一篇博客,过后就要期末考试了,可能最近就不出博文了,等暑假再重出江湖吧。今天来弄弄这个TextView的效果,应用场景还是很广泛的,一个TextView文本拥有各种各样的样式,以前给文本插入图片都是那种drawableLeft啥的right的,图片大小还不好控制,排版又不好看,一次只能插入一张图片,根本满足不了需求,比如一些数学公式的上标和下标,纯文本来打肯定是打不起原创 2016-06-10 15:35:14 · 5282 阅读 · 1 评论 -
实现淘宝和QQ ToolBar透明渐变效果
哎,好久都没写博客了,最近有点懒惰了,今天端午节,在学校也是无聊的蛋疼啊,正好今天玩玩一些在其他app中常见的一些功能。来看看效果图吧!这个是人家的图,我懒得自己弄一个,就copy他的了,顺便帮你宣传一下你的简书,不算为过吧^-^. sou,传送门 之前是在简书上面看了一篇实现的这种功能,他是重写CoordinatorLayout的Behavior类来达到效果,也确实理解到了Coordinator原创 2016-06-09 20:33:04 · 4954 阅读 · 4 评论 -
打造万能的EmptyView
在加载网络数据的时候,我们要给用户一个友好的加载数据的界面,提示正在加载、加载失败和加载成功的功能,其实原理很简单,只是在显示View的上面盖了一层自定义的View,覆盖View的话当然是用RelativeLayout啦,其实思想是在AndroidChina里面看见的,打造不一样的EmptyView,现在再次记录一下,做个笔记。效果图 还是直接看主代码吧EmptyViewLayout.javai翻译 2016-03-15 16:38:01 · 980 阅读 · 0 评论 -
Activity过渡动画
看了下5.0的过渡动画,效果确实蛮炫的,可惜我是4.4.2的,哎,享受不了啊,没钱买手机,穷啊 后来在格瓦拉app里面发现了这种过渡动画,4.4.2的也支持,那时候感觉,这么牛×啊(其实以下的都能支持),但是一直没见着好的源码看看,直到我看到了别人仿的一个知乎日报app,里面发现有这个功能,我就把他提取了出来,加上了自己所理解的一些注释,如有其它见解的,可以留言哦废话不多说,老规矩,先上效果图原创 2016-03-11 13:23:14 · 1552 阅读 · 1 评论 -
android仿qq空间、微信朋友圈图片展示
废话不多说,先上效果图 因为最近需要做朋友圈功能,所以在此记录一下,其实很多人不明白的一点应该是在图片的排列上面吧,不规则的排列,其实很简单的,就是一个GridView,然而你xml光光写GridView是不行的哦,你们会发现,图片只显示一行,而且这个gridView还可以滑动,是吧,其实我们得重写GridView的onMeasure方法,使其扩大至内容的最大状态。项目类图 内容不多,接下来原创 2016-03-06 15:55:00 · 4035 阅读 · 2 评论 -
ButterKnife.bind(this)发生NullPointerException
最近做项目,想用黄油刀,刚开始看了写官方的文档,好简单啊,直接把库compile进来,上去就是@BindView(R.id.tx) TextView tv,当我在setContentView里面去set这个TextView的值的时候报空指针异常了,我怎么想怎么不对,然后用@onClick去给TextView设置监听也不管用,感觉这个框架没什么用处啊,也是害苦了,还是去官网再好好看看,终于看到自己的坑原创 2016-09-29 15:11:22 · 4204 阅读 · 0 评论 -
WebView与JS的那些事:注入JS提取页面图片
上一篇博文中,我们大概了解了js与webview的一些交互,然而,在我们实际的应用中,更倾向于在android端对网页做一些处理,今天带给大家的是往页面注入JS脚本,提取页面上的图片,然后通过另一个Activity显示图片。首先来看看效果,提提神。首先我们来分析分析这么做的一些处步骤: 1、查找网页所有的图片控件 2、给所有的图片控件添加一个onClick点击事件 3、点击图片的onClick原创 2017-04-21 15:05:36 · 2230 阅读 · 0 评论 -
WebView与JS的那些事:入门篇
webview应该是开发人员最常接触的控件了,加载一个页面的时候,webview.loadUrl(url)就完事了,我遇到这么玩webview的一般都是在界面显示一些应用说明或是版本信息的时候比较常见,但是,这样根本发挥不了webview的潜能,接下来,我会出几篇比较好玩的文章,带大家爽一爽,今天这一篇或许对有些基础的人并不感冒,但可以看看后面的文章,会给你们带来惊喜的。初探我会跟着官网的API来分原创 2017-04-21 13:24:30 · 1133 阅读 · 0 评论 -
支付宝支付之从前台打通到后台(二)
上一篇我们说到客户端在支付的时候,首先得拿着自己的支付信息去后台拿支付签名,然后通过客户端的PayTask来完成支付,虽然这些步骤看起来都挺简单的,然而,这都只是对客户端而言,对于服务端来说,要做很多很多。今天我们可能都是在讲服务端是怎么操作的,因为客户端就是上一篇说的那些了,你只要获取签名和支付,其他的什么都不要你干,所以,客户端开发的就不要骂后端的接口是怎么回事了,混口饭的都不容易。从支付宝文档原创 2017-04-15 21:44:55 · 3477 阅读 · 0 评论 -
支付宝支付之从前台打通到后台
最近接手了一个做支付的外包项目,前台和后台都要做,所以打算就此几个笔记。申请在接通支付之前,我们还要做一些事情创建应用签约这个签约部分需要实名认证的。我下面是签约完成的,添加你需要的功能,然后签约认证等待 生成公钥和私钥生成公私钥的工具下载地址按照我的箭头步骤来,官网说最好用2048的,然后点击”生成密钥“,这个时候你生成的密钥都会保存在RSA密钥文件夹下面,如果你下次要用的话,就打开文件夹里面找原创 2017-04-07 20:55:27 · 8885 阅读 · 2 评论 -
沉浸式状态栏,其实真的没什么
很多人在做侧滑布局的时候,会遇到主界面与侧滑菜单的状态栏共用了一个,看起来特别的丑,比如: 这图片是在鸿洋那里搞来的。。。。。侧滑的时候布局的状态栏是什么鬼,能不能像qq那样,我不要那么丑的还顶在上面我要这个样子的 这个是在4.4.2上面的效果,5.0以上状态栏会有一层黑透明的效果,但是似乎没上面的那种古怪影响。比如这样: 好了,介绍结束了,我来说说如何实现qq这种的状态栏的效原创 2016-11-02 13:30:56 · 1160 阅读 · 0 评论 -
装X式的阅读代码,无需开启Android Studio来运行项目
这篇博文主要是给自己做个笔记,木有啥技术可言,也是方便自己在阅读代码的时候省去繁重的AS带来卡卡的感觉。这篇博文是stormzhang大神那参考来的,很久就久仰大名了,今天没事逛了下他的博客,写的很全面,还有一些代码之外的问题探讨,让自己开阔了不少眼界,继续follow学习现在,我们手上什么都没有,接下来,我们来一步一步的实现随便找一个github上面的源码下载下来用git clone 把源码下载下原创 2016-11-29 16:49:10 · 623 阅读 · 0 评论 -
RecycleView配合SwipeRefreshLayout实现轻量级上拉刷新下拉加载,外加牛X的Adapter
看过我这边文章的RecyclerView.Adapter的优化与封装的真的想说声抱歉,其实不需要继承BaseBean,只需要继承Object就可以了,而且更灵活了,当时不知道咋了,脑袋抽风了,多次了这一举。好了,今天来一个更牛逼的神器RefreshLayout效果图:实现了上拉刷新和下拉加载功能封装好的BaseAdapter和BaseViewHolder,将adapter交给Activity来管原创 2016-11-10 12:12:06 · 1430 阅读 · 1 评论 -
Android Studio 运行项目发生instant Run requires启动不了程序
有时候运行程序会发生instant Run requires ‘Tools | Android | Enable ADB integration’ to be enabled. 是因为设置了ADB没被勾选上 看图,选上就行了原创 2016-10-30 16:45:32 · 854 阅读 · 0 评论 -
用户头像base64编码上传与保存头像问题
今天这篇博文主要讲思想,可能别人还有更好的学习思路,如果觉得还有更好的想法的可以留言博主哦^-^咱们先一步一步的来,首先,我们要获取本地的图片,无论你们是采用拍照、相册或是drawable资源返回的Bitmap,我们先拿到这个图片,一般我们上传都需要给图片进行压缩(质量压缩和比例压缩),今天就不谈文件压缩的事情了,我们先切中重点,下面是我获取到资源文件的bitmap获取bitmap图片Bitma原创 2016-03-06 13:12:30 · 4522 阅读 · 0 评论