- 博客(42)
- 资源 (17)
- 问答 (2)
- 收藏
- 关注
原创 Android AIDL跨进程通信
AIDL的文件编写相对来说不是很难,都是定义的一些接口方法,供外部调用。其中,我们通过自定义的远程服务ChatService作为中间组件,在两个应用间都绑定过一次,并且在DemoA中我们的远程服务与Activity的通信是通过Messenger来实现的,Messenger内部也是通过Binder机制将Message从一个进程传递到另一个进程。
2023-06-12 16:49:07
2155
2
原创 Android 自定义注解之kapt的全面解析
lib-annotation(Java依赖)存放自定义注解lib-processor(Java依赖)存放注解处理器bind-core(Android依赖)供外部调用//多个参数示例,default指定默认值}//传递View的id,}@Retention指定注解作用时期,包括SOURCE、CLASS、RUNTIME。RUNTIME的作用时期最长@Target指明该注解作用的代码元素,例如属性、方法、类、接口等value()plugins{}设置版本。......
2022-07-19 17:54:06
2701
原创 Android DCIM相册保存
一、工具类package com.szsh.zpb_company.utilsimport android.content.ContentValuesimport android.content.Contextimport android.content.Intentimport android.net.Uriimport android.os.Buildimport android.os.Environmentimport android.provider.MediaStoreim
2022-03-22 10:39:47
3930
原创 Android 集成zxing二维码扫描、自定义
项目主要有zxing的基本使用,包含扫描回调、连续扫描、自定义扫描框:一、依赖库implementation 'com.journeyapps:zxing-android-embedded:4.3.0'Github这个库是zxing Android端的,封装了一些基本的使用方法二、基本使用这里使用的是startActivityForResult的替代方法,registerForActivityResult...
2021-11-25 10:28:18
8398
3
原创 Android 自定义ViewGroup之测量onMeasure
自定义View一般都需要重写onMeasure()、onLayout()、onDraw()。但自定义ViewGroup更重要的是onMeasure()和onLayout(),因为作为容器,onDraw()方法显得没那么必要,即时你重写了此方法,它也不会调用,毕竟容器只需要关注自己内部view的摆放和约束其大小而已。一、onMeasure如何测量child?我们在重写完onMeasure(int widthMeasureSpec, int heightMeasureSpec)内部有width
2021-11-12 17:55:35
1988
原创 【小程序】基础笔记
一、布局水平居中、垂直居中/* 弹性布局设置居中 */.post_like{ display: flex; flex-direction: row; justify-content: center;/*弹性布局水平居中*/ align-items: center;/*弹性布局垂直居中*/}设置列表分割线border-top: 1px solid #ddd; /*上边线灰色*/二、列表渲染列表: 默认数组的当前项的下标变量名默认为 index,数组当前项的变量名默
2021-10-18 17:35:25
180
原创 Android 带回调的启动Activity 推荐使用registerForActivityResult
今天无意间发现平常使用的startActivityForResult(intent,code)过时了,然后点进看: /** * {@inheritDoc} * * @deprecated use * {@link #registerForActivityResult(ActivityResultContract, ActivityResultCallback)} * passing in a {@link StartActivityForRe...
2021-08-19 14:23:08
12691
2
原创 Kotlin mmkv结合属性委托的一个封装类
MMKV是腾讯开源的一款是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。我们现在可以用它完全取代SharePreference。封装完的工具类我们可以像变量一样读取和存储用户的偏好设置,例如:登陆后的token,uid,从而免登陆等1.添加引用implementation 'com.tencent:mmkv-static:1.2.10'2.创建委托类Preference,读取,存储我们知道要使用委托,类需要有指
2021-08-11 17:43:00
536
原创 Android open failed: EACCES (Permission denied)错误
在写Android下载更新时,部分手机遇到这样的问题,主要是Android10,大概意思是权限,什么的,不过我的app权限都有,也做了动态申请成功了,但还是出现这个问题了,另外也有人说
2021-06-15 11:41:21
1845
原创 Flutter真机调试,找不到设备?
下载安装了Flutter,AndroidStudio中安装了Flutter插件,配置了dart sdk 、fluttersdk,将Flutter文档中的小demo敲了一遍准备运行,发现只有类似网页的两个设备然后选择其中一个运行,就会启动电脑上的浏览器查看,效果明显比手机上运行看着别扭。网上搜索查找了下,之后我在docs下运行了flutter doctor发现有一项配置报错,大致意思是我的AndroidSDK未找到,因为之前SDK是直接在AndroidStudio配置好路径的,所有平常开发..
2021-03-09 16:30:33
3956
原创 Kotlin中使用高阶函数代替接口回调
Java思路实现创建接口,创建对应抽象方法声明接口成员变量创建一个公共的监听方法 interface OnDialogClickListener{ fun onClickOK() } private var onDialogClickListener: OnDialogClickListener?=null fun setOnDialogClickLister(onDialogClickListener:OnDialogClickListener){
2020-12-09 17:36:58
1336
原创 Android room报错java.lang.IllegalStateException: Pre-packaged database has an invalid schema
之前在涉及城市列表的地方一直用的GreenDao来查询显示,最近有在学习jatpack,从而入手了room数据库,按照流程一切操作好之后,发现报了以下错误: java.lang.IllegalStateException: Pre-packaged database has an invalid schema: AREA_CITY(com.ssh.sh_recruit.room.bean.AreaCity). Expected: TableInfo{name='AREA_CITY', c
2020-09-14 11:36:12
2764
原创 Android Material Button和ImageView的快速实现UI想要的效果
今天开了一篇博客,就是分析平常我们给Button或TextView设置带圆角背景,大部分做法都是使用shape,然后shape有它的局限性,角度,填充色都是固定的,假如有多个不同角度的,就需要对应多份shape。据我了解网上也有第三方实现的动态改变背景的三方库,也能很友好的随意设置背景,因为项目使用了Material,恰巧也看到里面有自带的实现。Material依赖库implementation ‘androidx.multidex:multidex:2.0.1’1、MaterialButton
2020-09-11 12:05:56
545
原创 Android自定义View 饼状图,扇形图
项目需求得整个扇形统计图,觉得使用echars依赖感觉会有太多的冗余代码,可能个人对此有强迫症,保证apk安装包的大小,能自己实现的,使用率较高的就自己实现。功能点:显示百分比扇形圆环切换指定View的属性,大小实现分析内部一个小圆遮挡构成圆环;外部大圆绘制多个扇形区域,扇形大小根据外部穿入的百分比分割圆形;绘制折线,找到扇形所在弧的中心点,向外绘制线条;绘制文字1.确定view的宽和高,来决定圆的大小 @Override protected void onMeasure(int.
2020-07-17 12:01:57
1511
2
原创 Android 7.0文件共享、安装Apk问题
今年的第一篇,记录下,不平凡的一年,工作还得继续,往后的道路继续前进;工作中再次碰到7.0文件共享的问题,这次是因为更新安装包,发现安装不了,然后总结了一下解决问题的经过。7.0之前打开手机内存中的某一文件,直接通过uri.fromFile,通过intent指定类型,然后启动就行,但是7.0之后就会出现问题。以前打开文件安装包,7.0以上行不通 File file = new File(path); Intent intent = new Intent(Intent.ACTION_VIEW); in
2020-07-01 18:00:20
375
原创 【Rxjava学习】timer、interval、take、map实现计时器
1.Timer:创建一个延时的Obsevable发送给观察者,即延时一段时间做某事 LogUtils.e("开始"); Observable.timer(3000, TimeUnit.MILLISECONDS) .subscribeOn(Schedulers.io()) .observeOn(AndroidSch...
2019-10-25 18:22:11
1747
原创 Android 利用ConstraintLayout约束banner 比例显示
<android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent"> <com.youth....
2019-08-19 11:40:17
939
原创 Android 常用代码混淆
代码混淆主要是为了防止反编译,如何反编译?比较火的反编译工具github地址jadx,也可直接下载jadx-gui。这里可以看看我通过反编译工具查看apk混淆前和混淆后的两张图片 不难看出ClubActivity里面的成员变量和方法都变成了单个英文字母,从而降低了代码的可读性,提高安全性!开始混淆:Gradle配置 buildTypes { deb...
2019-02-23 15:34:09
604
原创 Android Socket通信 发送心跳包 重连
最近项目中,有使用Socket与后端进行通信,然后简单的了解了下Socket使用,大致流程是配置服务端的Ip、端口号,连接,监听数据和发送数据,数据的读取和发送都是以流的形式实现的,然后自己将项目中的代码写了简单的管理类,测试下代码。下面是demo的两个界面,连接和发送接收界面 这里使用了一个Tcp调试助手,模拟服务端发送和接收数据,通讯模式选择TcpService ,本地端口随意...
2018-12-07 16:43:52
3148
4
原创 Android 快速去掉Activity的切换动画
1.去掉进场Intent intent=new Intent(this,MainActivity.class); startActivity(intent); overridePendingTransition(0, 0);2.去掉出场动画在需要结束的activity中重写finish方法@Override ...
2018-05-31 15:46:23
11956
原创 Shell命令打包Android apk
前言空闲时间,了解了一下Shell,Shell是用C语言程序编写的程序,它是用户使用Linux的桥梁,Shell是一种命令语言,又是一种程序设计语言。个人对Shell的了解知之甚少,不过在这方面也激起了我的求知欲,用短短的几行命令,就可以完成诸如文件复制,上传等强大的功能。用Shell命令打包AndroidApk,此项目是开发环境需在AndroidStudio下完成,原理命令行调用工程根目录下的g...
2018-04-18 18:09:52
6650
原创 Android Rxjava2、Retrofit封装一个简单的网络请求
一、定义RxjavaRxJava 是一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库,符合观察者设计模式二、特点逻辑简洁、使用优雅、使用简单三、基本用法 //1.创建被观察者 Observable observable = Observable.create(new ObservableOnSubscribe<Integer&g...
2018-03-31 18:22:10
466
原创 Android 配置gradle实现VersionCode自增
我是因为构建多渠道包的时候有这个需求,平常工作多个渠道包频繁的打包,总会忘记versioncode提高一下,从而打包出来的apk无法覆盖原先的安装包,这里只介绍了自增VersionCode,网上还有动态设置versionName,有需要也可以看看其他人的实现。以下介绍下配置Gradle自动增加versionCode的值一、项目的根目录新建一个文件version.properties二、文件内容写上...
2018-02-11 17:47:24
4551
2
原创 Android利用环信SDK 3.x实现1对1视频通话
通过实现这个小功能,可以让大家快速了解该怎么集成聊天,通话功能。环信实现即使通讯都提供了两套(貌似融云也是的),一套简版api包括所有功能,另一套除了应有的功能外还有更全的界面和逻辑(只需要简单的几行代码就能实现聊天的)。这种情况得看大家的工作需要了,如果界面需要自己写的话,那就使用第一种了。下面我把自己集成环信sdk实现聊天和视频通话的过程总结一下。一、环信官网注册账号创建应用获取A
2017-12-14 15:03:15
3423
1
原创 Android基于Okhttp3的文件下载工具类
需求中有需要简易的下载文件的,例如图片,音频,视频等。首先这个下载工具类没有断点下载,也就是说没有暂停,缓存。不过解决日常工作中的小文件下载是绰绰有余的。下面可以看一看一、添加okhttp3的远程依赖 compile 'com.squareup.okhttp3:okhttp:3.4.1'compile 'com.squareup.okhttp3:okhttp-urlconnecti...
2017-08-17 16:32:37
12359
原创 Android自定义Dialog
看过一位前辈说过一番话,工作五六年,东西做的多,但总结的却很少,哪怕自己会的东西,很简单的东西,时间长了也会遗忘的,所以我们要学会有自己的代码库,将耦合度低的代码封装起来,放在github上或者博客上,然后我会想这些东西才会是自己的,哪怕以后项目重新遇到了这些代码,可以马上拿来就用。今天有空,就想想平常用的dialog,用着是挺简单的,但总感觉像少了点什么,每次都会翻开以前的代码,然后又重写一遍,...
2017-08-08 17:15:33
546
2
原创 Android中小视频录制,预览
工作中项目需求,在动态里面支持查看录制的小视频;录制视频主要用到Android中MediaRecorder这个类,在录制的过程中需要结合SurfaceView和Camera,Camera管理手机摄像头,SurfaceView负责将Camera捕捉到的图像渲染出来,MediaRecorder类则相当于这两者之间的枢纽,负责协调。一、主要功能:视频录制,可设置录制最大时长和最小时长,支持横屏竖
2017-07-18 11:32:42
1026
原创 Android自定义view之仿微信录制视频按钮
本文章只写了个类似微信的录制视频的按钮,效果图如下: 一、主要的功能:1.长按显示进度条,单击事件,录制完成回调2.最大时间和最小时间控制3.进度条宽度,颜色设置二、实现思路该自定义View主要有三块组成,白色内圆,浅色大圆,圆形进度条;长按一段时间,内圆缩小0.75倍,外圆放大1.33倍,进度条显示更新,松开手内圆,外圆统一恢
2017-07-05 16:12:06
3198
1
原创 Android在As中org.apache.http系列的包不能使用
之前Eclipse项目移动到As之后,出现以下问题import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.HttpVersion;import org.apache.http.client.HttpClient;import org.apache.http.
2017-06-18 14:24:42
4738
原创 Android中ScrollView中嵌套RecyclerView的完美解决办法
工作中的项目是Eclipse项目,有用到RecyclerView,也是在ScrollView中使用出现问题的,不过很容易就解决了,最近在As项目中ScrollView嵌套RecyclerView的时候就出现各种问题,6.0系统问题,显示不全,不能惯性滑动,网上找了些文章总结了下解决的办法一、原先的解决办法(继承LinearLayoutManager)import android.co
2017-06-14 00:16:12
4046
原创 Android自定义View学习之圆角图片(圆形图片)
圆形图片的实现方式有很多种,首先我分享下自己所知道的一种实现方式,这种方式的实现对角度的控制很灵活,可以在xml中自由的设置,实现的过程中使用到了PorterDuffXfermode这个类,网络上对PorterDuffXfermode的解释:类android.graphics.PorterDuffXfermode继承自android.graphics.Xfermode。在用Android中的C
2017-05-23 18:19:08
595
原创 Android自定义View学习之画太极图
自定义控件是Android开发者必须掌握的知识,因为开发中很多高级的UI特效都是自定义而来的,我们知道一个View显示在界面上一般会经历创建,测量,布局,绘制,事件处理等生命周期方法,个人对自定义控件接触的不多,所以也是在学习的初级阶段,下面我们来绘制一个简单的太极图(实现代码也是参考网上的,这里加上自己的汇总分析下几个方法的使用和具体的参数意义,从而加深对自定义UI的初步认识)一、效果...
2017-05-18 15:11:41
741
原创 Android中将Activity转化为Dialog
效果图先附上,实现的原理主要是修改Activity的主题样式,使它看起来就像是Dialog一样,实际还是Activity,不过用起来方便就好了,而且Activity本身支持打开和关闭的各种动画,这样我们在打开这个dialog的时候也能轻松的支持Android中的平移,缩放,旋转,渐隐渐现的基本动画demo主要就两个Activity,一个主Activity和一个DialogActivity一
2017-05-11 11:56:43
6313
原创 Android中keystore文件的SHA1获取方法
SHA1的作用是校验一个文件的安全性,防止此文件被篡改,文件SHA1的获取,java代码也有实现,网上也有挺多的,这里主要介绍Android在打包发布时需要用到的keystore文件的SHA1获取方法:获取的时候会用到Java jdk中的keytool.ext工具,以下是我的jdk安装目录一、命令行运行 cd .android 二、执行 keytool -l...
2017-05-10 11:43:56
3412
原创 Android应用调起三方地图进行导航
当项目中需要用到地点导航,可能你需要集成三方地图,但现在更多的应用的做法是直接调起手机中已经安装好的地图,高德,百度等等,这样比集成三方地图来得更快,可行性也更高,下面代码都是参考网络上的,自己整理了下一.使用谷歌地图Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("htt
2017-04-26 16:37:18
3054
原创 Android基于HttpURLConnection网络请求
HttpUrlConnection是继承UrlConnection的抽象类,是Android网络请求的标准类,下面分别介绍如何利用HttpUrlConnetion进项get和post请求:1.get请求private void getDataFromNetGet(final String url) { new Thread(new Runnable() {
2017-04-25 17:24:12
984
原创 Android类似微信详细地址选择(高德地图)
利用高德地图的API做了一个类似微信发送位置界面地址选择,界面就3个,一个选择地址(周边搜索),一个搜索界面(关键字搜索),最后将选择的地址信息返回主界面,效果图如下: 对于详细地址选择,在项目中难免会遇到,比如电商app,旅游app等等,下面简单讲解如何实现:一、注册高德开发者账号,创建应用,获取AppId1.创建应用过程红色※为必填项,其中 SHA1获取方式 确认随后得到appid2.下载...
2017-04-18 16:52:36
8376
7
原创 Android四大组件之BroadcastReceiver的使用
工作之余,有些闲功夫,想想还是总结一下基础知识,Android广播在项目中使用还是比较多的,相对于四大组件,可能仅次于Activity的使用。首先,我们得知道广播的作用:从字面意思上来看,广播就好比收音机通知收听者,同时也能携带广播信息。广播的种类可分为有序广播和无需广播,然而有序广播是有顺序之分,故也有优先级之分,利用广播的优先级我们也可以做很多事,比如短信拦截,来电骚扰都会使用到广播的优先级。
2017-04-17 14:41:48
463
原创 Android解决三星手机图片旋转问题
此文章只是记录自己在项目中遇到的问题,写下来,给自己提醒,相信接触过图片选择的必定会遇到三星手机从相册或者是拍照之后拿到图片路径,获取Bitmap对象,图片大了还得对bitmap进行压缩,最后显示在ImageView上,就会发现照片会旋转90°(我遇见的,不知道其他人旋转了多少度),解决办法也是比较方便快捷:1.通过图片路径得到图片的旋转角度public static int readPictur...
2017-04-01 14:37:37
1868
Android AIDL 跨进程通信
2023-06-12
jsoup-1.15.3.jar
2022-11-11
Android广播接收和发送
2017-04-17
Android广播的使用
2017-04-17
安卓文本框没四位自动空行,网上的代码有bug??。。。。。。
2016-01-01
scrollview中,点击按钮展开一段文本,而且能定位到文本的低端怎么实现啊
2015-12-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人