![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android开发
龙德施泰.冯.置
多思考
展开
-
Android11 ADB 打开 Lanucher首页
adb shell am start -n com.android.launcher3/com.android.launcher3.uioverrides.QuickstepLauncher原创 2023-10-19 09:30:48 · 228 阅读 · 1 评论 -
MF卡协议分析
// MifareClassic 的RFID卡 8KB的一个 EEPROM// 1K: 16个分区(sector),每个分区4个块(block),每个块(block) 16个byte数据// 0-2 扇区用来存储数据, 3扇区用来存储密码// 扇区0,第0个block 不可以读写,用来存储厂商信息的 , 凯哥的卡, 扇区 前面8个字节是卡号MF卡整体结构 分区,块分区最后一个块 // 每个分区,最后一个块用来存储 改区key // 16个字节...原创 2022-05-13 10:08:15 · 586 阅读 · 0 评论 -
rk3326 android10 Launcher3 Android.mk 解读
rk3326 android10 Launcher3 Android.mk 解读## Copyright (C) 2013 The Android Open Source Project## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with the License.# You may obtain a cop.原创 2021-04-09 16:41:11 · 728 阅读 · 1 评论 -
rk3326 Android10.0系统源码修改默认授予动态权限
RK3326-Android10.0\packages\apps\PermissionController\src\com\android\packageinstaller\permission\ui\handheld\GrantPermissionsViewHandlerImpl// 添加如下代码即可 @Override public void updateUi(String groupName, int groupCount, int groupIndex, Icon icon, .原创 2021-04-07 11:27:32 · 993 阅读 · 0 评论 -
ThreadPoolExecuto 线程池 最深刻理解
线程池的理解:代码1:public class Main2 { public static void main(String[] args) throws InterruptedException { /* 参数1:核心线程数,默认启动线程数 * 参数2: 最大启动线程数 * 参数3,参数4, 线程不够的时候,启动的线程,如果60s 内没有在次执行Runnable,那么 被回收 * 参数5: 如果任务超过最.原创 2020-10-05 12:38:15 · 662 阅读 · 0 评论 -
ble 多次断开 然后搜索连接,就是连接不上
异常信息:[ERROR:bta_gattc_utils.cc(458)] bta_gattc_mark_bg_conn unable to find the bg connection mask for bd_addr=00:a0:50:c1:67:51解决: 手机蓝牙死了 ,手机重启原创 2020-07-29 10:29:52 · 2727 阅读 · 1 评论 -
Android 多媒体开发 MediaPlayer|SoundPool |MediaRecorder |Camera2| MediaProjectionManager
android支持音频格式: mp3、wav、3gp 视频: MP4、g3p 等等....1. MediaPlayer|SoundPool 使用 1.1. MediaPlayer 加载资源/** * 1.MediaPlayer create(Context context, Uri uri) * MediaPlayer create(Context context, int resid) * 上面2个方法每次调用都会 返回 MediaPlayer 对象...原创 2020-05-25 16:01:50 · 1891 阅读 · 0 评论 -
Android 动态换肤框架原理
1. Android 系统PhoneWindow 源码阅读1.1. Activity实例化 PhoneWindow Activity: final void attach(Context context, ActivityThread aThread, Instrumentation instr, IBinder token, int ident, Application application, Intent intent, A...原创 2020-05-24 20:19:06 · 2013 阅读 · 0 评论 -
Android收集奔溃信息 Thread.UncaughtExceptionHandler
Android 收集奔溃信息1.ExceptionCrashHandler implements Thread.UncaughtExceptionHandler 继承// 当App 奔溃的时候回调用这个方法 @Override public void uncaughtException(Thread thread, Throwable ex) { Log.e(TAG, "到拦截闪退信息"); // 手机信息+应用信息+ 捕获异常写入 sd...原创 2020-05-23 17:24:14 · 2130 阅读 · 0 评论 -
android 8.0 通知渠道 android8.0 Serivice服务适配
1. android 8.0 之前通知 Notification.Builder、参考博客:https://blog.csdn.net/qi85481455/article/details/82895507基本案例: public void sendNotification(View view){ // 设置点击通知启动 意图 // I...原创 2020-04-01 09:28:22 · 1157 阅读 · 0 评论 -
Tinker热修复原理实现
热修复: 方案1: 在已加载类直接替换原有方法, 在原有类的基础上进行修改,无法实现对原有类的进行方法和字段增减 AndFix 会出现部分机型 上热修复失效, 不稳定类加载方案2: APP重新启动,让ClassLoader加载新类1. App 类加载器 ClassLoader下 子类 BaseDexClassLoader 加载 dexElements(classex dex,classex2 dex.....) Elements数组: ...原创 2020-05-19 16:19:31 · 990 阅读 · 0 评论 -
Android 进程保活,点击home键 或者 点击back键盘 、锁屏、息屏保证服务器定时器不会阻塞
点击home键保证 或者 点击back键盘 、锁屏、息屏,保活,保证定时器不会被阻塞,如果用户直接杀死App,那么无法保活进程保护状态: android 进程优先级:https://www.cnblogs.com/lixiansheng/p/11359937.html前台进程可视进程: activy有弹框服务进程: activity退出,后台服务在运行后台进程: 没有服务,activity退出空进程**进程管理策略:进程启动分为 冷启动和热启动 热启动:当用户退出某...原创 2020-05-19 14:41:36 · 1138 阅读 · 0 评论 -
Android6.0运行时候权限如何解决
Android6.0运行时候全适配:1. 在功能清单文件中添加对应的权限 比如:uses-permission android:name="android.permission.CALL_PHONE" />2. 动态申请调用public void testCall(View view){ if (ContextCompat.checkSelfPermis原创 2017-01-04 15:28:47 · 279 阅读 · 0 评论 -
Android 图像处理2
图片绘制原理: 1. 绘制背景图 绘制图层 被修改的2. 修改绘制图层3. 绘制修改图层1. 案例1:微信画板布局:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.andro...原创 2020-04-02 11:06:22 · 1009 阅读 · 0 评论 -
Android 蓝牙开发中 int ->byte -> hex 转化
1. 首先理解左移、右移: 1<<1 =2 : 1左移1位, 相当于乘2,右移多少位,乘多少个21: 0000 0001 1<<1: 0000 0010 2,超出8位长度丢掉,左边补02>>1 = 1 : 右移, 右边补02: 0000 0010 2 2>>1 0000...原创 2020-04-07 15:07:29 · 1233 阅读 · 0 评论 -
Android 中 RSA、AES 加密
1. Base64 编码解码编码:结果是string 解码:结果是byte String Tag="denganzhi1"; @RequiresApi(api = Build.VERSION_CODES.O) public void base64Show(View view){ String encode = null; try {...原创 2020-04-07 10:42:39 · 626 阅读 · 0 评论 -
Android 图片优化 【 图片的二次采样】
1. 图片的二次采样,避免图片太大OOM // 避免图片太大挂了 // 默认情况下 每个 anroid 给应用分配最大 堆大小16M (VM heap) public void sendNotification(View view) { // 设置为true,那么不解析图片,获取图片部分信息 BitmapFactory.Options op...原创 2020-04-01 10:04:41 · 454 阅读 · 0 评论 -
Android下的Linux指令
1. Android架构图:底层Linxu Kernel库层LIBRARY: (SQlite、opengl|es,surfece Manager) 和 Android Delvik Vritual MachineApplication Framenwork: Activity Manager \ WiFi Manager\ Location Manager....Applic...原创 2020-03-30 21:28:47 · 535 阅读 · 0 评论 -
Android 中使用svg图片
1. svg认识 SVG:android5.0+出现,w3c推出 使用xml 描述二维图形语言,矢量图,放大缩小无影响为什么用svg,现在手机的短板是内存,不是cpu,svg通过cpu计算,png占用内存 Android上对svg进行阉割,使用Vector Drawable对svg支持,svg小2. svg语法:Vector 语法简介,如何看懂一张svg...原创 2020-03-23 12:25:44 · 2788 阅读 · 0 评论 -
Android 视频、音频 VideoView|MediaPlayer
Acticity意图注册:<activity android:name=".VideoViewActivity" android:label="置哥播放器"> <!-- 视频播放意图过滤器 --> <!-- 源码:android_source2.3\packages\apps\Gallery\AndroidManifest....原创 2020-03-17 09:26:10 · 1666 阅读 · 0 评论 -
Retrofit2实现图片上传下载携带token校验
1、 android Retrofit2 实现图片上传携带基本数据token校验1.1. 服务端代码:package com.denganzhi.project;import java.io.File;import java.io.IOException;import java.util.List;import java.util.UUID;import javax.se...原创 2020-03-12 17:07:08 · 831 阅读 · 0 评论 -
Android 设置debug,release签名 多渠道打包配置
多渠道打包Android: 1. 在 AndroidManifest.xml 的application标签中添加: 添加 <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" />2. ...原创 2020-03-10 22:20:49 · 1167 阅读 · 0 评论 -
RxJava2使用归纳总结
RXJava角色划分: observale: 被观察者 observer: 观察者 子类Subject【科目】 subscribe: 订阅 被观察者.订阅(观察者),被观察者通知观察者 被观察者类型: 热: 订阅完毕立即发送数据 冷: 创建以后,等待观察者订阅, 一旦订阅了,才发送数据1. ...原创 2020-03-09 22:36:55 · 1142 阅读 · 0 评论 -
Android与Js互调
1. WebView 使用加载网页 <uses-permission android:name="android.permission.INTERNET"></uses-permission> 1.1· 布局:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:and...原创 2020-03-08 19:46:15 · 1141 阅读 · 0 评论 -
android 中AsepectJ 使用
1.Aop实现方式: 动态代理、AspetJ 1. 加载期间 类加载 动态代理 2. 编译时 apt、操作字节码 javac aspecj(编辑器)修改.class java -----> .class ---------------------> .class修改注入 aspectJ 在 Javac编译 ...原创 2020-02-07 17:30:00 · 726 阅读 · 0 评论 -
Androi手动实现ListView+ImagLoader功能
Androi手动实现ListView+ImagLoader功能三级缓概念:一级缓存:内存缓存,bitmap对象,Map<string,Bitmap> 结构保存,可以是url二级缓存:本地(sd卡)缓存,缓存图片文件 /storage/sdcard/Android/packageName/file/图片.png三级缓存: 1,2没有那么从服务器去取三级缓存伪...原创 2020-03-08 10:09:54 · 926 阅读 · 0 评论 -
Android消息机制与异步任务
1. 消息机制: Message: 线程通信用于携带数据,数据载体 创建对象:Message.obtain(what) 属性: public int what // id标识 int arg1 Object obj // 用于数据存储 when: 当前时间+ 延迟时间(如果有)【处理时间消息】 Handler...原创 2020-03-07 20:53:12 · 473 阅读 · 0 评论 -
Android网络请求归纳 HttpUrlConnection| Vollety|OKHttp3|Retrofit2
1.网络基础知识: Android网络API库有哪些? HttpUrlConnection: jdk内置 HttpClient:android提供,6.0废弃 Volley: google 2013年提供库 HTTP请求方式:GET|POST请求|DELETE... GET请求格式: 请求行: POST /boo...原创 2020-03-07 16:08:50 · 503 阅读 · 0 评论 -
四大应用组件ContentProvider
1. 认识 ContentProvider用于应用B数据库暴露接口, A应用通过ContentResolver访问B接口,读取数据库数据 Uri格式: content: // com.example.transupportprovider/trains/122 前缀 : // 唯一标识 / 表 / 表id C...原创 2020-03-07 14:59:55 · 1788 阅读 · 0 评论 -
四大应用组件之广播
自定义广播:1. 广播静态注册 如何静态注册:1.1. 定义BroadcastReceiver广播接收者/** * 广播一旦onReceive 就是成为垃圾对象 * 下一次接收,系统重新创建广播 */public class MyReceiver extends BroadcastReceiver { @Override public void ...原创 2020-03-07 14:04:58 · 1008 阅读 · 0 评论 -
四大应用组件之Service
1. 概念理解 Service运行在后台back键,应用退出,不会停止 Service生命周期方法在主线程执行2. 启动Service和绑定Service声明周期调用2.1. 启动 Intent intent=new Intent(MainActivity.this,MyService.class); startService(...原创 2020-03-07 12:54:59 · 584 阅读 · 0 评论 -
四大应用组件之Activity
1. 意图 1.1. Intent:意图 显示意图: Intent(Context context,Class clazz) 功能: 启动Activity 1.2. 隐式意图: Intent(String action) 比如:分享选择、视频选择播放器、邮箱 注册了该action的App都可以启动接收 功能: 启动App ...原创 2020-03-07 09:11:21 · 1721 阅读 · 0 评论 -
Android 图像处理1
1. 功能介绍 基础Api: Drawable(可绘制对象), 可以对应一张位图(BitmapDrawable) 图形(ShapeDrawable) 图层(LayerDrawable) Bitmap (位图),对应内存中的.bmp,.jpg,.png Canvas: 画布 Paint: 画笔,设置字体大小、颜色、样式 Matrix: 矩阵, 用于图形平面缩放、...原创 2020-03-02 16:50:54 · 597 阅读 · 0 评论 -
yanzhenjie:permission:1.0.5 使用
权限流程图: 第一次弹出 选择拒绝-》弹出提醒对话框改权限功能-》 确定拒绝是 关闭当前页面 -》 确定拒绝否 --》继续申请该权限 第二次弹出 选择绝对不允许-》 弹出设置告诉用户需要在设置中打开权限-》 点击确定跳入设置中 第三次: 弹出跳入设置对话框,用户手动在设置中打开...原创 2020-03-01 21:14:15 · 7769 阅读 · 0 评论 -
Android 6.0+ 项目开发中用到适配功能
1:在android6.0之后使用WindowManager需要使用者认真同意跳入一个界面参考博客:https://blog.csdn.net/chenlove1/article/details/52047105 代码解决: 1、 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />...原创 2020-03-01 19:23:40 · 3267 阅读 · 0 评论 -
Android数据存储基础 安装包内部存储|SD卡存储|SD卡外部存储|sqlite数据库使用
1.Android 数据存储路径:/data/data/packageName/databases/data/data/packageName/file/data/data/packageName/shared_prefssdcard下:/storage/sdcard/Android/data/packageName : 应用卸载时删除/storage/sdcard/...原创 2020-03-01 15:34:33 · 1352 阅读 · 0 评论 -
Android如何生产导入arr包
1. 创建library,然后 Build-Rebuild Project,会在output下生成arr包 2.将aar包复制到lib目录下3. 在 module的 gradle中 BuildType中加入 repositories { flatDir { dirs 'libs' }4. 添加依赖原创 2017-01-18 09:43:53 · 767 阅读 · 0 评论 -
为什么需要v7包
v7包:1. 保证5.0以上和5.0以下控件效果一致 2.保证低版本样式和高版本样式一致 使用相同主题https://blog.csdn.net/qq_31001287/article/details/60867484 <color name="colorPrimary">#17c782</color> //导航栏颜色 <color nam...原创 2018-10-18 13:04:15 · 1418 阅读 · 0 评论 -
Mqtt qos=3 结合实际例子理解
简书地址:https://www.jianshu.com/p/8b0291e8ee02qos=2 实例说明 = 例子:App发布到网关的Topic获取网关中存储的网关下设备:步骤一: Publisher(App), app存储msg-> Publish->broker(服务器),服务器存储msg服务器回复app PUBREC,发布收到app 告诉服务器...原创 2019-04-23 20:21:21 · 1472 阅读 · 0 评论 -
Java二进制运算
2 -2 2 如何存储:0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010-2如何存储:1. 反码 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1...原创 2019-05-16 15:51:09 · 3662 阅读 · 0 评论