
android
文章平均质量分 67
云梦九章
这个作者很懒,什么都没留下…
展开
-
Android源码分析:finish, startActivity
准备知识:IdleHandler它提供了一种机制,当主线程消息队列空闲时,会执行 IdleHandler 的回调方法。至于怎么算 “空闲”,我们可以看一下 MessageQueue.next() 方法。Instrumentation用于实现应用程序测试代码的基类。当在打开仪器的情况下运行时,这个类将在任何应用程序代码之前为您实例化,允许您监视系统与应用程序的所有交互。可以通过AndroidManifest.xml的标签描述该类的实现。ActivityManager该类提供与Activity、Se原创 2021-08-11 14:58:18 · 673 阅读 · 0 评论 -
Android中播放音频六种方式
一. MediaPlayer:MediaPlayer确实强大,提供了对音频播放的各种控制,生命周期:1. MediaPlayer支持:AAC、AMR、FLAC、MP3、MIDI、OGG、PCM等格式2. 播放Raw下的元数据mMediaPlayer=MediaPlayer.create(this, R.raw.audio);mMediaPlayer.start();3. MediaPlayer设置播放源的4中方式setDataSource (String path)//从sd卡中加载原创 2021-03-05 09:55:56 · 27724 阅读 · 4 评论 -
android内存泄漏总结(总结所有导致内存泄露的可能性及解决方案)
总结所有导致内存泄露的可能性及解决方案1。 非静态内部类或匿名内部类的静态实例非静态内部类或匿名内部类会持有外部类实例的引用,如果非静态内部类的实例是静态的,就会间接的长期维持着外部类的引用,阻止被系统回收。 private static class MessageHandler extends Handler { private final WeakRe原创 2018-01-23 10:12:06 · 16501 阅读 · 0 评论 -
java.lang.RuntimeException:Canvas: trying to use a recycled bitmap
android官方:只有当您确定位图已不再使用时才应该使用 recycle()。如果您调用 recycle() 并在稍后尝试绘制位图,则会收到错误:“Canvas: trying to use a recycled bitmap”。解决方案:使用之前判断 if (bitmap != null && !bitmap.isRecycled()) { blur(bitmap, mBackgroundView); }原创 2021-01-18 14:58:10 · 5167 阅读 · 0 评论 -
Rxjava2中Scheduler说明
Scheduler家族所使用的Scheduler主要在Schedulers这个类中,RxJava仅仅提供了以下这些调度器:Schedulers.SINGLESchedulers.COMPUTATIONSchedulers.IOSchedulers.TRAMPOLINESchedulers.NEW_THREADAndroidSchedulers.MAIN_THREADSchedulers.io( ):用于IO密集型的操作,例如读写SD卡文件,查询数据库,访问网络等,具有线程缓存机制,Core原创 2021-01-15 19:33:37 · 5006 阅读 · 1 评论 -
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader
结论:一般情况为androidstudio配置问题,或者发疯问题,如果没有配置错误clean一下。解决办法:第一种、在名为B的SDK的官网中下载其它文件夹中的.so文件,并拷贝到相应的文件夹中第二种、删除文件文件夹arm64-v8a和armeabi-v7a,并且在build.gradle中android下添加指定依赖包[armeabi中so文件兼容问题,异常java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoaderDexPathLi原创 2021-01-14 16:24:52 · 5233 阅读 · 0 评论 -
android.os.Parcel.readException;ActivityRecord=null
错误日志:04-20 13:50:54.624 E/MtaSDK (30339): Caused by: java.lang.IllegalArgumentException04-20 13:50:54.624 E/MtaSDK (30339): at android.os.Parcel.readException(Parcel.java:1688)04-20 13:50:54.624 E/MtaSDK (30339): at android.os.Parcel.readException原创 2021-01-14 11:20:33 · 5841 阅读 · 0 评论 -
java.util.concurrent.TimeoutException
摘要:一旦FinalizerDaemon在处理一个对象的时候超过10s中,那么就会结束进程,导致崩溃背景:Finalize对象累积太多,导致FinalizerDaemon线程来不及处理:可能项目中没有类重写finalize方法,但Android系统中有非常多的类实现了finalize方法,如:Binder,View,Matrix,Bitmap,AssetManager等运行过程中息屏,或者某些省电模式下,系统CPU降频,FinalizerDaemon线程获得时间片短且执行速度慢导致超时某个析构函原创 2021-01-13 15:10:04 · 24124 阅读 · 1 评论 -
android项目动态方案:动态生成代码,编译注解,自定义Gradle Plugin
动态代理解释-JDK,CGLIB,JAVASSIST,ASM使用javassist生成新类javassist使用全解析原创 2021-01-11 17:42:17 · 4726 阅读 · 0 评论 -
android:监听系统时间更新
注册动态广播:时间改变监听 /** * interval update time */ private void registerUpdateTimeReceiver() { //register time update IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_TIME_TICK); filter.add.原创 2020-12-26 11:46:21 · 7558 阅读 · 0 评论 -
android:极简单,文字轮播
最基础的adapterpublic class SpeechListAdapter extends BaseAdapter { private final List<String> mData = new ArrayList<>(); private final Context mContext; public SpeechListAdapter(Context context, List<String> data) { thi原创 2020-12-07 19:53:38 · 8321 阅读 · 0 评论 -
java,android:判断当前时间是否属于该时间段
自己写的一方法 /** * judge the current time is on the time, for example: current is 11:00, startTimeStringFormat=10:00,endTimeStringFormat==12:00,you will get true * * @param startTimeStringFormat String:"HH:mm" you must follow the format原创 2020-12-04 11:16:37 · 8277 阅读 · 0 评论 -
MVP的holder变种(对比TheMvp框架异曲同工)
MVP架构的好处有很多,但是使用Activity/Fragment作为View层有如下问题,当内存不足,Activity被回收后,这使得状态的保存和恢复成为问题,因为涉及到了Model操作.生命周期的控制问题也很麻烦,需要在Presenter中写一大堆和生命周期相关的接口规范Activity中包含了很多系统服务,逻辑操作方便现在通过holder编程的思想,将view抽取,所有view层的显示操作都在holder里边,并且对需要做的点击事件传递到activity/fragment层,原创 2020-12-02 09:49:49 · 8983 阅读 · 6 评论 -
Android 代码架构总结
代码强迫症晚期患者,碰到新鲜的,觉得确实比自己写的好的,就会把自己的代码全改了,虽然碰到各种各样的坑,但是过程是很爽很爽的,极大的满足感。同时公开了很多公共依赖库,新开发的项目只需要添加一行依赖就ok了,可以快速开发应用依赖库 一。代码框架mvvm+fragmentation:1.mvvm的数据绑定各种天马行空的错误,开始的时候真的很头疼,但还是咬牙坚持下来了,mvvm可以通过一行...原创 2018-01-30 17:13:02 · 11193 阅读 · 0 评论 -
几种跨进程方法
BroadCastReceiver 由于面向整个系统注册的广播,跨进程消耗较大,性能不能保证。 ContentProvider 支持跨进程数据共享 AIDL 客户端调用AIDL接口是同步并且带返回结果的,如果执行时间较长,客户端的调用线程会一直等待。服务端执行AIDL接口是异步的,支持所有基本类型、AIDL接口、Parcelable、List、Map等类型的参数,实现起来繁琐。 Messenger 本质是AIDL通信,客户端发送Message后不带返回结果,服务端接收到Message是通过一个线程的H原创 2020-12-01 15:38:32 · 11558 阅读 · 0 评论 -
记录logcat全量日志
package com.geely.gic.rpa.sample;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.os.Environment;import android.text.TextUtils;import android.util.Log;import java.io.File;import java.io.IOExceptio.原创 2020-12-01 15:40:52 · 9569 阅读 · 0 评论 -
ubuntu打开ddms
1.找到对应环境/home/用户名/Android/Sdk/tools/lib/monitor-x86_642. 运行右键monitor运行原创 2020-05-06 11:10:50 · 9627 阅读 · 0 评论 -
android本地文件记录
import android.content.Context;import android.content.Intent;import android.os.Environment;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.text.Simpl...原创 2020-05-04 09:12:39 · 9478 阅读 · 0 评论 -
测试方法性能
import android.annotation.SuppressLint;import android.os.Environment;import java.io.File;import java.text.SimpleDateFormat;/** * the class used in test the cpu * <p> * step 1:permissi...原创 2020-11-30 19:32:11 · 9170 阅读 · 0 评论 -
java TCP链接Client base OKsoket
import com.alibaba.fastjson.JSON;import com.geely.soahmi.ui.main.beas.RootBean;import com.geely.soahmi.utils.LogTest;import com.xuhao.didi.core.iocore.interfaces.IPulseSendable;import com.xuhao.d...原创 2020-11-30 19:32:55 · 9765 阅读 · 0 评论 -
Android缓存工具:基于MMKV,可替换SharedPreferences等,可以存取几乎所有数据类型.
import android.content.Context;import com.alibaba.fastjson.JSON;import com.tencent.mmkv.MMKV;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import java.io...原创 2020-03-18 10:09:57 · 9907 阅读 · 0 评论 -
Untracked files:
先把该文件add进去,再删除1.删除:在本地项目文件夹内 右键 ->Git Base Here 进到命令行窗口 $ git rm -r --cached gradle删除target文件夹 $ git commit -m '删除了gradle' 提交,添加操作说明 $ git push -u origin master 将本次更改更新到github项目上去...原创 2018-06-25 13:39:28 · 34296 阅读 · 1 评论 -
android框架mvc,mvp,mvvm,mvpvm,mvi等了解,对比
# android的框架mvc,mvp,mvvm,mvpvm,mvi等等那么多,强迫症真的不能忍,先简单对比下,然后结果还是由大家自己做吧##首先:为什么有那么多框架? 既然框架提出,产生,流行那么必定有原因的,也没必要顺我者昌,逆我者亡,先了解对比,看不顺眼就不用,也是可以的。但是不能跟别人交流或者突然接受新代码的时候,一脸懵逼,跟一实习生一样一样~~。那tmd多尴尬------##然后...原创 2018-06-02 00:26:41 · 20993 阅读 · 0 评论 -
android 签名文件保存技巧
app module下创建keystore文件夹 创建release.keystore 创建debug.keystoreapp module 的gradle创建android{}内创建 signingConfigs { release{ storeFile file("keystore/release.keystore") ...原创 2018-06-06 21:24:47 · 19955 阅读 · 0 评论 -
android 蓝牙 ble
如果不了解androd ble就先学ble整个得大致通信流程,如果大致通信流程了解了,就利用封装好得 ble库,应该对你帮助很大。 android ble连接数据大致也没几个步骤,但是对于刚涉水蓝牙的小伙伴可能会一脸蒙蔽,怎么弄就是不成功,下边讲解,直接从代码中讲解1.封装号的核心ble通讯层,这个可以解决,完整流程通讯和长时间通讯package com.reformer.bles;i...原创 2017-09-22 12:44:18 · 31377 阅读 · 2 评论 -
android ble和ios ble 对比,低功耗蓝牙的坑对比,低功耗蓝牙的总结
1.设备的蓝牙广播 蓝牙是固定定时发送31个字节的广播。(最多31个字节,可以小于,根据公司自身需要有硬件研发烧录进去)。手机端打开蓝牙扫描,扫描到了设备的mac地址,但是这个mac地址是不能判断身份的,因为ios端每次开关蓝牙搜索到的设备mac可能都不一样。所以就需要统一固定31个字节里边的某些字节代表设备的id,当手机端搜索到了该字段就请求后台的数据判断这个设备的身份。2. 手机端的扫描 ...原创 2018-07-03 10:02:43 · 20927 阅读 · 0 评论 -
android 地图lbs架构
lbs架构的原因:客户端的地图一般都是封装一层而不是直接调用的,因为在实际运用中,手机会根据场景和服务器需求来进行地图的切换,比如从高德切换成百度deng等,如果直接调用相关api直接接入的话,那么开发,运维都是比较麻烦的,所以这样的xu需求需求了,通过统一接口,外观模式,进行封装,接入高德,百度,腾讯三家地图,通过调用不同的接口来进行切换这是大致框架和示例代码,仅供参考地图lbs...原创 2018-08-31 10:42:51 · 20379 阅读 · 0 评论 -
两个图片设置坐标值,解决两个图片重叠:根据坐标值修正算法
public CarBean filterOver(CarBean carBean) { int diagonal = (int) Math.sqrt(Math.abs(carBean.x) * Math.abs(carBean.x) + Math.abs(carBean.y) * Math.abs(carBean.y)); if (y0 / x0 >=...原创 2018-12-26 17:03:44 · 20129 阅读 · 0 评论 -
android环境,java环境。万能log,自动开关log,自动disk存储,log回放
项目地址:https://github.com/wangfeixixi/LogXixiLogXixi# LogXixi用于Android环境,java环境的log打印,可打印任何类型数据,根据android项目环境debug环境自动打开,release环境自动关闭android环境log打印,规范bean对象,json,xml对应log,crash捕捉,disk存储 log crash,...原创 2019-06-19 17:02:03 · 32086 阅读 · 0 评论 -
Manifest merger failed with multiple errors, see logs解决原理
碰见所有的错误第一时间要先查看错误log,不查看瞎猜是没办法进行的方法一:在项目根目录下,运行命令行,查看详情:mac:./gradlew clean build --info windows:gradlew.bat clean build --info方法二:通过as自身工具查看:步骤1:相信这是大家经常看到的吧,通过这个界面点击很难查看出错误原因的,需要合并...原创 2019-06-27 09:26:38 · 32535 阅读 · 0 评论 -
android相关技术问题总结
android基础activity生命周期总结android优化:冷启动优化: 冷启动就是在启动应用前,系统中没有该应用的任何进程信息 热启动:用户使用返回键推出应用,然后马上又重新启动应用 1.减少onCreate()方法的工作量 2.不要让Application参与业务的操作 3.不要在Application进行耗时操作 4.不要以静态变量的...原创 2019-09-09 20:04:47 · 9583 阅读 · 0 评论 -
支付宝小程序(ble 适配android和ios) 入门一
公司项目设计蓝牙ble门禁的设备,范围拓展到支付宝小程序内,写小程序的人不管是android还是ios都是需要适配对方os的,如果是前端的话,可能更是一脸蒙蔽的,我是android,在适配ios遇到了很多坑.完成一次开门是分包发送两次数据的, 废话不多说,直接上代码,原创 2017-09-22 11:24:34 · 21669 阅读 · 8 评论