
Android
文章平均质量分 68
Android常见知识
哆啦A梦z
Android开发工程师
展开
-
Android 接入指纹识别
接入指纹框架:https://github.com/Tencent/soter。指纹识别原创 2024-02-27 17:04:04 · 1003 阅读 · 0 评论 -
Android WebView中打开外部超链接无反应
什么是外部超链接?相当于是跳转到一个新的网址页面。原创 2023-11-22 11:08:06 · 1278 阅读 · 0 评论 -
Android设置控件透明度
如下图,1A即透明度10,加在了color前面。原创 2023-11-20 11:07:55 · 1044 阅读 · 0 评论 -
DSBridge 依赖失效了
dsbridge原创 2022-11-28 11:44:33 · 1520 阅读 · 4 评论 -
再聊组件化+gradle简单语法
组件化,gradle原创 2022-10-18 16:31:17 · 1641 阅读 · 0 评论 -
Android 压缩字符串 方便二维码传输
gzip 压缩字符串 简化二维码原创 2022-09-08 10:36:45 · 1493 阅读 · 0 评论 -
Android 开源库发布到MavenCentral,jitpack (gradle-maven-publish-plugin+io.github域名)
背景如果你的aar库没有引用第三方库,也不需要远程仓库的话,只是想打成aar引用,那么看这个文章即可:https://blog.youkuaiyun.com/zx_android/article/details/111290928如果你需要把本地引用了很多个第三方库的工程变成aar供别人远程使用的话,那么就需要上传到MavenCentral了。如果你有自己的域名那么直接去看郭神的文章如果你跟我一样,懒得去申请域名,就可以继续往下看了。注册Sonatype账号Sonatype公司是负责维护Maven Cent原创 2021-12-14 19:07:55 · 2614 阅读 · 0 评论 -
Android 卡顿,ANR分析
自动化检测卡顿方法CPU Profiler 和 Systrace 都是适合线下使用的,无法带到线上。那我们如何做到线上监测卡顿呢?我们都知道一个进程中只有个Looper对象,我们通过查看Looper源码发现,在其loop方法中的死循环中有个mLogging对象,在执行的时候打印了一个Dispatching to日志,执行完成的时候有打印了一个Finished to日志。如:public static void loop() { // ....省略开始代码... for转载 2021-11-25 15:50:13 · 506 阅读 · 0 评论 -
Android 内存泄露(Memory Profiler和LeakCanary)
什么是内存泄露?按照传统定义,内存泄露属于对象,正在运行的程序无法访问这个对象,但这个对象仍然占据着内存这就叫内存泄露。这在c/c++里面的指针比较好理解。但是在kotlin和java中情况有些不同,因为这些程序是在Java虚拟机(JVM)里面运行的,在JVM中“垃圾回收(GC)”是个重要概念,虚拟机会在GC时首先确认GC Root,GC Root是一种对象,可以从堆外访问,如本地变量,运行线程等,随后,虚拟机会辨别所有可以通过GC Root访问的对象,它们将会保留。无法通过GC Root访问的变量会原创 2021-11-23 10:54:27 · 2064 阅读 · 0 评论 -
Android接入腾讯直播(二)
一、IM接入1.简单配置api 'com.tencent.imsdk:imsdk-plus:5.6.1200' ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8a" } <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="andr原创 2021-10-03 17:47:06 · 1368 阅读 · 0 评论 -
Android接入腾讯直播(一)
“小直播”是什么?小直播 App 是一套开源的完整的在线直播解决方案,它基于云直播服务、即时通信(IM)和对象存储服务(COS)构建,并使用云服务器(CVM)提供简单的后台服务,可以实现登录、注册、开播、房间列表、连麦互动、文字互动和弹幕消息等功能。我这边来个最简单的教程:第一步: 下载SDKCheckout 项目:https://gitee.com/cloudtencent/MLVBSDK下载下来以后然选择:Android/XiaoZhiBo导入Android Studio即可。第二步:创建测原创 2021-09-24 14:12:51 · 2098 阅读 · 0 评论 -
Android Unit Test 入门
这篇文章主要是讲述一些unit test基本类库中的基本方法,实践下来发现只要掌握这些基本的API,大部分的测试用例都是可以实现的,万变不离其宗。我们新建项目会自动生成这两个测试目录,androidTest和test,这两个目录的主要区别在于其一个需要连接真机/虚拟机去测试,另一个只需要运行在JVM之上,即使一个空的case放在androidTest也会触发真机运行。另一个区别是相关的库互不相通,test package下不能使用androidTestImplementation引用的库,同样androi转载 2021-09-17 18:33:30 · 2264 阅读 · 0 评论 -
Android 命令签名apk
加固apk后需要重新签名,在此记录一下签名的机制有v1,v2,v3,v4:v1:基于 JAR 签名。v2:基于Android 7.0 (24)引入。v3:基于Android 9.0 (28)引入。v4:基于Android 11 (30)引入。v1到v2的签名机制是为了解决jar签名机制存在一定的安全性问题,v3的机制,会记录我们之前的签名信息以及新的签名信息,以密钥转轮的方案,来做签名的替换和升级。下面是具体命令:1.先找到SDK\build-tools\30.0.3\lib路径,30.0.原创 2021-07-28 14:42:21 · 821 阅读 · 0 评论 -
通俗易懂RESTful,如何设计RESTful风格API
原文:https://blog.youkuaiyun.com/a78270528/article/details/78469758REST – REpresentational State Transfer 直译:表现层状态转移。这个中文直译经常出现在很多文章中。尼玛,谁听得懂“表现层状态转移”,这是人话吗?那就逐个单词来理解REST名称REST – REpresentational State T...转载 2019-01-16 09:02:55 · 227 阅读 · 0 评论 -
策略模式(注解版)实现 retrofit 的get和post请求的公共参数(二)
上篇博客 http://blog.youkuaiyun.com/zx_android/article/details/79273797,通过换汤不换药的方式把客户的switch case转移到了context中,我始终不是太满意,后来终于找到一个大神的一篇文章:设计模式学习之策略模式 得到了一个比较满意的解决。(想用纯策略模式来完全解决 if else if switch case这种需求,是做不到的,...原创 2018-02-09 13:01:34 · 911 阅读 · 1 评论 -
策略模式实现 retrofit 的get和post请求的公共参数(一)
策略模式的作用,作用是替换if,elst if ,switch case,可是为什么我就替换不了呢?比如: 图书价格,初级会员9折,高级会员打8折 通常实现:private double getPrice(int grade, double price) { switch (grade) { case 1: ...原创 2018-02-06 19:28:19 · 3096 阅读 · 0 评论 -
Android 获取控件的宽度和高度的几种方式
以ProgressBar为例: 我们先看看原始控件的宽高: <ProgressBar android:id="@+id/pb_number" style="?android:attr/progressBarStyleHorizontal" android:layout_width="match原创 2017-08-16 10:15:11 · 10951 阅读 · 0 评论 -
Nexus 5X解锁bootloader+ROOT
自用的测试机突然root不成功了,网络找了很多教程,终于找到一个靠谱的教程,特此记录一下,有些手机可能也适用一直都是是用kingroot来进行root的,可是这次突然提示我“需要root请先解锁”下面就从解锁开始: 注意: 首次解锁bootloader会清除你所有的数据。先看看未解锁的样子:解锁步骤如下: 1、打开手机 设置-关于手机-点击版本号7次,以打开“...原创 2018-02-08 08:55:15 · 10635 阅读 · 1 评论 -
Android学习笔记-Android初级 (三)android内存管理技巧
1.使用service的风险: 注意: 1.当任务正在执行的时候才运行service 2.在停止service的时候 要小心停止失败造成的内存泄露 3.不要让service在后台一直运行,用完了一定要停止 解决方法: 官方推荐使用Intenservice 特点:任务执行完后自动停止2.当界面不可以见时释放内存: 3当内存紧张时释放内存: 4避免在B原创 2016-02-02 15:13:37 · 519 阅读 · 0 评论 -
Android蓝牙开发(一):从源码看蓝牙
Android API27为例,先看下源码都要哪些类?android.bluetooth包下有有一个le包(ble低功耗相关的类),和其他类如图所示,核心类为BluetoothAdapter (本地蓝牙适配器):使用这个你可以发现其他蓝牙设备,查询已配对的设备列表BluetoothDevice (远程蓝牙设备):与远程设备的BluetoothSocket连接,或查询关于设备名称、地...原创 2019-07-12 17:48:18 · 1798 阅读 · 0 评论 -
Kotlin学习中
Kotlin学习资料汇总:官网: https://www.kotlincn.net/ https://www.kotlincn.net/docs/reference/kotlin 官方文档翻译 http://www.kotlindoc.cn/ https://github.com/huanglizhuo/kotlin-in-chinese菜鸟http://www.runoob.co原创 2017-08-24 17:37:03 · 295 阅读 · 0 评论 -
Android基础-VideoView (几行代码实现本地和网络视频播放)
下面看具体代码:activity_paly.xml&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&a原创 2018-12-04 18:03:47 · 20733 阅读 · 8 评论 -
使用DividerGridItemDecoration遇到的坑
使用很简单 mRecyclerView.addItemDecoration(new DividerGridItemDecoration(getActivity())); 就搞定了。 可是我在style.xml中加了一个 <style name="AppTheme" parent="AppTheme.Base"> <item name="android:listDivider">@原创 2016-05-12 14:04:52 · 3257 阅读 · 2 评论 -
Android 实现悬浮的几种方式(一)AppBarLayout+PtrFrameLayout
先上个图: 我所知道的有两种实现方式:AppBarLayout嵌套控制滚动区实现(目前使用的)给RecyclerView增加HeaderView显示隐藏切换实现先把引用的包放出来:compile 'com.android.support:cardview-v7:23.2.1'compile 'com.jakewharton:butterknife:7.0.1'...原创 2017-08-17 11:44:44 · 2293 阅读 · 0 评论 -
日常开发中我常用的软件
突然翻到以前的笔记,记录一下1.android studio2.刷机精灵3.iDo视频录制,制作4.GitHub客户端5.genymotion6.MarkdownPad27.有道词典8.为之笔记、有道云笔记9.Charles3.1010.Jenkins1.63411.Confluence5.1.412.SmartGit(git命令)13.cygwin(ndk使用)14.n原创 2017-03-15 16:29:34 · 552 阅读 · 0 评论 -
Android Studio 复制提示窗口里的内容
Android Studio中的代码出现错误时,会被红线标记,却无法复制的情况。代码中出错会出现如图所示的提示信息,但是鼠标选中,使用Control+C却复制不下来解决办法:鼠标点击错误的那行,然后会在底部状态栏显示,选中错误提示右键会出现copy即可。布局文件同理...原创 2021-02-03 13:53:45 · 506 阅读 · 0 评论 -
Android Studio常用小技巧
返回上一步操作:alt + leftalt + right撤销代码编辑ctrl + zctrl + y查找类:ctrl + shift + R全局查找:ctrl + h上下移动代码:alt + topalt + bottom批量修改全局某个字段的内容:Edit —— Find —— Replace in Path批量修改某个类相同字段ctrl + F批量修改某个字母:alt + 鼠标选中上下......原创 2020-11-27 18:06:01 · 485 阅读 · 0 评论 -
Android学习笔记-Android初级 (二)
1.ApacheHttpClient_Get请求package com.recycler.zx.zxrecyclerview.ApacheHttpClient;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apa原创 2016-02-02 14:53:45 · 709 阅读 · 2 评论 -
Fragment和Activity
Fragment和Activity的交互 一个Fragment的实例总是和包含它的Activity直接相关。 fragment可以通过getActivity() 方法来获得Activity的实例,然后就可以调用一些例如findViewById()之类的方法。 如: View listView = getActivity().findViewById(R.id.list); 但是注意调用转载 2016-05-17 12:33:32 · 341 阅读 · 0 评论 -
Android学习笔记-Android初级 (一)
1.Activity屏幕方向与显示方式与屏幕旋转 //代码设置横竖屏,也可以在menifest中设置 //setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//横屏 //setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);原创 2016-02-02 14:34:10 · 1282 阅读 · 0 评论 -
genymotion问题:Failed to deploy virtual device : Server returned HTTP status code 0
问题一:这个问题是你下载genymotion都下载不了 解决: 完美解决了。 问题二:不能启动已经下载好的genymotion虚拟机 查了很多资料,最后发现果然是:gost安装系统的时候,win7的原生主题被破解了,所以解决方案就是:还原win7的主题。 怎么还原呢? 第一步:找到主题的关键文件:C:\Windows\System32\uxtheme.dll 第二步:百度下原创 2016-03-17 14:02:45 · 2645 阅读 · 0 评论 -
android.graphics(一)shapes
先看下shapes的结构PathShape extends ShapeRectShape extends ShapeArcShape extends RectShapeOvalShape extends RectShapeRoundRectShape extends RectShape其中:ArcShape:扇形; OvalShape:椭圆形; RoundRectShape :圆角矩形;原创 2017-11-15 18:24:37 · 352 阅读 · 0 评论 -
Android Application中的Context和Activity中的Context的区别
原文:https://www.cnblogs.com/ganchuanpu/p/6445251.html一、Context是什么: 1、Context是维持Android程序中各组件能够正常工作的一个核心功能类,我们选中Context类 ,按下快捷键F4,右边就会出现一个Context类的继承结构图啦,如下图所示: 看下我用红线标出来的地方,从这里可以看到Activity、转载 2018-03-08 14:11:19 · 16930 阅读 · 0 评论 -
Android中menu的显示与隐藏
亲测可行: 1、初始化menu @Override public boolean onCreateOptionsMenu(Menu menu) { MenuItem more = menu.add(0, 1, 0, "输入"); more.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);原创 2017-04-05 09:12:38 · 8931 阅读 · 2 评论 -
Android学习笔记-Android初级 (四)高性能编码技巧
成员变量在堆,本地变量(也叫临时变量,它会缓存到本地,所以也叫本地变量)在栈里面,访问栈要比访问堆要快。在for循环中,不要再第二个条件中写(list.size()或者list.length()最好是在外面定义一个int length = list.getlength()缓存到本地) 最后总结:性能的提示是点点滴滴的,多水滴可成大海,每点都做到,那么性能就提升的很恐怖了原创 2016-02-02 15:26:50 · 413 阅读 · 0 评论 -
RecyclerView+ProgressBar实现简易图表
准备工作:1、引用 compile 'cn.finalteam.loadingviewfinal:ultra-pull-to-refresh:1.0.1' compile 'cn.finalteam.loadingviewfinal:loading-more-view:1.0.1' compile 'com.zhy:base-rvadapter:3.0.3' compi原创 2017-08-21 09:56:17 · 2079 阅读 · 0 评论 -
计算一个ViewGroup的嵌套层级
比如计算一个LinearLayout的嵌套层级: int i = 0; private void getParents(ViewParent view){ if (view.getParent() == null) { Log.v("tag", "最终==="+i); return; } ...原创 2018-03-14 18:24:00 · 2909 阅读 · 2 评论 -
CoordinatorLayout使用全解析
原文:https://blog.youkuaiyun.com/u012124438/article/details/56701641CoordinatorLayout是在 Google IO/15 大会发布的,遵循Material 风格,包含在 support Library中,结合AppbarLayout, CollapsingToolbarLayout等 可 产生各种炫酷的效果其实在Android S...原创 2018-11-14 15:17:35 · 254 阅读 · 0 评论 -
Android Studio 引入Eclipse格式的项目
以前看到eclipse的项目就复制src ,res ,粘贴等等。。。后来才发现我的无知原来Android Studio可以直接引入eclipse结构项目首先看下eclipse创建的老项目结构:再看下Android Studio创建的项目结构那么现在我们想要在Android Studio引入eclipse老项目就很简单了。 步骤如下:File –> New –> Import Project原创 2017-10-23 13:17:36 · 422 阅读 · 0 评论 -
OkHttp3源码分析
OkHttp3源码分析[综述]OkHttp3源码分析[复用连接池]OkHttp3源码分析[缓存策略]OkHttp3源码分析[DiskLruCache]OkHttp3源码分析[任务队列]转载 2016-02-26 17:34:26 · 1031 阅读 · 0 评论