
Android 零碎知识点记录
文章平均质量分 55
yangjunjin
这个作者很懒,什么都没留下…
展开
-
Android aidl的简单使用
好像有些手机是不行的,比如华为荣耀v30。不行的话,换个手机试试吧。原创 2023-11-26 19:22:41 · 691 阅读 · 0 评论 -
Android Studio、JDK路径配置
AS参数设置File encodings --> project encoding (utf-8) 自动显示doc文档窗口提示: editor --> general --> show quick doc on mouse move 打勾 gradle --> 设置本地安装目录,勾选离线工作 appearences --> theme (主题风格) editor --> appearance --> show line numbers、show righ原创 2021-02-03 00:33:53 · 8390 阅读 · 2 评论 -
Android 蓝牙Wifi配网
demo地址蓝牙配网:GitHub - EspressifApp/EspBlufiForAndroid: EspBlufi is based on the BLUFI protocol, which connect with IOT devices for BLE data communication, realizes device config network, and custom data transmission and reception. EspBlufi is developed and原创 2022-01-21 19:13:42 · 3995 阅读 · 0 评论 -
Android 蓝牙发现设备
public class BluetoothUtil { public static final String BLUFI_PREFIX = "MH-"; public static BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); /** * 是否支持蓝牙 * * @return */ public static boolean .原创 2022-01-21 19:06:14 · 1800 阅读 · 0 评论 -
Android 监听Wifi网络状态
1、权限 <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&g原创 2021-09-02 18:42:56 · 2499 阅读 · 1 评论 -
Android java对象的深浅拷贝
一、深拷贝public class CloneUtil { /** * 复制 * * @return */ public static <T extends Serializable> T clone(T object) { try { // 说明:调用ByteArrayOutputStream或ByteArrayInputStream对象的close方法没有任何意义 /原创 2021-07-27 16:34:52 · 398 阅读 · 0 评论 -
Android 应用切换后台,打开停留原来的页面
需要在启动页添加如下代码:比如SplashActivity @Override protected void onCreate(Bundle savedInstanceState) { // 避免从桌面启动程序后,会重新实例化入口类的activity if (!this.isTaskRoot()) { // 当前类不是该Task的根部,那么之前启动 Intent intent = getIntent(); i原创 2021-06-17 14:38:58 · 2363 阅读 · 0 评论 -
android okhttp实现文件上传进度监听
一,先来看下okhttp文件上传的写法File file = new File(Environment.getExternalStorageDirectory(), "hahah.rar");OkHttpClient httpClient = new OkHttpClient();// 构建请求 Body , 这个我们之前自己动手写过MultipartBody.Builder builder = new MultipartBody.Builder() .setT转载 2021-05-11 10:07:02 · 1109 阅读 · 0 评论 -
Android Handler为什么Looper中的Loop()方法不能导致主线程卡死?
原文链接:http://www.androidchina.net/9544.html关于 Handler 的问题已经是一个老生常谈的问题, 网上有很多优秀的文章讲解 Handler, 之所以还要拿出来讲这个问题, 是因为我发现, 在一些细节上面, 很多人还都似懂非懂, 面试的时候大家都能说出来一些东西, 但是又说不到点子上, 比如今天要说的这个问题: 为什么Looper 中的 loop()方法不能导致主线程卡死??先普及下 Android 消息机制 的基础知识:Android 的消息机制涉及了四转载 2021-03-04 00:57:55 · 444 阅读 · 1 评论 -
Android 高清加载巨图方案 拒绝压缩图片-BitmapRegionDecoder
Android 高清加载巨图方案 拒绝压缩图片一、概述距离上一篇博客有段时间没更新了,主要是最近有些私事导致的,那么就先来一篇简单一点的博客脉动回来。对于加载图片,大家都不陌生,一般为了尽可能避免OOM都会按照如下做法:对于图片显示:根据需要显示图片控件的大小对图片进行压缩显示。 如果图片数量非常多:则会使用LruCache等缓存机制,将所有图片占据的内容维持在一个范围内。其实对于图片加载还有种情况,就是单个图片非常巨大,并且还不允许压缩。比如显示:世界地图、清明上河图、微博长图等。原创 2021-01-22 01:07:51 · 473 阅读 · 0 评论 -
Android Iterator 使用
1、Map循环删除符合调条件的对象在Map中直接删除内容将抛出 java.util.ConcurrentModificationException 异常,如果要删除可以用Iterator的remove()方法。Iterator iterator = eventValues.keySet().iterator();while (iterator.hasNext()) { String key = (String) iterator.next(); if (key.equals(G.原创 2020-12-15 10:50:42 · 742 阅读 · 0 评论 -
Android NestedScrollView嵌套RecyclerView冲突
解决滑动不流畅问题//其实添加第一句代码已经双歪歪了mRecyclerView.setNestedScrollingEnabled(false);LinearLayoutManager layoutManager = new LinearLayoutManager(this);layoutManager.setSmoothScrollbarEnabled(true);layoutManager.setAutoMeasureEnabled(true);mRecyclerView.setL.原创 2020-11-13 10:48:11 · 194 阅读 · 0 评论 -
Android TabLayout控件的使用(一)
1、xml布局 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <android.support.design.widget.TabLayout andr原创 2020-11-06 17:34:54 · 975 阅读 · 1 评论 -
Android 动态切换App桌面图标
场景:有些时候,比如双十一、双十二,京东、淘宝,桌面的图标都会变更成对应的节日的图标。1、AndroidManifest.xml代码如下所示<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.test"> <application原创 2020-11-06 16:59:11 · 1208 阅读 · 0 评论 -
Android 获取粘贴板的内容
1、获取粘贴板内容,有的手机可能获取到粘贴板的内容,需要监听在onResume()添加getWindow().getDecorView() getWindow().getDecorView().post(() -> { //获取剪切板内容 checkNewPassword(); }); public static String getClipboardMsg() { String clipboardTex原创 2020-09-19 11:37:42 · 2308 阅读 · 2 评论 -
Android 应用退到后台,再次进入应用重启App问题
问题描述:退到后台再次进入应用时候,之前的页面不保留,App重新启动。解决方案:1、在App的基类BaseActivity添加方法:@Override public boolean moveTaskToBack(boolean nonRoot) { return super.moveTaskToBack(true); }2、在App的启动页onCreate()方法里添加代码:if (!this.isTaskRoot()) {原创 2020-08-11 15:08:31 · 6382 阅读 · 3 评论 -
android:imeOptions属性详解以及无效处理
一、键盘右下角的键设置(1)actionUnspecified未指定,对应常量EditorInfo.IME_ACTION_UNSPECIFIED效果:(2)actionNone 没有动作,对应常量EditorInfo.IME_ACTION_NONE效果:(3)actionGo去往,对应常量EditorInfo.IME_ACTION_GO 效果:(4)actionSearch 搜索,对应常量EditorInfo.IME_ACTION_SEARCH效果:(5)actionSend 发送,对应常量E原创 2020-07-24 15:53:29 · 7124 阅读 · 0 评论 -
Android Fragment already added 解决方式
先判断Fragment有没有被添加(isAdded),但是仅仅有这个远远达不到我们需要的,还需要为这个Fragment加一个Tag,最后发现即使加了Tag还是不行,因为如果快速的点击两个Fragment切换页面,mFragmentManager().findFragmentByTag(这个方法返回来还是null。原因就是commit()方法执行后并没有立即 add(mFragmentContainerId, fragment,Tag),就造成findFragmentByTag(xxx)读取不到内容。看一下原创 2020-06-13 16:50:43 · 4920 阅读 · 0 评论 -
Android ViewPager中嵌套Banner 导致水平滑动冲突
public class ConflictBanner extends Banner { public ConflictBanner(Context context) { super(context); } public ConflictBanner(Context context, AttributeSet attrs) { super(context, attrs); } public ConflictBanner(Cont.原创 2020-06-08 10:23:33 · 996 阅读 · 0 评论 -
Android中几种常用的定时器
一、三种常用的定时器1.Handler类的postDelayed方法: final Handler mHandler = new Handler(); Runnable r = new Runnable() { @Override public void run() { //do something //每隔1s循环执行run方法 mHandler.postDelayed(thi原创 2020-05-26 09:52:50 · 1172 阅读 · 0 评论 -
Android CC-website组件化集成的步骤
第一步:在主项目的根目录下新建cc-settings-2.gradle文件,键入以下内容:project.apply plugin: 'cc-register'//project.dependencies.add('api', "com.billy.android:cc:2.1.6") //用最新版第二步:创建一个新的Model模块1、modle的build.gradle 添加...原创 2020-03-31 01:30:45 · 792 阅读 · 0 评论 -
Android 多线程:IntentService理解和使用总结
一、Android中的IntentService1.1 主要作用执行一些高优先级的后台任务。由于属于Service,若以比单纯的线程优先级更高。1.2 原理IntentService封装了HandlerThread和一个Handler。IntentService创建时启动一个HandlerThread,同时将Handler绑定HandlerThread。所以通...转载 2020-03-22 16:56:08 · 348 阅读 · 0 评论 -
Android 多线程:线程池理解和使用总结
一、Android线程池介绍1.1 原理Android中的线程池概念来源于Java中的Executor,Executor是一个接口,真正的线程的实现为ThreadPoolExecutor。(ThreadPoolExecutor继承了AbstractExecutorService,AbstractExecutorService是ExecutorService的实现类,Execut...转载 2020-03-22 16:59:48 · 291 阅读 · 0 评论 -
Android进程优先级:等级低的就被Kill掉了
一. 定义Android系统中,当内存不足时会kill掉一些程序(或进程)来释放内存给需要运行的程序来使用。 进程的优先级越高,最后才会被kill掉,反之,最低的优先被kill。二. Android系统中存在的进程1.Zygote进程Zygote,受精卵的意思...在Android系统中,所有的系统服务进程SystemServer以及应用程序进程都是由Zygote进程Fork(孕育...转载 2020-03-22 16:57:18 · 507 阅读 · 0 评论 -
Android 多线程:HandlerThread理解和使用总结
一、Android中的HandlerThread1.1 主要作用每隔几秒钟更新数据或图片等。1.2 原理继承了Thread,实际上是一个使用Looper、Handler的线程。继承了Thread,在run()方法中通过Looper.prepare()来创建消息队列,Looper.loop()来循环处理消息。 使用时开启HandlerThread,创建Handler与...转载 2020-03-22 16:54:29 · 544 阅读 · 0 评论 -
Android 多线程:AsyncTask理解和使用总结
一、AsyncTask介绍1.1 作用:轻量级的异步类,同时方便在子线程更新UI。1.2 原理:封装了Handler和两个线程池。AsyncTask的源码链接线程池THREAD_POOL_EXECUTOR:通过ThreadFactory和一些参数实例化线程池THREAD_POOL_EXECUTOR用于执行任务。 线程池SERIAL_EXECUTOR:内部类SerialEx...转载 2020-03-22 16:51:59 · 482 阅读 · 0 评论 -
Android 多线程:Thread理解和使用总结
Android 多线程:Thread理解和使用总结Marker_Sky关注0.8182017.10.19 20:43:14字数 1,372阅读 13,258Android Thread目录.png一、Android中的Thread定义:线程,可以看作是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。1.1 Thread主要函数函数名...转载 2020-03-22 16:13:06 · 951 阅读 · 0 评论 -
Android多线程:理解和简单使用总结
原文链接:https://www.jianshu.com/p/56163a3beb4aAndroid多线程:理解和简单使用总结Android多线程目录.png一、Android中的线程1.1 定义线程,可以看作是进程的实体,CPU调度资源的基本单位。本质上是一串命令(也就是程序代码),执行线程可以理解为把命令交给操作系统去执行。Java中的线程:Java中默认一个进程只有一个...原创 2020-03-22 15:55:39 · 279 阅读 · 0 评论 -
Android Fragment使用事项
1、Activity 必须继承AppCompatActivitypackage com.heima.googledemo;import android.os.Bundle;import android.view.View;import android.widget.ImageView;import android.widget.TextView;import androidx.a...原创 2020-03-07 16:07:31 · 1103 阅读 · 0 评论 -
零碎知识记录
1、String<string name="welcome_messages">Hello, %2$s! You have %1$s %1$s new messages.</string>String textStr = getResources().getString(R.string.welcome_messages, "我是", "小明");text.s...原创 2020-03-04 11:57:25 · 181 阅读 · 0 评论 -
Android FlexboxLayoutManager 使用
//二级选择FlexboxLayoutManager managerTwo = new FlexboxLayoutManager(getBaseActivity()) { @Override public boolean canScrollVertically() { return true; }};//设置主轴排列方式managerTwo.set...原创 2019-12-27 15:26:27 · 2607 阅读 · 0 评论 -
android CoordinatorLayout 使用
向上滑动的时候头部隐藏 <androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/appW...原创 2019-12-07 15:31:22 · 486 阅读 · 0 评论 -
Android RadioGroup自动换行
public class FlowRadioGroup extends RadioGroup { private static final String TAG = "MyRadioGroup"; public FlowRadioGroup(Context context) { super(context); } public FlowRad...原创 2019-12-06 20:34:48 · 937 阅读 · 0 评论 -
Android 开发中常用的库
1、打印日志地址:https://github.com/orhanobut/logger2、张鸿洋StickyNavLayout博客:https://blog.youkuaiyun.com/lmj623565791/article/details/43649913地址:https://github.com/hongyangAndroid/Android-StickyNavLayout效果图...原创 2019-07-10 10:47:05 · 1410 阅读 · 1 评论 -
android弹出dialog 清除灰色背景 activity得到焦点
目的是为了dialog弹出来后,activity依然可以接收事件//清除灰色背景 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,WindowManage...原创 2019-11-01 14:13:28 · 1055 阅读 · 0 评论 -
Android 高德地图使用
1、自定义Marker,主要的类BitmapDescriptorBitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromView(view);BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(bitmap);2、添加多个M...原创 2019-10-29 19:17:04 · 612 阅读 · 0 评论 -
Android 广播BroadcastReceiver
1、注册广播BroadcastReceiver receiver= new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Constants.BD_EXIT_...原创 2019-05-24 07:49:17 · 367 阅读 · 0 评论 -
Android 实现ViewPager切换动画
第一种<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="ma...转载 2019-07-16 00:45:03 · 699 阅读 · 0 评论 -
android 全局修改系统字体样式
效果图对比.png工具类public class FontsUtils {/*** 设置自定义字体** @param context* @param staticTypefaceFieldName 需要替换的系统字体样式* @param fontAssetName 替换后的字体样式*/public ...转载 2019-07-17 14:24:38 · 629 阅读 · 0 评论 -
Android studio 设置
AS运行优化设置在C:\Users\Administrator\.gradle目录下创建gradle.properties文件,添加如下代码:org.gradle.daemon=truehttp://www.linuxidc.com/Linux/2015-03/115241.htmAS参数设置File encodings --> project encoding (utf...原创 2019-07-14 10:47:06 · 165 阅读 · 0 评论