
开发实例
文章平均质量分 79
淡淡的香烟
坚持是一件不容易的事情,开发是一条任重而道远的路
展开
-
Android使用Kotlin封装Google登录工具类
之前由于项目做国际化,所以需要接入Google、FaceBook、Twitter等各种第三方登录的Api,于是查找官网资料,申请各种key和密钥,最后成功完成了这三个第三方登录Api的功能,但是由于很多地方需要调用,前期做得很粗糙,发现调用很麻烦,于是做了一次封装,总结一下,关于资料的申请这里就不说了,本博客采用的是Kotlin代码,不熟悉Kotlin的同学可以学习一下,直接上封装的代码:3.配置Twitter:Google、Facebook、Twitter之前需要安装Google服务,所以首先需原创 2023-09-06 18:35:48 · 74 阅读 · 0 评论 -
Android使用Kotlin封装MMKVUtils
MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。从 2015 年中至今在微信上使用,其性能和稳定性经过了时间的验证。近期也已移植到 Android / macOS / Win32 / POSIX 平台,一并开源。原创 2023-09-08 00:12:45 · 1381 阅读 · 0 评论 -
Android中Matrix的简单使用
**Matrix** 是一款微信研发并日常使用的应用性能接入框架,支持iOS, macOS和Android。原创 2023-08-11 20:20:27 · 3402 阅读 · 0 评论 -
Android实现仿网易云音乐黑胶唱片效果
网易云音乐的黑胶唱片效果一直是很多音乐迷的最爱,之前实现过此效果,今天总结一下,直接上代码:原创 2023-05-30 23:53:02 · 960 阅读 · 0 评论 -
Android中简单使用aspectj
Android自定义注解原创 2022-11-30 09:41:46 · 1326 阅读 · 0 评论 -
Android性能优化之使用AndResGuard压缩Apk约1M
AndResGuard是一个帮助你缩小APK大小的工具,他的原理类似Java Proguard,但是只针对资源。他会将原本冗长的资源路径变短,例如将res/drawable/wechat变为r/d/a。原创 2022-07-07 15:29:57 · 1506 阅读 · 0 评论 -
Android实现PDF格式文件预览
接着上一篇的博客,在搜索出手机内的.pdf格式文件后,实现pdf文件的预览的方式有很多,1.Android PdfViewer项目地址:https://github.com/barteksc/AndroidPdfViewer功能很强大, 使用也比较广, 亲测可以使用.唯一的缺点 :添加到项目中 会使apk增加10M左右, 这是最不能接受的, 故弃用.2.PdfViewPager:项...原创 2019-09-28 18:17:45 · 7743 阅读 · 0 评论 -
VMware安装Ubuntu18.0.4-1详细过程
准备工作一.下载VMware.VMware下载地址为:城盘下载:https://wwwzdfanscom.ctfile.com/dir/17667126-29444776-10f3a9/百度云下载:https://pan.baidu.com/s/1xMBIIGRu48hvsOvxcGBEPw下载完成即可安装,安装可以全部采取默认,看个人而定,博主的安装目录是自选的。安装完成...原创 2018-09-18 01:14:09 · 17675 阅读 · 7 评论 -
Android中使用PopupWindow实现上下左右弹框
最近做首页新手引导需要显示一个在控件下面的弹框,由于之前的同事使用的FramLayout以addview的方式实现的,发现很不好扩展,修改起来比较麻烦,于是自己使用PopupWindow从新写了一个.原创 2022-03-17 23:26:32 · 5153 阅读 · 2 评论 -
Android中Google、FaceBook登录工具类的实际使用
接着上一篇封装的Google、FaceBook登录工具类的封装后,我们这篇来说下使用:1.初始化view:private fun initView() { tv_google.setOnClickListener { checkGoogleService() } tv_facebook.setOnClickListener { if (!CheckApkExistUtils.checkFacebookExist(this)) {.原创 2021-10-31 23:59:38 · 2402 阅读 · 6 评论 -
Android中使用Kotlin封装一个友盟统计工具类
Android中事件统计是很常见的需求,最近做了一些封装,可以很好地看出统计事件的详细数据,使用也很方便简单,代码如下:1.在App的build.gradle目录下添加友盟统计依赖:implementation 'com.umeng.umsdk:common:9.4.0' // (必选)版本号implementation 'com.umeng.umsdk:asms:1.4.0' // asms包依赖(必选)implementation 'com.umeng.umsdk:apm:1.4.0' /原创 2021-10-24 23:59:32 · 615 阅读 · 0 评论 -
Android中使用Kotlin实现Google、FaceBook、Twitter登录的封装
override fun onLoginSuccess(infoBean: FaceLoginInfoBean) { //faceBook登录成功后返回的信息 if (infoBean.email.isNotEmpty()) { thirdAccountLogin(infoBean.email, infoBean.email, "1") }}override fun onLoginCancel(message: String?) { ToastUtil.原创 2021-10-23 16:48:00 · 1193 阅读 · 0 评论 -
Android Jetpack之CameraX的使用
Andoird中拍照、录像是很常见的功能,但是系统相机的Api目前发生了很大的变化,有Camera1、Camera2、CameraX三个api,每个api的使用和方法都不一样,如果做过相机开发的小伙伴应该会很头疼这三个api在不同安卓系统手机的适配,由于目前的App有一部分工作涉及到这部分,所以总结了一下,目前由基础到深入慢慢总结.一.简介:(官方介绍如下)CameraX 是一个 Jetpack 支持库,旨在帮助您简化相机应用的开发工作。它提供一致且易用的 API 接口,适用于大多数 Android原创 2021-10-21 00:45:03 · 3362 阅读 · 4 评论 -
Android阿里云推送离线通知集成踩坑之路
最近因为公司后台服务器买的是阿里云的服务,所以把友盟的推送换成了阿里云推送,首先不得不说,文档写得很差,兼容性和适配做得也不是很好,加了技术支持群,但是里面的同学问一个问题半天才有回复,好了,不扯谈,直接上代码。 1.添加依赖: 由于公司项目是组件化开发,所以我把推送也单独做成了一个组件,可以独立运行.在项目的统一依赖管理config.gradle添加阿里云推送的依赖和各第三方渠道的依赖,如下图所示: 如有疑问和版本更新,可以去阿里云官网查看,这里就不说这些了 ![在这里插入图片描述]..原创 2021-09-28 00:54:40 · 2681 阅读 · 5 评论 -
Android 最简单实用的打开手机通知权限设置
最近做离线的消息推送,发现oppo、vivo、小米等有些机型通知权限默认是关闭的,需要手动打开,网上有很多介绍怎么设置和打开的,但是发现都要适配各种版本和各大机型,太麻烦和繁琐,不是我想要的效果,于是自己整理了一个简单使用的方法,不多说,直接上代码:1.封装的方法如下:/** * 打开通知权限 * * @param context */public static void openNotificationSettingsForApp(Context context) { .原创 2021-09-16 00:19:13 · 21220 阅读 · 17 评论 -
Android JetpackCompose尝鲜第2篇
很早之前写过一篇JetPackCompose尝鲜的一篇,今天是趁着年前项目上线之后学习一下,今年Compose发展还是很好的,发布了很多版本,2021会有一个release版本,未来可期啊~~这里就不说太多废话,直接上代码:1.设置布局:setContent { MaterialTheme { setView("JetPack Compose") }}2.设置几个TextView和添加点击事件:@Composableprivate fun setV原创 2021-02-08 21:56:56 · 480 阅读 · 0 评论 -
Android中Aop的简单使用和学习
一、简介:在Android 中使用注解主要有以下几个作用:1.和编译器一起给开发者提示警告信息2.配合一些ide 可以更加方便快捷 安全有效的编写Java代码。谷歌出的support-annotations这个库 就是主要干这个的。3.和反射一起 提供一些类似于spring 可配置的功能,方便简洁。二、使用:2.1导包:在App的build目录下引入如下依赖:implementation 'org.aspectj:aspectjrt:1.8.9'2.2在项目的build原创 2021-01-02 23:19:58 · 1224 阅读 · 0 评论 -
Android获取外网和内网ip地址
最近有个需求需要获取外网ip地址,找了很多资料都不行,要么是报错,于是自己整理了一下方法:1.获取内网ip地址:/** * 获取内网ip地址 * @param context * @return */public static String getIntranetIPAddress(Context context) { NetworkInfo info = ((ConnectivityManager) context .getSystemService(C原创 2020-11-27 18:18:12 · 5105 阅读 · 3 评论 -
Android实现自定义进度条
最近有个需求需要实现自定义加载进度条,可以设置加载进度和进度条颜色,于是研究了一下,写了一个自定义的进度条.1.自定义进度条代码如下:2.完整代码:package com.example.tvrecyclerview.view;import android.annotation.SuppressLint;import android.content.Context;import android.content.res.TypedArray;import android.graph原创 2020-11-08 23:21:15 · 4505 阅读 · 0 评论 -
Android支付SDK开发在App中调起H5支付的实现
在Android开发中支付很常见,但是要实现原生调起H5支付很少,之前做App支付也踩过不少坑,App调起H5支付同样坑很多,这里说说App调起H5支付的实现方式和问题。1.App中调起WebView页面的微信和支付宝支付的方法如下:2.webView.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favi原创 2020-09-01 01:14:11 · 3350 阅读 · 2 评论 -
Android仿微信朋友圈7实现点赞功能
之前一直有朋友问我点赞怎么实现?今天趁着休息时间整理出来,其实点赞的功能和用户评论差不多,都是显示一个用户列表,只不过评论有评论内容和回复评论功能。实现点赞的思路如下:1.当用户点击点赞按钮后,根据点赞状态来判断和显示:(1)如果此用户的点赞状态是点赞成功,就把此用户加入到点赞列表中,并且点赞状态设置为1,然后请求点赞接口,刷新本地数据;(2)如果此用户的点赞状态是取消点赞,并且循环查询点赞列表,如果此用户在点赞列表中就把此用户从列表中国移除,如果不在点赞列表中就把此用户加入点赞列表,并且把点赞原创 2020-07-29 00:46:12 · 4203 阅读 · 2 评论 -
AndroidAES加密适配9.0
最近在做项目加密,用的是AES,有一个很麻烦的坑,之前加密用的md5和des没有说适配7.0,甚至于Android9.0都不支持SHA1PRNG算法和Crypto,同样的代码在main()方法跑出来的结果和后台的加解密方式一样,这里加密的字段和方法都是一样的,但是跑9.0真机就报错抛异常.先看抛出的异常信息如下:...原创 2020-07-23 23:51:02 · 2175 阅读 · 2 评论 -
Android仿微信朋友圈6之实现消息提醒功能
之前有朋友问我点赞功能咋实现?其实和评论类似,都是点赞成功后请求点赞接口,然后拼接数据,刷新本地列表.如果点赞成功,把当前用户加入到点赞列表数据中,如果取消点赞就把当前用户从点赞列表移除,然后刷新adapter....原创 2020-07-14 00:58:17 · 1265 阅读 · 0 评论 -
Android 腾讯tbs适配Android Q啦~~
首先说声抱歉,去年升级App版本到Android Q时,使用腾讯tbs在一加7plus,华为mate20上报错了,还吐槽了他们,不管最后还是通过降低版本到28解决了,最近发现腾讯X5WebView已经适配到Android Q了,于是尝试了一下,发现真的不报错了,小伙伴们可以愉快的玩耍拉,大厂更新就是快,以下我的使用方式:1.在App的build.gradle目录下更换tbs版本:代码如下:dependencies { implementation fileTree(di...原创 2020-05-26 00:53:59 · 2702 阅读 · 0 评论 -
Android仿京东详情页2实现沉浸式状态栏和标题栏,顶部tab切换,滑动到底部自动切换至详情页面
本文是接着上次仿京东详情页的第2个版本,把之前的底部tab切换放到标题栏,并根据banner滑动的距离隐藏显示tab,滑动到底部自动切换到商品详情页面.1.Mainactivity代码:package com.example.jdshopdetailtwo;import android.widget.ImageView;import android.widget.TextView;import androidx.appcompat.widget.Toolbar...原创 2020-05-22 00:31:26 · 2828 阅读 · 0 评论 -
Android实现根据包名跳转各大应用市场
最近公司有个需求是根据包名跳转到手机的各大应用市场,于是研究了一下,记录下来,有需要的朋友可以试试. 1.MartetUtils:各大应用市场工具类/*** @anthor:njb* @date: 2020-04-29 00:15* @desc:**/public class MarketUtils {private static MarketUtils tools;private static final String schemaUrl = "mark...原创 2020-05-18 23:53:30 · 42109 阅读 · 4 评论 -
Android两种方式实现动态添加View
最近有个需求是在布局上动态添加view,本来想写死的,但是发现这样写后期需求变动后改动很大,不灵活,还得重新写,于是研究了一下在布局上动态添加view的方式。1.初始化View:2.初始化事件监听3.向容器中添加TextView4.添加一个布局..5.移除最后一个View://根据view的数量移除最后一个View view = llCont...原创 2020-05-03 00:17:21 · 5444 阅读 · 0 评论 -
Android实现保存图片和视频到系统相册
最近在做图片和视频保存功能,之前做的是保存到sd卡目录下,现在是保存到系统相册中. 遇到问题: 1.Android 9.0网络请求适配,在Manifest中设置android:usesCleartextTraffic="true"即可解决AndroidP加载网络问题.2.下载完成后进度不更新,在Manifest中配置下载权限.<uses-permiss...原创 2020-04-21 05:30:48 · 13076 阅读 · 20 评论 -
Android中实现简单的仿京东详情页面
之前做过一个商场项目,实现了类似京东的详情页,采用Coordinatorlatout+Appbarlayout+toolbar实现,实现的效果主要是沉浸式状态栏和标题栏,当图片滑动时标题栏和按钮颜色发生相应变化.1.布局代码:<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget....原创 2020-03-25 21:57:57 · 6300 阅读 · 10 评论 -
Android使用MvvM+kotlin实现简单WanAndroid
最近在学习mvvm,利用空闲时间写了一个简单版的wanAndroid项目.介绍就不说了,直接上代码. 1.引入:在App——build.gradle目录引入以下代码即可:dataBinding{ enabled true}2.配置gradle.propertiesandroid.useAndroidX=trueandroid.enableJetifier...原创 2020-03-04 22:31:55 · 2473 阅读 · 0 评论 -
Android中使用ViewPage2+TabLayout的实现底部导航切换
1.集成方式:本文用的是androidx在App的build.gradle目录下导入:implementation 'androidx.viewpager2:viewpager2:1.0.0'implementation 'com.google.android.material:material:1.1.0'2.使用,本文使用的kotlin方式,java方式很简单,这里就不写实例...原创 2020-03-04 20:36:17 · 5162 阅读 · 0 评论 -
Android中实现直播带货功能
一、这两年直播带货非常火,前段时间我们项目需求也提了这个功能,于是查看抖音、快手、淘宝的实现方式,结合咱们自己的项目,直播带货有2种场景:1.一种是在单一页面进行商品购买.2.一种是全局悬浮窗,在所有页面都可以去购物.二、单一页面一个拖拽按钮就可以实现,全局悬浮窗比较麻烦,由于涉及到多个页面的跳转传递数据和回收问题。三、单个页面的悬浮按钮,可以用一个自定义的可拖拽按钮来实现....原创 2020-02-28 15:02:44 · 1844 阅读 · 0 评论 -
Android揭露动画的简单使用
一.什么是揭露动画? Circulal Reveal(揭露动画): 官方将这一动画称为揭露效果,它在官网中的描述是这样的:当您显示或隐藏一组 UI 元素时,揭露动画可为用户提供视觉连续性。[ViewAnimationUtils.createCircularReveal()](https://developer.android.com/reference/android/view...原创 2020-02-27 19:53:56 · 471 阅读 · 0 评论 -
Android中自适应大小的TextView
1.AndroidX包中有一个AppCompatTextView,它是Android标准TextView的增强:import androidx.appcompat.widget.AppCompatTextView;public class AppCompatTextView extends TextView implements TintableBackgroundView, ...原创 2020-01-06 11:02:21 · 3033 阅读 · 0 评论 -
Android仿微信朋友圈5实现朋友圈列表
微信朋友圈网上有很多开源的例子,本文是自己手写,之前的几篇都是单个功能,感觉很零散,这次放出完整的点赞评论和朋友圈列表功能.1.定义四种item类型,和后台接口匹配:2.CircleAdapter实现代码:部分核心代码截图:完整代码:/** * @作者: njb * @时间: 2019/7/25 10:47 * @描述: 朋友圈适配器 */public ...原创 2019-12-31 21:25:02 · 11490 阅读 · 13 评论 -
Android中解决ScrollView嵌套WebView底部留白太多和高度问题
Android中WebView的坑很多,比如低版本内核不支持,加载速度慢,重定向等等,当使用ScrollView嵌套WebView时坑更多,有人说为啥要嵌套?单独使用WebView或者ScrollView不行吗?答案是当然不行,需求就是如此,怎么实现产品和经理不会管的,反正开发要解决,当然这里这里没有引站的意思,也不是吐槽,只是纯粹讨论技术. 关于网上在ScrollVi...原创 2019-12-05 00:13:06 · 4981 阅读 · 7 评论 -
Android中的内存泄露问题
内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。Android中发生内存泄露的常见情形如下:1.handler引起的内存泄露private TextView textView;private Button button;private Handler m...原创 2019-12-04 01:13:19 · 1377 阅读 · 0 评论 -
Android JetPack Compose尝鲜~~
最近下载了AndroidStudio4.0,桌面图标变成了橘黄色,有点小清新,给人焕然一新的感觉,加载界面也变了,简直不要太时尚,在微信公众号和掘金看到几篇博客,写得不错,于是也尝试了一下.1.简介:Jetpack Compose是用于构建本机Android UI的现代工具包。Jetpack Compose使用更少的代码,强大的工具和直观的Kotlin API简化并加速...原创 2019-11-28 00:00:46 · 7161 阅读 · 9 评论 -
腾讯X5浏览器简单使用
Android中的WebView一直是令人头疼的问题,各种手机内核不一致,版本也不一样,型号众多,导致兼容不好做,自从使用X5WebView,兼容和版本适配问题得到很大提升,本文将给X5WebView出接入的指南.1.X5内核的好处:1) 速度快:相比系统webview的网页打开速度有30+%的提升;2) 省流量:使用云端优化技术使流量节省20+%;3) 更安全:安全问题可以在24...原创 2019-11-16 00:35:23 · 4387 阅读 · 6 评论 -
Android地址(省市区)、日期、时间滚轮选择器简单封装
android开发中时间、日期、地址等滚轮选择器很常见,很多App会使用这种效果,收集了一下资料,于是自己做了一个简单封装,方便使用,感谢各位大佬的资料,效果如图:使用方法代码如下:public class MainActivity extends AppCompatActivity { private Dialog dateDialog, timeDialog, ...原创 2018-08-31 15:36:38 · 9382 阅读 · 1 评论