Android开发
大白菜打番茄
风不止,思不止
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Mob sharesdk分享网页使用 本地drawable资源文件
sharessdk分享网页用本地drawable文件1:drawable文件转存到本地绝对路径下 /** * drawable文件保存到本地绝对路径 */ public static String saveFileFromDrawable(String fileName, int drawableRes) { String path = MainApplication.instance().getFilesDir() + File.separator原创 2022-03-08 11:40:09 · 451 阅读 · 1 评论 -
保存图片和分享
private void saveAndShare() { requestNotifyShare(); Bitmap bitmap = view2Bitmap(binding.saveLayout); try { String uriPath = MediaStore.Images.Media.insertImage(getContext().getContentResolver(), bitmap, "aomi_share...原创 2021-12-21 11:11:51 · 300 阅读 · 0 评论 -
流式自动滚动recyclerview
1.第一种滚动方式流式滚动,没有停顿的,像手指滑动一样,并且屏蔽触摸事件,直接引用,在 onStart()方法中调用start(),在onStop()方法调用staop()import android.content.Context;import android.support.annotation.NonNull;import android.support.annotation.Nullable;import android.support.v7.widget.RecyclerView原创 2021-12-14 22:00:41 · 2135 阅读 · 0 评论 -
集成bugly编译慢
如果集成了编译耗时操作,例如bugly上传符号表,调试的时候可以关调,bugly { appId = 'xxxxxxx' // 注册时分配的App ID appKey = 'xxxxxx" // 注册时分配的App Key debug = false //调试模式支持上传 uploadSymbol=true//是否上传符号表}...原创 2021-12-06 21:54:25 · 247 阅读 · 0 评论 -
android重启app
final Intent intent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName()); if (intent != null) { intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); context.startActivity(intent); ...原创 2021-11-25 19:08:00 · 1584 阅读 · 0 评论 -
RxJava 实例(java语言)
Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(@io.reactivex.annotations.NonNull ObservableEmitter<String> emitter) throws Exception { String videoB..原创 2021-10-18 17:10:04 · 671 阅读 · 0 评论 -
单例模式的饿汉模式和懒汉模式
单例模式是最简单的设计模式之一,shu'yu创建型模式,提供了一种创建对象的最佳方式单例模式:1、单例模式只能由一个实例2、单例模式必须自己创建自己的唯一实例3、单例模式必须给其他所有对象提供这一实例饿汉式:类一旦加载就把单例初始化完成,保证getInstance的时候,单例是已经存在的了。不是lazy初始化,是多线程安全的,比较常用,但是容易产生垃圾对象,优点是没有加锁,执行效率会提高。缺点是类加载时就初始化,浪费内存。public class SingletonEH原创 2021-10-14 18:21:13 · 137 阅读 · 0 评论 -
android 动画
android动画有以下类型视图动画(View动画) 帧动画(Frame动画,Drawable动画) 属性动画 触摸反馈动画(Ripple Effect) 揭露动画(Reveal Effect) 转场动画&共享元素(Activity切换动画) 视图状态动画(Animate View State Changes) 矢量图动画(Vector动画) 约束布局实现的关键帧动画(ConstraintSet动画)属性动画具体使用:1、ValueAnimator类2、Object原创 2021-10-14 17:08:26 · 159 阅读 · 0 评论 -
tcp和udp的区别
tcp:面向连接,可靠,传输速度慢,传输效率低,多用于http,socket,邮件等udp:面向非连接(也就是连接性为无连接),不可靠,传输速度块,传输效率高,多用于即时通讯,音视频聊天等rtc可以用tcp也可以用udp。tcp和udp同属传输层,http属于应用层socket是TCP/IP的封装,ip是网络层,tcp是传输层,所以socket相当于传输层,socket是个接口而非协议,通过socket才能使用tcp/udp协议,socket的连接至少需要一对套接字,clientSock原创 2021-10-12 14:14:45 · 415 阅读 · 0 评论 -
线程 asynctask thread
asynctaskasynctask是一种轻量级的异步任务类,可以在线程中执行后台任务,然后把任务执行结果传递到主线程,封装了thread和handler。采用了线程池的机制线程池:asynctask就是通过线程池来执行异步任务的,线程池的好处1、重用线程池中的线程,避免了频繁创建和销毁线程2、有效控制线程最大的并发数,避免了大量的线程之间因为相互抢占系统资源导致阻塞3、简单的对线程进行管理,并提供定时执行以及指定间隔循环执行等功能简单来说线程池就是系统为我们提供的管理线程的模块原创 2021-10-11 15:51:28 · 2195 阅读 · 0 评论 -
内存泄漏和内存溢出,OOM和ANR
内存泄漏(leak memory),是指对象不使用了,本该被回收,但是这个对象被其他正在使用的对象所持有,造成无法被回收的结果。内存泄漏最终导致内存溢出。补充:内存泄漏是导致内存溢出的原因之一。当一个应用产生的内存泄漏较多时,就导致这个应用的内存超过系统分配的内存,造成内存溢出而导致应用crash。内存溢出(out of memory),是指内存不够,当app占用内存超过虚拟机最大内存就会抛出OOM异常。补充:内存溢出对app影响很大,可能造成程序闪退,无响应等。因此要优先解决OOM。内存抖动,指短原创 2021-10-10 10:06:40 · 1097 阅读 · 0 评论 -
安卓 walle 美团 瓦力 多渠道打包
加固后,下载加固包,无需签名,用wallePy工具可自动生成带签名的渠道包。。美团多渠道打包步骤app gradle文件中不需要写flavors渠道和dimension添加依赖 //多渠道打包walle implementation 'com.meituan.android.walle:library:1.1.7'工具类添加获取渠道方法/** * 获取渠道名 V2通过 walle 多渠道打包 * @param context原创 2021-08-04 14:59:49 · 679 阅读 · 0 评论 -
微信分享或登录 安卓横屏 活动被销毁
安卓在横屏的activity中使用微信分享或者登录,返回app后发现activity被销毁在manifest中,对该activity添加属性android:configChanges="orientation|keyboardHidden|screenSize"原创 2021-07-24 11:36:07 · 255 阅读 · 0 评论 -
flutter json解析 支持泛型 T
加上下面这一行即可支持泛型,fromJson和toJson也需要小改genericArgumentFactories: trueimport 'package:json_annotation/json_annotation.dart';part 'base_bean.g.dart';///genericArgumentFactories以支持泛型@JsonSerializable(genericArgumentFactories: true)class BaseBean<T&g原创 2021-06-29 17:56:03 · 1863 阅读 · 0 评论 -
flutter 用json_serializable自动生成实体类
添加依赖dev_dependencies: flutter_test: sdk: flutter build_runner: ^2.0.4 json_serializable: ^4.1.3新增文件student_bean.dart ,student_bean.g.dart注意要写 part ' ';import 'package:json_annotation/json_annotation.dart';part 'student_bean.g.dar.原创 2021-06-23 15:39:26 · 982 阅读 · 2 评论 -
nestScrollView滑动到底部
方法1(用这个就行了): 注意要 通过handler更新//滑动到底部 Handler().post { nestedScrollView.fullScroll(NestedScrollView.FOCUS_DOWN) }方法2: public static void scrollToBottom(final View scroll, final View inner) { Handler mHandler = new Handler();原创 2021-05-15 15:29:31 · 1074 阅读 · 0 评论 -
flutter dart 异步Stream 使用 定时任务
添加rxdart 依赖实现一个500ms后执行的任务1,没有返回事件Stream.fromFuture(Future.delayed( Duration(milliseconds: 500),)).listen( (event) { LogUtil.e("这里不会执行,因为没有监听到回调事件"); },).onDone(() { LogUtil.e("500ms后执行这里");});2、有返回事件Stream.fromFuture(Future...原创 2021-04-27 18:10:43 · 715 阅读 · 0 评论 -
建造者模式 Builder
data class TestBuilder(val name: String?, val sex: String?) { class Builder { private var sex: String? = null private var name: String? = null fun setName(txt: String): Builder { this.name = txt retur.原创 2021-03-16 11:43:05 · 124 阅读 · 0 评论 -
创建jks迁移标准 提示:JKS 密钥库使用专用格式。建议使用
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore 解决办法在cmd中执行命令 keytool ****** ,如果提示不存在命令则cmd切换到jdk中bin目录下执行该命令 cd c: cd ProgramFiles ...等等,知道jdk目录下的bin目录然后执行提示中的命令注意,是从 keytool -importkeystore开始,到 pkcs12 结束。也就是双引号里面的内容...原创 2020-11-27 11:37:37 · 898 阅读 · 0 评论 -
用ActivityResultContracts代替onActivityResult
一.a跳转到b,a不传递参数给b,b返回带上参数给a1.1创建 ChooseAddressContract.ktimport android.app.Activityimport android.content.Contextimport android.content.Intentimport androidx.activity.result.contract.ActivityResultContractimport com.gh.forum.ui.activity.ChooseA.原创 2020-11-11 11:51:08 · 1737 阅读 · 0 评论 -
android rxjava实现定时任务
private var mDisposable: Disposable? = null//在initVeiw中执行initLiveSocket就可以启动任务 //观看直播心跳 initialDelay:首次执行任务延迟多少 period:定时任务时间间隔 unit:时间单位 private fun initLiveSocket() { mDisposable = Observable.interval(5, 10, TimeUnit.SECONDS) ...原创 2020-08-21 10:46:25 · 1255 阅读 · 0 评论 -
android 正式包 从桌面启动 打开闪屏页
app打正式包每次从桌面点击图标都进入闪屏页,而不是还原到上次打开的页面。如果是idea直接编译就不会有这个问题解决方法,在启动页添加如下代码 @Override protected void onCreate(@Nullable Bundle savedInstanceState) { // if(!isTaskRoot()),判断该Activity是不是任务空间的源Activity // “非”也就是说是被系统重新实例化出来,如果你就放在launc原创 2020-08-04 11:21:57 · 305 阅读 · 0 评论 -
android10.0导致相册访问失败的问题 Android java.io.FileNotFoundException: open failed: EACCES (Permission denied
android10.0之后,因为使用了沙箱模式,导致图册,访问不到,图片空白最近在Android10 访问相册时一直报EACCES (Permission denied),java.io.FileNotFoundException: open failed: EACCES (Permission denied)at android.os.ParcelFileDescriptor.openInternal(ParcelFileDescriptor.java:315)...原创 2020-07-24 18:00:58 · 1550 阅读 · 1 评论 -
华为推送 的坑
1.注册华为开发者账号2.配置sha256证书密钥(必须的,否则不能获取到token),保存json文件到安卓项目3.在api管理里面打开push kit4.开通推送服务原创 2020-06-30 12:05:04 · 759 阅读 · 0 评论 -
android 免提状态通话状态
切换播放模式需要使用AudioManager.默认音频播放使用的是外放(扬声器)。AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE); 切换到听筒audioManager.setMode(AudioManager.MODE_IN_CALL);audioManager.setSpeakerphoneOn(false);切换到外放免提//切换到外放前原创 2020-06-22 10:17:45 · 1088 阅读 · 2 评论 -
后台返回json字段使用中文作为key 解析json
例如后台返回数据如下:{ "code": 0, "message": "", "data": [ { "处方单": "-----", "顺序": 4, "步骤": "前处理(全部)", "标准工艺": "----(B)", "化料助剂...原创 2020-04-28 10:27:30 · 3167 阅读 · 0 评论 -
retrofit post get请求使用request body传输
http传输,post请求使用form表单的形式的话是在api请求中用@fIeld 字段如果使用body传输,则如下:1.post请求 @POST("/api/v1/user") fun getUser(@Body body: RequestBody?): Observable<BaseBean<String>>2.model中: fu...原创 2020-04-10 11:18:33 · 4576 阅读 · 4 评论 -
retrofit okhttp 多个baseUrl 动态更换
1.新建一个拦截器import com.esquel.pad.mvp.bean.NetIpBeanimport com.esquel.pad.utils.Preferenceimport okhttp3.Interceptorimport okhttp3.Response/** * 拦截器 * 多个baseUrl 根域名下进行更换 * 给某个api接口添加headers("...原创 2020-04-10 11:12:36 · 1483 阅读 · 0 评论 -
android 打开文件管理器选择文件上传 uri转绝对路径 得到file文件
1 打开文件管理器 val intent = Intent(Intent.ACTION_GET_CONTENT) intent.type = "*/*"//设置类型,我这里是任意类型,任意后缀的可以这样写。 intent.addCategory(Intent.CATEGORY_OPENABLE) s...原创 2020-04-28 10:28:10 · 2444 阅读 · 1 评论 -
android 关闭activity进场入场动画
1.关闭入场动画1.1anim文件夹创建activity_in<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="0"> <alpha a...原创 2020-03-20 11:32:24 · 2829 阅读 · 1 评论 -
google 谷歌place 搜索地点 api
https://maps.googleapis.com/maps/api/place/queryautocomplete/json?&key=kjkutuj6868hLRdrZm4&input=广州海底捞输入文字,搜索相关地址,返回结果列表。上面的key是错误的,自行替换返回结果如下{ "predictions" : [ { ...原创 2020-03-12 15:09:00 · 916 阅读 · 0 评论 -
转载:获取android唯一识别码,标识符,设备码
转载自:https://www.jianshu.com/p/52e14654e842应用设备唯一识别码的解决方案设备唯一识别码.png唯一标识必须满足两个特性才能完美解决定位唯一设备的问题,但这个问题的解决却注定只能极限接近完美唯一性:标识必须在所有使用该应用的设备上保持唯一性 不变性:标识必须在同一设备上保持不变方向一:使用硬件标识硬件标识实际上在硬件生产之时就被要求...转载 2020-05-26 16:23:50 · 1245 阅读 · 0 评论 -
recyclerview嵌套recyclerview点击事件(拦截子rv的点击事件)
1.可以修改:列表中如果包含子列表,想要子列表保持和父列表的item点击事件一致2.可以修改:子列表点击另外响应事件1:代码: // holder.itemView.performClick() 是设置的和外部rv的点击事件一致 childRecyclerView.setOnTouchListener { view, motionEvent...原创 2020-05-26 16:23:27 · 3958 阅读 · 3 评论 -
room数据库不能存储列表解决
room不能存储列表,需要定义转换器converter如果没有定义,抛错如下:错误: Entities and Pojos must have a usable public constructor. You can have an empty constructor or a constructor whose parameters match the fields (by name ...原创 2019-12-27 20:41:48 · 1531 阅读 · 0 评论 -
android 后台运行 保活
文章不错,转载自:https://mp.weixin.qq.com/s/F7W66Y03BBTWOnsds1ZX3A优雅保活方案,原来Android还可以这样保活!Android技术杂货铺昨天作者:NanBox ,本文经作者授权转载,链接:https://juejin.im/post/5dfaeccbf265da33910a441d我们知道,Android 系统会存在杀...转载 2020-05-26 16:24:10 · 4497 阅读 · 4 评论 -
CoordinatorLayout 解决滑动不跟手问题
滑动coordinatorLayout 后不跟手,反向滑动不能暂停之前的滑动。需要在AppBarLayout使用自定义的behavior效果图首先,新建behavior文件AppBarLayoutBehavior.java import android.content.Context;import android.support.design.widget.AppBarLa...原创 2020-05-26 16:23:05 · 1247 阅读 · 0 评论 -
string字符串匹配 hashMap匹配
场景:一个字符 "红色" ,"暗红" , "鲜红",只要包含 “红” 字,就返回 0 "绿色","荷叶绿" ,只要包含绿,就返回 1用hashMap匹配/** * 匹配字符串 */fun getColor(color: String): Int { val map = HashMap<String, Int>() map["红"] =...原创 2019-12-06 11:04:16 · 798 阅读 · 0 评论 -
android 文本校验是否连续数字,是否相同数字
判断一串数字字符是否连续数字,或者相同数字,例如 123456 654321 111111 ,这种 /** * 是否是连续数字 * 是否相同数字 */ fun isOrderNumeric(numOrStr: String): Boolean { var shiLXSZ_1 = true for (i in 0 u...原创 2019-12-06 09:58:50 · 925 阅读 · 0 评论 -
string多语言文件内容去重
android 的string文件去重。将多语言文本string.xml string-en.xml 多个国际化语言的文件内容全部复制到 language.txt,对language.txt进行去重,避免某个string文件缺少某个文本。2.在项目src目录下新建文件 language2.txt。将去重后的内容写入到language2.txt3.代码如下:fun ...原创 2019-12-06 09:54:22 · 347 阅读 · 0 评论 -
amap高德地图poi附近地址查询
通过给定一个经纬度,获取附近的地理位置信息(附近地址)1.首先初始化地图 private var aMap: AMap? = null override fun initView() { //初始化地图 aMap = mapView.map //初始化定位蓝点 val myLocationStyle = MyLoc...原创 2020-05-26 16:24:40 · 1177 阅读 · 0 评论
分享