![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android——暂未分类
文章平均质量分 67
未分类
wzj_what_why_how
逆水行舟,不进则退,知行合一,稳健上进。
展开
-
关于view.context引发的思考
Glide.with(view.context)的写法,是否拿到的就是Activity呢?原创 2023-08-22 15:36:22 · 152 阅读 · 0 评论 -
给自己做个工具App用用——实现一个桌面小组件
因为看到其他app很多都有桌面小组件,所以也想给自己的工具App,加入了这个新功能。所以就动手搞了,初步搭建代码整理如下。原创 2023-05-19 22:15:00 · 238 阅读 · 0 评论 -
解決Failed to connect to 127.0.0.1 port 10809 after 2163 ms: Connection refused的問題
问题:push代码的时候连接失败: Failed to connect to 127.0.0.1 port 10809 after 2163 ms: Connection refused出现这个问题的原因是之前设置过代理,然后就有些地方被乱套了。解决方案一:在这个路径下C:\Users\Administrator.gradle的 gradle.properties注释掉代码的相关代码#Thu May 05 18:05:10 GMT+08:00 2022#systemProp.http.pro原创 2022-05-21 21:00:00 · 5517 阅读 · 0 评论 -
学习JNI记录
这是我在学习写jni和使用自己写的jni demo 的项目:https://gitee.com/wzj1157362131/jni_knowledge_pooling.git总共分了三个分支:master:放在最初的demodev_note:做一些知识点做了注释说明和一些使用上的补充dev_arr:这个是用来打包成arr文件供其他项目进行调用的遇到的问题:在使用自己打得arr包到其他项目的时候,出现了这个问题:定位到问题的原因是: <application原创 2021-08-16 11:17:01 · 162 阅读 · 0 评论 -
适配:Android11存储
问题指引:只出现在Android11的机型,其他机型没有问题——排查:Error “java.io.FileNotFoundException: EPERM (Operation not permitted)”从权限管理和Android版本差异排查,最终问题依旧存在。解决:将问题定位到简单的命名上来,修改名称之后,程序运行正常。综上:Android 11 在文件命名方面做了更严格的规范,不允许使用“:”之类特殊符号。强制执行分区存储在 Android 11 上运行但以 Andro原创 2021-06-17 15:58:42 · 328 阅读 · 2 评论 -
Android:事件分发机制
一、 基础认知1.1 事件分发的对象是谁?答:事件当用户触摸屏幕时(View或ViewGroup派生的控件),将产生点击事件(Touch事件)。Touch事件相关细节(发生触摸的位置、时间、历史记录、手势动作等)被封装成MotionEvent对象主要发生的Touch事件有如下四种:MotionEvent.ACTION_DOWN:按下View(所有事件的开始)MotionEvent.ACTION_MOVE:滑动ViewMotionEvent.ACTION_CANCEL:非人为原因结束本次事件原创 2021-05-06 11:54:23 · 1414 阅读 · 0 评论 -
安卓APP升级64位架构
What最近收到了小米官方发送的安卓APP升级64位架构的通知,具体邮件如下:尊敬的开发者: 您好!为更好地提升APP性能体验,降低APP功耗影响,小米应用商店与OPPO应用商店、vivo应用商店共同推进国内安卓生态对64位架构的升级支持。行业适配节奏如下:2021年12月底:现有和新发布的应用/游戏,需上传包含64位包体的APK包(支持双包在架,和64位兼容32位的两个形式,不再接收仅支持32位的APK包)2022年8月底:硬件支持64位的系统,将仅接收含64位版本的APK包 2023年底:原创 2021-05-04 14:25:24 · 8381 阅读 · 7 评论 -
线程池
概述在我们的开发中经常会使用到多线程。例如在Android中,由于主线程的诸多限制,像网络请求等一些耗时的操作我们必须在子线程中运行。我们往往会通过new Thread来开启一个子线程,待子线程操作完成以后通过Handler切换到主线程中运行。这么以来我们无法管理我们所创建的子线程,并且无限制的创建子线程,它们相互之间竞争,很有可能由于占用过多资源而导致死机或者OOM。所以在Java中为我们提供了线程池来管理我们所创建的线程。线程池的优势①降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成原创 2021-04-28 20:05:01 · 144 阅读 · 0 评论 -
Viewpager2
首先,Viewpager2需要项目是已适配AndroidX了,因为,如需使用 ViewPager2,需要先将以下 AndroidX 依赖项添加到项目的 build.gradle 文件:dependencies { implementation "androidx.viewpager2:viewpager2:1.0.0"}相对于Viewpager,它多了以下的变更:FragmentStateAdapter 取代了 FragmentStatePagerAdapterRecyclerVi原创 2021-04-28 16:26:17 · 458 阅读 · 0 评论 -
Android——bug:not attached to a context.
今天排查了一下Bugly上记录的bug,发现了这么一条bug:what:#4 java.lang.IllegalStateExceptionFragment MineFragment{c7df2e1 (86dd7d54-ce0d-440c-8207-cbcce5f4e966)} not attached to a context.com.car.cartechpro.module.main.fragment.MineFragment.java.lang.StringgetObdDetail()(原创 2021-04-28 10:53:55 · 3312 阅读 · 0 评论 -
Android: java8
build配置:compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }Lambda表达式最简单的Lambda表达式可由逗号分隔的参数列表、->符号和语句块组成;Lambda表达式可以引用类成员和局部变量(会将这些变量隐式得转换成final的);Lambda表达式有返回值,返回值的类型也由编译转载 2021-04-19 19:53:50 · 248 阅读 · 0 评论 -
整理:反射
What:反射就是把Java类中的各个成分映射成一个个的Java对象。即在运行状态中,对于任意一个类,都能够知道这个类的所以属性和方法;对于任意一个对象,都能调用它的任意一个方法和属性。这种动态获取信息及动态调用对象方法的功能叫Java的反射机制。反射机制的相关类Class类Field类Method类Constructor类具体相关类的方法不再赘述,可以直接看源码。Java 反射机制的应用场景1.逆向代码 ,例如反编译2.与注解相结合的框架 例如Retrofit3.单纯的反射机制应原创 2021-04-16 18:08:38 · 76 阅读 · 0 评论 -
App Links[防止被App屏蔽]
What:谷歌的App Link让用户在点击一个普通web链接的时候可以打开指定app的指定页面,前提是这个app已经安装并且经过了验证,否则会显示一个打开选项的弹出框。自此,在安卓中打开一个链接的用户体验大大提高,用户可以在链接与app之间快速切换。**缺点:**使用该机制可以直接绕过intent方式,直接通过url就能打开对应的界面。不过在设置中还是能关闭这个。目前支持该功能的应用和网站还是很少。官方介绍Android App Links内容是:Android App Links are a原创 2021-04-13 17:24:09 · 308 阅读 · 0 评论 -
Android 退出程序的几种姿势
方式一:如果只是在首页,即主activity想退出手动退出程序的话,只要主activity在AndroidMainfest.xml中设置为android:launchMode="singleTask"模式即可然后在打开多级页面后,返回该activity时,只需要回到此页面,之前的多级页面也就自动关闭掉了。然后直接finish()掉即可。方式二:在开发过程中发现system.exit(0)或 Process.killProcess调用后,如果还存在activity,会导致程序杀死重启等很多问题。首先在原创 2021-04-10 13:55:01 · 981 阅读 · 2 评论 -
Android各品牌手机跳转权限管理界面
整理成工具类:/** * The type Permissions util. * * 注意事项: * 需要在第一次调用或者直接在HomeApplication中初始化 @see initPermissionsUtil(applicationId); * mApplicationId = mApplicationId 需要确认是否引入正确的包 */public class PermissionsUtil { private String mApplicationId = "";原创 2021-04-07 14:37:44 · 788 阅读 · 0 评论 -
解决在设置中修改权限,返回当前运行中的应用发生崩溃的问题
why:因为当权限发生改变后,当前程序的当前Activity会异常结束的,导致程序的数据丢失。当返回时,app会默认修复最后打开的那个界面。How:一个Activity的基类的onCreate方法中,判断savedInstanceState是否为null,如果为null,说明是正常启动,如果有数据,就是设置被修改,异常关闭情况下,程序会保存一些数据,所以在有数据的情况下,重新打开启动页。 protected void onCreate(Bundle savedInstanceState) {原创 2021-04-06 10:42:40 · 2292 阅读 · 0 评论 -
Android中drawable和mipmap存放图片的区别
想到一个问题:Android中drawable和mipmap存放图片的区别?结论:应用图标的图片资源存放在mipmap系列文件夹中,而其余图片存放在drawable系列文件夹中。drawable文件夹存储bitmap文件(png, jpeg, gif),9-patch文件和xml文件,这些文件用于描述包含多种状态(normal, pressed,focused)的可绘制形状或可绘制对象。mipmap文件夹用于存放APP的icon图标文件。Android系统会保留这个文件夹中所有的图片资源,而不原创 2021-03-26 18:17:51 · 601 阅读 · 0 评论 -
bug: Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address asso
BUG:Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)解决:最终排查到原因是因为服务端的DNS连接不上。临时方案是修改当前真机设备上的网络的IP地址等。最终方案:还是得搞服务器的同学来彻底解决这个问题。...原创 2021-03-26 11:34:17 · 2805 阅读 · 1 评论 -
HTTP1.0、HTTP1.1 和 HTTP2.0 的区别
一、HTTP的历史早在 HTTP 建立之初,主要就是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。也是说对于前端来说,我们所写的HTML页面将要放在我们的 web 服务器上,用户端通过浏览器访问url地址来获取网页的显示内容,但是到了 WEB2.0 以来,我们的页面变得复杂,不仅仅单纯的是一些简单的文字和图片,同时我们的 HTML 页面有了 CSS,Javascript,来丰富我们的页面展示,当 ajax 的出现,我们又多了一种向服务器端获取数据的方法,这些其实都是基于 HTTP转载 2021-03-13 10:37:12 · 88 阅读 · 0 评论 -
easypermissions:动态权限申请库
What:系统权限申请库,之所以想整理一下,主要是因为项目中用到了。事实上,我不太喜欢这个库。为什么呢?因为这个库其实就是在原来的Android基础权限的机制上再单纯地的套一层,在使用上并没有方便多少,回调还是特别多。因此,有机会我更倾向于换成AddPermission这个库,这个库几乎可以说将回调砍掉了(代码上,实际里面的封装依旧会去处理回调。)从代码的角度出发,配置更加便捷,更加轻松,更加直观。找个时间,整理一下我对AddPermission进一步封装后的代码哈。还有一款比较推荐的库是郭霖的Pe原创 2021-03-12 17:42:50 · 849 阅读 · 0 评论 -
module开发
新建module简单步骤:1.项目名->New->Module->Android Library->输入Module名称,即可一键生成一个module了。2.此时,新建的模块仅仅是普通模块,还需进一步手动设置成库模块。解决方案:打开模块的build.gradle文件,可以看到:apply plugin: 'com.android.application修改为: apply plugin: 'com.android.library'然.原创 2020-10-23 16:22:41 · 277 阅读 · 0 评论 -
apk更新安装
需求:apk更新安装关于下载,需要考虑的问题:1.多任务下载2.多线程下载3.断点续传4.高并发方案:自己封装URLConnection 连接请求类 使用第三方 okhttp 网络请求框架 使用第三方库liulishuo Android自定的下载管理(会在notification 显示下载的进度,同时可以暂停、重新连接等) 使用Android高能下载库FileDownloader AndroidDownloader 一个开源的多线程,多任务下载框架 等等……(第三原创 2020-10-09 17:14:08 · 557 阅读 · 0 评论 -
Android系统原理
整理一些系统原理的知识点:Dalvik虚拟机与JVM有什么区别1.Dalvik 基于寄存器,而 JVM 基于栈。2.基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。3.Dalvik执行.dex格式的字节码,而JVM执行.class格式的字节码。class和dex1.dvm执行的是dex格式文件,jvm执行的是class文件,android程序编译完之后生产class文件。然后dex工具会把class文件处理成dex文件,然后把资源文件和.dex文件等打包成ap原创 2020-08-12 14:41:58 · 585 阅读 · 0 评论