Android笔记
文章平均质量分 64
对日常安卓项目开发中的特殊知识点,开发技巧等总结提炼
白玉梁
一个Java、Android、Swift、Vue、React、Flutter、Python、Harmony都会点儿的全栈攻城狮……
展开
-
一文理清H5调起App那些事
以安卓为例,实现h5调起app步骤:在安卓AndroidManifest.xml中,启动Activity下添加属性:<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="a原创 2021-09-30 11:55:40 · 741 阅读 · 1 评论 -
安卓批量上传
支持功能:多任务批量上传;上传状态储存(结合数据库);进度监听(需具体网络上传框架支持,如okhttp,oss等);上传取消;上传错误(或强杀)后点击重新上传;可根据实际业务需求改造…GitHub:https://github.com/baiyuliang/MultiUpload效果如图:代码结构:数据库:GitHub:https://github.com/baiyuliang/MultiUpload...原创 2021-09-11 09:54:12 · 736 阅读 · 1 评论 -
拼团列表item自动滚动+倒计时实现
标题可能不太直观,想了半天也没想到好的,那么我就先贴一张具体应用场景的效果图:就是这一块:相信大家在做商城类应用时,经常会有相似需求!本项目实现的效果如下图:最开始通过RecyclerView实现,也可以,但是在进行嵌套特别是ScrollView等滑动控件时,就会出现触摸bug,即便你将recyclerview禁止滑动也不行,虽说这个bug不算太影响体验,但是对于追求完美的我,不能忍,就再寻找了另一种实现方式:动态add/removeView+属性动画!原理其实很简单:首先,分析效果图,u原创 2021-01-28 14:41:17 · 3892 阅读 · 3 评论 -
RxJava的并发实现
我们在开发App过程中,常常遇见这种需求,例如首页,仅一个界面就要请求3个甚至更多的接口,更变态的是这些接口必须按顺序请求,来以此展示返回结果,那么这样我们就无法用普通的并发去同时请求接口了,因为我们无法预知各个接口的请求完成时间,普通的也是最简单的办法就是依次请求接口了,A接口请求完成->B接口请求完成->C接口...简单粗暴有木有?那么有没有更优雅的办法去解决这种需求呢?那必须有:**RxJava**!原创 2020-06-28 15:30:43 · 1322 阅读 · 0 评论 -
MVVM+Retrofit+Kotlin网络框架封装
上篇文章讲了MVVM入门,网络请求部分非常简单和原始,本篇则是上一篇的进阶,主要讲解如何在vm中使用协程结合Retrofit进行网络框架的封装。Retrofit自不必说,非常优秀的网络请求框架,说到Retrofit就不得不提RxJava,RxJava是什么?官方定义:一个在jvm上使用可观测的序列来组成异步的,基于事件的程序的库,它具有良好的链式编程风格,以及强大的异步处理能力,在近几年的移...原创 2020-04-25 15:43:41 · 3511 阅读 · 7 评论 -
MVVM+ViewBinding+Kotlin入门
本篇博客不作原理性分析,仅对还没有接触过MVVM,viewbinding,甚至说是kotlin的同学一个入门练习项目,通过此篇博客,可以对MVVM架构,以及最近比较火的ViewBinding有一个初步认识。先说Kotlin,Kotlin1.0还没正式发布的时候就已经开始研究了,但到现在也没有真正的去用kotlin写过项目,原因很简单,公司平时做项目基本都用的java,而且当时很多第三方库也都是用...原创 2020-04-24 17:46:48 · 3970 阅读 · 2 评论 -
Afinal加载网络图片及下载文件使用方法
Afinal快速开发框架使用起来非常方便,下面将讲解如何利用Afinal加载网络图片及下载文件:先看效果图:注意:使用Afinal前需添加Afinal的jar,可以在这里下载:http://download.csdn.net/detail/baiyuliang2013/7313587其中包括了Afinal的源码和jar,使用时只需添加jar包即可,在学习阶段也可以直接添加源码到原创 2014-05-08 01:21:11 · 5987 阅读 · 0 评论 -
Afianl加载网络图片(续)
上一篇已经讲了如何利用Afianl加载网络图片和下载文件,这篇文章将继续讲解使用Afinal加载网络图片的使用,主要结合listview的使用:看效果图: listview在滑动过程中没用明显卡顿,很流畅,这点优化的很不错,Afianl使用前当然是要先添加jar包啦,接下来看代码:activity_main.xml:<RelativeLayout xmlns:an原创 2014-05-08 01:49:16 · 2123 阅读 · 0 评论 -
安卓自定义日历控件
尊重作者劳动成果,转载请注明出处: 最近,因工作需要,需要实现自定义日历控件功能,主要应用于软件中的酒店入住时间选择功能,进入日历后,可选择入住时间,及离开时间,选择完成后,再次进入日历时,会显示上次选中的结果,默认选择日期是在距当前日期三个月内,三个月以外的均以灰色显示,且不可点击。本篇实现的效果是高仿某软件的界面效果:某软件界面效果:本篇实现的效果:原创 2014-07-13 07:59:05 · 3122 阅读 · 5 评论 -
多图选择(仿微信,陌陌)
整理了下网上的资源,并做了大量修改,美化,完成以下效果,仿微信陌陌多图选择,最多可以选择6张图片,选择完成后,用GridView展示,点击图片可以删除,其实,以此为基础还可以做出更多更炫的效果,不过本代码仅供参考,若有需要,自己可以进行扩展,接下来看效果图:源码下载地址:http://download.csdn.net/detail/baiyuliang2013/7749241原创 2014-08-13 15:20:43 · 3021 阅读 · 1 评论 -
安卓Toast自定义及防止重复显示
Toast是安卓系统中,对用户误操作时或某功能执行完毕时,对用户的一种提示,他没有焦点,并在一定时间内会消失,但用户连续误操作(如登录时,密码错误)多次时,怎会有多个Toast被创建,系统会把这些toast放进队列中,等待上个Toast 显示完毕,接着显示下一个,那么用户则会看到多次Toast提示,无论你退出软件与否,这样给用户的体验则大打折扣,所以我们需要做的是,若Toast在显示着(也就是To原创 2014-08-18 09:21:19 · 2863 阅读 · 3 评论 -
Android自定义处理崩溃异常
用过安卓手机的用户以及安卓开发者们会时长碰到程序异常退出的情况,普通用户遇到这种情况,肯定非常恼火,甚至会骂一生垃圾软件,然后卸载掉。那么开发者们在开发过程中遇到这种情况给怎么办呢,当然,你不可能世界上的每个安卓手机你都要试试你的程序有没有异常,这是无法办到的事情,所以最好的办法就是,当普通用户遇到这种情况时,让应用自动把错误信息发送到你的服务器,然后你去分析异常原因,这是不是一件很有意义的事情啊原创 2014-08-19 15:23:27 · 3192 阅读 · 3 评论 -
安卓代码混淆与反射冲突,地图无法显示等问题解决及反编译方法
此前的代码混淆,因为并没有用到反射,所以常规的代码混淆方式一遍就能通过,而此项目中某些类利用到了反射机制(本人的这个项目中有即时通讯功能,所以有表情类资源,因此需要通过反射由文件名找到表情资源id),当由文件名去寻找资源id时就报空指针异常了,期初我并不知道什么原因,通过反编译已经混淆的apk,一步一步寻找到出错的地方,才恍然大悟,正是反射那一步出现了问题:Field field = R.draw原创 2014-08-22 11:45:32 · 3520 阅读 · 4 评论 -
安卓实现发送实时地图
在多数即时聊天通讯中,会有发送位置的功能,在发送位置时,大家有注意的话,聊天界面的item里显示的是实时地图,如下图: 这个是如何实现的呢? 其实,这个很简单了,各大地图提供商都会有一个静态地图的API,大家只要调用这个API传入相关参数,就相当于从网络获取一张图片显示,显示一张网络图片,这个对大家来说容易吧? 上图中使用的是高德地图,我满现在拿百度地图来说,百度原创 2014-09-03 13:40:36 · 2215 阅读 · 1 评论 -
实现新浪微博@@@
首先看下新浪微博客户端界面如图: 每转发一次都会增加一个@xxx,而点击@xxx则进入该用户详细资料界面,点击其他地方则进入的是微博正文,这个怎么实现呢,只用TextView行吗?答案肯定是不行的! 先分析下它这个过程是怎么实现的,个人觉得,当发布一条微博后,这条微博记录所对应的服务端的表中,会有用户个人信息,以及转发时的评论内容即这一部分(这一部分内容其实可以是一个字原创 2014-09-19 13:08:44 · 1937 阅读 · 2 评论 -
GridView如何适配不同屏幕
GridView和ListView一样,都是项目中常用的控件之一,那么本篇文章要讲的是GridView如何适应不同大小的屏幕,首先,我们来看一张效果图,如下:每行为四个item,上下左右间距大概2dp,而且会根据不同的屏幕大小,每个item中的图片随之缩放或放大以适应屏幕(始终保持正方形的样子),我们大多数在使用GridView的时候可能会把columnWidth设置了一个定值如70d原创 2014-10-17 10:32:22 · 4907 阅读 · 3 评论 -
关于安卓应用(APK文件)的二次打包
很多开发者,不管是个人或是公司都不太注重自己开发的应用的安全性,即是否会被不法分子篡改代码,插入恶意代码,发一些垃圾广告,甚至盗用用户信息。包括我在内,也并不太在意,直到前几天在市场上发布的一款应用被盗版并上传到了某些应用市场才发现问题的严重性!期初我并不知道该市场上的应用是盗版的,还在沾沾自喜呢,并且下载了一个装在了手机里,后来发现手机通知栏莫名其妙的出现许多垃圾广告,还有一些应用我并没有安装,原创 2014-10-24 15:42:45 · 5675 阅读 · 2 评论 -
安卓如何快速更新SDK
打开SDK Manager,点击tools->options打开,如图:Proxy Setting如下设置:HTTP Proxy server:mirrors.neusoft.edu.cnHTTP Proxy Por:80并勾选:Force https://...sources to...,然后Close。此后,再去检查更新及安装SDK版本即可。原创 2015-01-05 11:00:33 · 1874 阅读 · 1 评论 -
ListView嵌套GridView
首先,我们通过两个实例来了解下本篇文章所讲的重点,看下图:微博:陌陌:大家应该对这两款软件并不陌生,接下来,我将列举下本文将要实现的几个点:1.ListView嵌套GridView,互不冲突,界面显示及操作正常;2.GridView中的图片依据屏幕大小,自动扩大或缩小以适应屏幕,并始终保持正方形;3.图片数量不同时,布局不同(如上图的4张图片和6张图片);原创 2015-01-12 20:28:02 · 7602 阅读 · 6 评论 -
Mac版Android Studio的安装和使用
Android Studio已经出来很长时间了,据说谷歌会逐步放弃对Eclipse的支持,而把心思完全放在Android Studio上,鉴于Eclipse的各种不稳定,或许这将成一种趋势,因此,没事的时候可以去学学新技术,当大家都在使用AS的时候,你还在死磕Eclipse岂不是很落伍? 关于AS的安装和使用方法,网上教程也比较多,这篇文章也是对遇到的一些问题的总结,以帮助还未使用过原创 2015-02-26 21:15:43 · 3144 阅读 · 3 评论 -
Emojicon表情之快速应用于Android项目
最近在项目中遇到了一个问题,找了半天原因,最后发现是用户在昵称中输入了emojicon表情,导致服务器不识别出现错误,而项目中也未对emojicon表情作支持,因此不得不考虑对emojicon表情做下处理,在网上也是查了好多资料,最后做了一个归纳总结,可以让项目快速支持emojicon表情的显示,并可判断用户输入的内容中是否含有emojicon表情以及过滤掉emojicon! 先上图:原创 2015-02-28 11:18:36 · 5185 阅读 · 15 评论 -
NDK在windows下的开发环境搭建及开发过程
在Android应用的开发工程中,不管是游戏还是普通应用,都时常会用到.so即动态链接库,关于.so是什么玩意儿,有什么好处,这个大家可以在网上查一下,本人不做过多解释。.so本是linux下的文件类型,所以编译.so必须要在linux环境下,那么如何在win下进行编译呢?随便在网上搜下,教程也是五花八门,不清不楚,没有一定功底,即便看着教程到最后估计还是功败垂成,更别说初学者,看了保证头晕眼花,原创 2015-03-16 16:57:02 · 2302 阅读 · 1 评论 -
自定义AlertDialog(仿微信)
安卓自定义AlertDialog,原理很简单:AlertDialog dialog = new AlertDialog.Builder(MainActivity.this).create(); dialog.show(); Window window = dialog.getWindow(); window.setContentView(R.layout.aler原创 2015-04-24 10:55:47 · 2555 阅读 · 0 评论 -
ExpandableListView仿QQ好友列表
本例中,对ExpandableListView中的数据进行了封装,分为两个JavaBean,一个为Group类表示组信息,一个Child类表示该组下子列表信息:Group:public class Group { private String groupName;//分组名 private List childList;//该分组写子列表 public String getGro原创 2015-04-28 12:48:39 · 2674 阅读 · 1 评论 -
高仿微信多图选择
本文中的例子是由github上面的一个例子修改而来:https://github.com/lovetuzitong/MultiImageSelector,由于github上面的项目由AS编写,所以无法移植到Eclipse上去,本人也是花费了不少功夫,移植到了Eclipse上,并对其中的功能进行修改扩展,和微信图片选择相似度达80%以上,修改后的效果图如下:支持预原创 2015-04-29 17:24:03 · 3011 阅读 · 3 评论 -
安卓快速集成支付功能
做过支付功能的安卓开发者都知道,在接入支付宝时,步骤相当繁琐,而且需有商家账号方可测试,对于个人开发者来说,很难做到,而本篇博客中介绍的一第三方支付SDK,其中集成了支付宝和微信支付功能,而且使用起来相当方便,是个人开发者的福音(有点打广告的嫌疑,不过本人是站在纯技术角度考虑问题的),官方开发文档:http://docs.bmob.cn/androidpay/index.html?menuke原创 2015-04-30 16:12:20 · 1792 阅读 · 5 评论 -
安卓如何实现动态广告栏
可以说广告栏是应用中必不可少的部分,有不少应用的广告栏中的图片以及点击图片后的逻辑是固定的,等待下一次升级后才会变化,这种模式不但对用户还是对应用经营者来说体验都是比较差的,当然还有大部分应用的广告栏是动态的,所谓动态,有以下几点概念:1.图片(地址)是有服务端返回;2.图片个数根据服务端返回的url个数决定;3.点击图片逻辑由服务端返回;4.支持自动切换;动态广告栏需满足1.原创 2015-05-15 10:27:47 · 2529 阅读 · 1 评论 -
Eclipse中如何快速查看jar包中 的class源码
我们查看jar源码时,一般是安装个jd-gui,把jar拷出来,然后从jd-gui中打开jar再查看源码,这个过程不免有些麻烦,当然,本篇所讲的快速查看的方法也没什么高科技手段,只是将jd-gui集成在Eclipse中,然后就可以在Eclipse中直接打开class了,这样会不但操作方便也会节省不少时间,具体步骤:下载插件:jd-eclipse-site-1.0.0-RC2.zip打开Ec原创 2015-06-08 10:26:20 · 19848 阅读 · 18 评论 -
Activity简单几步支持向右滑动返回
向右滑动返回,对于屏幕过大的手机来说,在单手操作时,是一个不错的用户体验,用户不必再费力的或者用另一个手去点击屏幕左上角的返回按钮或者,手机右下角的返回按钮,轻轻向右滑动屏幕即可返回上一页,这个功能如今大部分APP都已经支持啦,你的APP支持了吗? 自己在网上百度了一些滑动返回的方法,有的是用的第三方控件如swipebackLayout但弊端过大如与自己自定义的一些控件冲突等,有的是通原创 2015-06-08 17:39:25 · 2509 阅读 · 5 评论 -
安卓一键分享到qq,微信,微博,官方SDK非第三方
当我们项目中需要集成分享功能时,我们通常会采取一下几个办法:1.调用系统自带分享 优点:简单快速,几行代码搞定,不需添加任何额外包; 缺点:系统会调出手机内部所有带分享功能的APP,且界面风格跟随系统,不可定制,若应用未安装则不可分享; 适用于对分享没有要求的APP,只要有分享功能即可。 2.使用第三方社会化组件分享 优点:集成相对简单,且有文档demo等参考,以及众多可选择的分享平台,甚原创 2015-12-17 17:49:24 · 3875 阅读 · 1 评论 -
ProgressBar的indeterminateDrawable属性在安卓6.0上的问题
通过indeterminateDrawable属性去自定义ProgressBar方法: <ProgressBar android:id="@+id/pb" android:layout_width="30dp" android:layout_height="30dp" android:layout_centerVertical="原创 2016-02-29 17:34:10 · 8013 阅读 · 2 评论 -
.so的封装调用
.so的创建和调用有一个特点,我们要知道.so的调用并不一定必须在Activity中进行,那么制作时也并不一定要在Activity中,但是,一旦.so制作成功,那么再调用时,调用的java类就必须跟制作.so时的java类(包括路径和类名)必须一致! 举个例子:拿上篇文章来说,我在创建.so时是在MainActivity中调用的,路径名是com.byl.jnitest,那么最终生成的.so想原创 2016-04-05 15:26:23 · 3519 阅读 · 4 评论 -
AndroidStudio如何快速制作.so
之前写过一篇Eclipse制作.so的文章,http://blog.csdn.net/baiyuliang2013/article/details/44306921使用的是GNUstep模拟Linux环境,过程现在看来是想相当麻烦,后来发现一个简单的方法就是通过项目右键添加Native Supprot...可以快速创建.so而不使用命令行,由于AS越来越被大家使用,所以Ec原创 2016-04-05 13:19:40 · 5227 阅读 · 3 评论