Android之旅
文章平均质量分 94
记录 Android 开发之旅中的点点滴滴!欢迎围观公众号「code小生」一起进阶安卓!
code小生
这个作者很懒,什么都没留下…
展开
-
ARouter 拦截器之多 module 独立运行
本文已首发微信公众号「code小生」,大家可以搜索关注,专注安卓技术分享。本文目录本文说明module 独立运行第一步:配置 gradle.properties第二步:配置app下的`build.gradle`第三步:配置各独立模块下的`build.gradle`第四步:看效果单模块独立运行小结路由拦截器使用总结本文说明上篇文章 已分享了路由配置、跳转、原理、完整的效果演示gif以及源码,而且是多 module 项目演示的,算是路由 ARouter 的入门,还没配置使用的可以先去看看。本文的内容.原创 2021-10-11 09:02:59 · 228 阅读 · 0 评论 -
ARouter 在多 module 项目中实战
本文已首发微信公众号「code小生」,大家可以搜索关注,专注移动端技术分享。目录必要说明路由应用场景工程 Module 配置新建工程添加依赖关系工程 ARouter 配置第一步:`baseLib`模块配置第二步:其他模块配置测试 ARouter 跳转模块内使用路由跳转模块间相互跳转跳转原理本文总结必要说明本文仅作案例演示,方便学习和掌握基础知识,不进行源码级别的探究。下面先明确一下能实现的功能和用到的技术点以及环境。技术点:多module工程,有baseLib和主APP以及多业务module.原创 2021-10-08 09:44:34 · 577 阅读 · 0 评论 -
个推推送SDK集成之Device Token
本文已首发微信公众号「code小生」,大家可以搜索关注,专注安卓技术分享。由来前段时间给APP增加推送功能,经调研后接收到的结果是集成个推SDK,这从市场使用概率来看很不错,毕竟个推、腾讯TPNS(原名信鸽)、极光、友盟等都是比较流行的厂家服务,但对于开发者来讲,更重要的是官方文档是否易于阅读?官方客服沟通起来是否便捷? ,一份优秀的文档说明可以节约很大的成本,相信各位开发者深有感触吧。问题产生个推Android集成官方文档:https://docs.getui.com/getui/mobile.原创 2021-09-16 11:13:22 · 1819 阅读 · 0 评论 -
2020文章合集 技术干货!
老读者应该很清楚了,每年年底小生都会对公众号的文章进行分类汇总,类似一本书的目录,这样大家阅读起来就很方便,比如:Jetpack、Flutter等内容。下面就是2020年年度文章分类,大家可以收藏这篇文章,就相当于找到了code小生公众号一年内的文章,想学习某个内容,可直接在这篇文章中进行搜索,方便快捷。目录往期汇总Android经验相关Android技术Android动态IDE相关其他技术其他总结往期汇总时间过得真快,想当初自己闲着没事,随便注册了这个公众号,没想到一转眼.原创 2021-05-25 10:49:56 · 262 阅读 · 0 评论 -
2019 年终总结,240+篇,已分类整理
code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群以下内容按照技术模块来划分,每个大的分类下文章顺序是按照难易程序来的,这样学习起来方便些。2017 | 我在 5 个月时间里分享了 98 篇文章2017 下半年总结2018 文章合集日常开发技术仿网易考拉 个人中心 tableView弹簧动画Android 仿网易云鲸云音效动效Android-图片...原创 2020-04-02 21:08:26 · 3214 阅读 · 1 评论 -
2018 Android 文章合集 200+ 篇
目录2017 文章合集面经项目、开源库功能 DemoKotlinGradle三化(组件化、插件化、模块化)以及热修复自定义Android 架构/开发框架源码解析瘦身、打包技术教程其他技术2017 文章合集2017 年度文章分类整理下面是 2018 年公众号所发表的文章分类整理面经一年经验 Android 面试记录记自己 2018 年三月份的面试经历怎样在 Android 面试中聊聊...原创 2019-01-27 21:17:00 · 1077 阅读 · 0 评论 -
Android 拍照及相册选取图片功能,已适配Android6.0、7.0、8.0
更换头像或者上传图片功能已基本是每个 APP 所具备的基础功能了,但这对于开发者来说是一个很麻烦的事情,除机型之外,适配版本就至少要考虑这几种情况(6.0以下版本、6.0的动态权限、7.0的FileProvider、8.0的特殊情况)。 今天来个总结,方便自己也方便同行。功能说明本文的示例以下图为准: 界面只有一个 ImageView,点击 ImageView 弹出...原创 2018-07-05 01:04:30 · 47965 阅读 · 17 评论 -
解决Android4.4.4报错:requires com.huawei.android.launcher.permission.WRITE_SETTINGS:
引言项目之前对于机型测试过一次,但是没有对 Android 4.X 版本进行测试,这周有同事在用这款手机,出现的问题是:点击桌面图标提示“XXX已停止运行”。问题排查通过下面的 Log 信息reading com.huawei.android.launcher.LauncherProvider from pid=721,uid=10079 requires com.huawei...原创 2018-06-13 00:02:04 · 7292 阅读 · 0 评论 -
记一次 vivo x21 Android 8.1.1 调试Apk填坑
项目做版本适配项目在功能方面接近尾声的时候,轮到了适配工作,首先要解决 Android版本适配问题,也就是在不同安卓版本的机型上要跑起来无障碍。经过 20 多部手机测试,发现只有 vivo x21手机安装不了,但是同样还有一台 Android 8.1的手机安装运行却无问题。于是开始填坑…首先要解决的是权限安卓开发者应该都知道,安卓 8.0 开始限制了“允许安装未知来源软件”的开关,在此...原创 2018-06-11 23:22:39 · 11090 阅读 · 7 评论 -
Android 开发之 Kotlin 初始篇
转载请注明出处和作者前言2017 Google IO 大会宣布了两项主要新闻: 1. Google 正式宣布进入人工智能时代 2. Kotlin 成为 Android 官方编程语言Kotlin 简介Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。使原创 2017-05-21 12:37:06 · 3064 阅读 · 0 评论 -
Android 之 Notification 必须掌握的知识
创建并发送一个系统通知activity_main.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" andr原创 2017-04-09 01:18:06 · 2242 阅读 · 1 评论 -
开源数据库 LitePal 学习,强大好使的 CRUD
LitePal 简介LitePal 是一款开源的 Android 数据库框架,它采用了对象关系映射(ORM)的模式,将我们平时使用的一些数据库(比如 Sqlite)功能进行了封装。配置第一步和我们平时使用开源库一样,在项目的 build.gradle 文件下的 dependencies 闭包中添加依赖:compile 'org.litepal.android:core:1.4.1'第二步需要配置 l原创 2017-03-30 01:51:42 · 3488 阅读 · 1 评论 -
Android 广播介绍以及使用示例
Android中的广播主要可以分为两种类型:标准广播和有序广播。标准广播一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时间接收到这条广播,因此他们之间没有任何的先后顺序。特点:效率高;缺点:无法拦截。有序广播一种同步执行的广播,在广播发出之后,同一时刻只会有一个广播接收器能够接收到这条广播,当该广播接收器执行完OnReceive()方法逻辑后,广播才会继续传递。 特点:原创 2017-03-27 00:32:43 · 11538 阅读 · 0 评论 -
Android6.0动态权限,你的项目关注到了吗?
一、引言 Android 6.0 变更 运行时权限 此版本引入了一种新的权限模式,如今,用户可直接在运行时管理应用权限。这种模式让用户能够更好地了解和控制权限,同时为应用开发者精简了安装和自动更新过程。用户可为所安装的各个应用分别授予或撤销权限。 对于以 Android 6.0(API 级别 23)或更高版本为目标平台的应用,请务必在运行时检查和请求权限。要确定您的应用是否已被原创 2016-12-30 09:33:00 · 658 阅读 · 0 评论 -
带着“情怀”教你搭建Android开发环境
须知: 此安装教程是在win7旗舰版演示。流程主要分为两步: 第一:安装JDK 第二:安装Android Studio一、JDK 1,地址 注:地址也是下载AndroidStudio的地址,无需翻墙等。 2,打开网址,选择如下: 3,安装JDK: 4原创 2016-12-04 19:01:26 · 575 阅读 · 0 评论 -
别找了!AS的这个插件才是必须的
为Android开发人员整理的AndroidStudio插件。原创 2016-07-02 21:57:17 · 6456 阅读 · 4 评论 -
Android 通过自定义 scheme 协议来实现 Web 页面启动原生 APP
目录应用场景分析实现、效果演示优缺点说明总结应用场景分析当我们在浏览器中打开某些网页,有时候会发现它有一个功能是可以实现吊起手机中已安装的某个 APP,像我们在浏览器打开 csdn 的一篇博客,或者在浏览器打开知乎的一篇文章时,都会有一个类似去APP阅读的按钮。这篇文章就来实现这个功能。实现、效果演示第一步,新建工程除了默认的 MainActivity 之外,再创建一个 Activi...原创 2019-03-03 17:46:36 · 2022 阅读 · 0 评论 -
Android 全局异常捕获并发送邮件或者保存本地文件
目录目录解决什么问题全局捕获异常1. 系统提供的捕获异常接口2. 自定义异常处理接口,实现我们自己的处理逻辑3. 在 Application 中初始化4. 将异常信息发送服务器5. 将异常信息发送到指定邮箱效果总结解决什么问题在开发中经常遇到 APP 在某些场景下莫名的奔溃或者闪退等异常,为了提升用户体验,今天的文章就是捕获 APP 全...原创 2018-09-07 09:15:31 · 2235 阅读 · 0 评论 -
RGB 色值与十六进制色值互转
开发中时常遇到色值转换问题,记录下这几行代码,方便自己也方便看到此博客的你。RGB 转 十六进制色值RGB:分别对应红绿蓝三种色值,每个值的取值范围在 [0,255] 之间的整数。转换方法:String hex = String.format("#%02X%02X%02X", Integer.parseInt(r), In...原创 2018-07-02 12:35:16 · 4954 阅读 · 0 评论 -
教你在APP中嵌入翻译功能,不借助第三方软件
对于翻译软件大家都应该使用过,有没有想到将翻译功能直接嵌入到自己的APP中,比如聊天界面,翻译几句话的功能。正好项目由此需求,看了看有道对外提供的接口,原来很简单。一、效果图 说明:由于使用的是模拟器演示,没有设置输入中文,就只能看到翻译英文。需要说明的是,我没有设置搜索按钮,就通过设置键盘的回车键来搜索了。说明:这张是手机真机截图,为了看翻译中文的效果。二、需要在有道上面做的事情1,打开网址:有原创 2016-12-22 11:10:40 · 7049 阅读 · 0 评论 -
Android仿QQ侧滑(删除、置顶等)功能
实现类似QQ滑动出现可操作项的功能,在网上看到有人自定义LinearLayout实现这个效果,但是灵活性有限。此demo使用开源项目SwipeLayout实现该功能。关于SwipeLayout的常用设置和属性,这里都做介绍,下面进入正题。一、效果图二、代码片段主页布局和主页的Java代码都和平时使用没有区别,代码没必要贴出来了。这里使用的ListView演示,还可以是GridView,Expanda原创 2016-12-13 09:29:06 · 3132 阅读 · 2 评论 -
Android App之底部tab导航常用实现方案总结
前言: 开发中遇到的大多数APP底部都有tab, 但是其实现方式各有不同,各有各的优点,今天,小生就带大家总结总结,如有更好的,还望指教…先看看效果图说明: 这里效果图中的第一种方式和第二种以及第三种不一样,是因为第一种现在已经不怎么使用了,我就没有给其中间添加tab。再来看看项目的目录截图,因为代码比较稍多了点,截图的目的是为了贴出的分布代码看起来更清楚。说明:原创 2016-11-08 11:30:00 · 4680 阅读 · 0 评论 -
TabLayout两种添加tab方式,结合ViewPager+Fragment实现常见界面视图
今天一哥们问我是否使用过TabLayout,他的项目中用到了TabLayout,他之前没有使用过,对用法和一些属性不太熟悉……为此,总结一些它的基本用法和常用属性。先上效果图activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/ap原创 2016-11-07 11:25:30 · 3088 阅读 · 0 评论 -
Android开发中对话框辅助类——DialogHelper
写在前面: 对话框在平时的开发工作中使用率很频繁,但是很多开发者每次使用都去写一堆代码,如此,不单单效率不高,而且代码也不优…为此,写了简单的封装。效果如:关键类DialogHelper.javapublic class DialogHelper { /*** * 获取一个dialog对象,进行相关操作 * * @param context原创 2016-11-07 11:12:19 · 2507 阅读 · 0 评论 -
教你用两层ExpandableListView嵌套GridView实现三级展示界面
最近项目中使用一个三级展示列表,要求第一级和第二季都可以折叠,并有不同的图标变换,第三层展示数据,可点击。经过一盘折腾,算是实现了,效果就在下面: 思路: 最外层是ExpandableListView,它的子视图又是一个ExpandableListView,这个子ExpandableListView的子视图是我们的第三级展示界面,也就是GridView。分析清楚了之后,写起来就简原创 2016-12-04 19:10:11 · 1634 阅读 · 0 评论 -
Android之高仿今日头条、网易新闻首页动态改变tab
前言: 项目需要一个类似今日头条或者网易新闻首页动态改变tab(频道栏目)的功能,进过一番折腾,目前已实现该功能。先看看效果图: 思路: 1,关于tab栏目横着滑动功能控件的选择,这里我采用的HorizontalScrollView,每个tab采用动态创建的方式。至于为什么没有选择流行的TabLayout,是因为项目后期需求需要每个tab有一个长按的响原创 2016-12-04 19:46:07 · 7953 阅读 · 2 评论 -
TextView之你不知道的使用技巧
作为程序员,对自己写的代码要尽可能做到优化,但是,往往最简单的却最容易被忽视,比如,今天要给大家说的(只会说平时会被忽略的属性或者技巧,最常用的属性不介绍),TextView的使用奇技淫巧,且听我慢慢道来。无图无真相(有点丑): 下面就是代码(注释很详细)public class MainActivity extends AppCompatActivity { pri原创 2016-12-04 20:33:28 · 1237 阅读 · 0 评论 -
Android之高仿QQ6.6.0侧滑效果(背景动画、透明+沉浸式状态栏、渐变效果)
根据需求实现类似QQ侧滑效果,之前看到过很多实现方式通过SlidingMenu,但是既然官方推出了自己的专属控件,那么使用DrawerLayout就是不二选择。且看下文。一、先来看看官方文档解释 DrawerLayout充当窗口内容的顶层容器,允许交互式“抽屉”的观点,以从窗口的边缘拉出。 抽屉的定位和布局是使用控制机器人:layout_gravity 属性对应到您想要的抽屉,从出现的观点原创 2016-12-08 23:52:30 · 2064 阅读 · 2 评论 -
Material Design风格的AS,才配更完美的自定义博客栏目
1.给你的博客添加自定义栏目以添加自己的微信公众号栏目为例看看效果图 找到自己博客的下图位置 在显示上图的页面下拉到底部 点击添加栏目,出现下图,就是我们需要添加的内容了html代码编写,直接给出效果<ul class="panel_head"><span>我的微信公众号</span></ul><ul class="panel_body"><font style="color:bla原创 2017-02-27 18:26:16 · 2085 阅读 · 5 评论 -
Android 之倒计时验证两种常用方式
短信验证码功能,这里总结了两种常用的方式,可以直接拿来使用。看图: 说明:这里的及时从10开始,是为了演示的时间不要等太长而修改的。1、第一种方式:Timer/** * Description:自定义Timer * * Created by Mjj on 2016/12/4. */public class TimeCount extends CountDownTi原创 2016-12-04 23:45:47 · 1333 阅读 · 2 评论 -
Android 输入框第一次弹出数字键盘, 后面可以随意切换
转载请注明出处 http://www.jianshu.com/p/1932ff1b78de前言记录一次关于 EditText 首次输入需要弹出数字键盘,然后可以随便切换输入模式,下面以 输入身份证号 为例,因为身份证号只可能是数字 + 字母 X,所以这里不仅做了首次弹出数字键盘,还实现了对于其他键盘模式输入做了限制,只能输入字母 X 。代码xml<?xml version="1.0" enc原创 2017-04-15 14:08:18 · 3979 阅读 · 1 评论 -
动态增加 ListView 的 item,且 item 中有 EditText
效果图需求分析第一个界面跳转第二个界面需要携带一个 list 过去,然后根据 list 的大小通过 listview 来展示这些数据,并且可以在 listview 的 item 中输入信息,然后提交这些信息…功能代码第一个界面 xml <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://sche原创 2017-07-27 23:30:22 · 1930 阅读 · 0 评论 -
使用 ColorMatrix 对图片进行风格处理
前言当我们对图片进行编辑(或者美化)的时候,有一项就是对图片进行风格设置,比如:复古,黑白等,看下面效果图 ColorMatrix代码界面xml布局<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" androi原创 2017-08-22 22:22:52 · 1641 阅读 · 2 评论 -
2017 上半年我整理的好文章(上)(98 篇)
对上半年所分享的文章进行一个整理,很多读者当时忘记了收藏,以致于查找一篇历史文章很费劲,因此在这里顺便做下记录。目前就分下下面几个大类,没有更多细分,已基本可以查找了。 如果觉得博客还是有些不方便,请戳此处App 系列(高仿、练手等)SmartRecom:一款干货满满,助你进阶的 App 项目Android 仿今日头条的开源项目手把手教你从零开始做一个好看的 APPKeepGank.IO -原创 2017-07-03 00:59:01 · 12404 阅读 · 3 评论 -
2017 我所分享的技术文章总结(下)
对下半年所分享的文章进行整理,上半年总结的 98 篇好文请点击这里,很多读者当时忘记了收藏,以致于查找一篇历史文章很费劲,因此在这里顺便做下记录。目前就分下下面几个大类,没有更多细分,已基本可以查找了。 如果觉得博客还是有些不方便,请戳此处App 系列(高仿、练手等)你好,芒果!使用 RxKotlin 开发的 Dribbble App. 分享我学习 Androd 开发过程原创 2017-12-31 19:31:10 · 1280 阅读 · 0 评论 -
GridView 行和列之间的颜色设置,GridView 的 item 正方形显示
实现两个需求 - 通过 GridView 背景和其 item 背景实现行列之间的颜色 - 使 GridView 的 item 显示正方形效果普通方式效果这个时候的代码如下:GridView 代码<GridView android:id="@+id/gv" android:layout_width="match_paren...原创 2018-04-08 20:38:00 · 2743 阅读 · 0 评论 -
PopupWindow 横向居中显示,当设置带有箭头形式的背景图时,去掉四边阴影
解决两个问题 - PopupWindow 横向居中显示 - 当给 popupWindow 设置背景图片时,去掉黑边让 PopupWindow 横向居中显示在某个 View 的下面这里我在 Activity 中放了一个横向的 TextView ,在顶部,点击的时候在其下方显示 PopupWindow,代码如下:PopupWindow popupWindow;...原创 2018-04-08 22:20:00 · 2722 阅读 · 0 评论 -
Android 底部弹框实现,推荐使用 DialogFragment 来做
项目中经常需要实现底部弹出框这样的需求,实现方式有很多种,比如:Dialog、全局Activity、PopupWindow、DialogFragment都可以达到目的。经过很多实践之后,发现使用 DialogFragment 是最优的。DialogFragment 优点它本身是一个 Fragment ,所以在这里进行网络请求等操作肯定比上面说的其他几种要好。DialogFrag...原创 2018-04-09 00:11:24 · 6508 阅读 · 3 评论 -
实用的添加购物车抛物线动画和自由落体类型动画
添加购物车的动画效果相信很多开发者都用到过,近期听到过很多这样的需求,故此写了demo,直接上效果图:这里的界面很简单,代码就不贴了,简单贴一下点击事件下的代码片段。parabola监听ValueAnim.startValue(iv_dot, screenHeight, 0, 1);Free_Falling_body监听iv_dot.setX(tv_fallingBody.ge原创 2016-07-06 14:31:01 · 1830 阅读 · 0 评论