自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(181)
  • 收藏
  • 关注

原创 Android应用开发进阶,2021Android最新大厂面试真题

第1章 自定义控件1.1 View的绘制流程1.1.1 View和ViewGroup1.1.2 View的绘制流程1.1.3 ViewGroup的绘制流程1.1.4 View绘制流程深入解析1.2 View的触摸事件1.2.1 触摸事件的类型1.2.2 触摸事件的传递过程1.2.3 事件传递细节1.3 自定义控件常用方法总结1.3.1 绘制流程相关1.3.2 事件处理相关1.3.3 其他1.4 自定义控件案例1.4.1 柱状图1.4.《Android学习笔记总结+最新移动

2021-12-17 15:50:52 1723

原创 Android应用开发-小巫CSDN博客客户端之获取评论列表,看完跪了

博客评论列表@author wwj_748*/public class BlogCommentActivity extends Activity implementsIXListViewRefreshListener, IXListViewLoadMore {private XListView listView;private CommentAdapter adapter;private ProgressBar progressBar;private ImageView re..

2021-12-17 15:49:13 297

原创 Android应用ViewDragHelper详解及部分源码浅析,kotlin版权

【工匠若水 http://blog.csdn.net/yanbober 未经允许严禁转载,请尊重作者劳动成果。私信联系我】3 ViewDragHelper局部源码浅析==========================上面的例子中我们可以知道,使用ViewDragHelper的第一步就是通过他提供的静态工厂方法create获取实例,因为ViewDragHelper的构造方法是私有的。既然这样那我们先看下这些静态工厂方法,如下:public class ViewDragHelper {public

2021-12-17 15:47:29 498

原创 Android 图像处理,2021年这些高频面试知识点最后再发一次

Duang Duang~学习一下原理:Matrix:其中e,j,o,t为偏移量aR+bG+cB+dA+efR+gG+hB+iA+jkR+lG+mB+nA+opR+qG+rB+sA+t=R1G1B1A1在onCreate函数中用post来获取组件的宽高:mGroup.post(new Runnable() {@Overridepublic void run() {mEtWidth = mGroup.getWidth() / 5;mEtHeight = mGroup.get

2021-12-17 14:00:05 239

原创 Android 关于佳博和汉印蓝牙热敏打印机开发,kotlin爬虫app

Log.e(TAG, “printCPCL: =======>443”);if (PrinterHelper.IsOpened()) {Log.e(TAG, "run: " + PrinterHelper.IsOpened());//连接成功PrinterHelper.Align(PrinterHelper.CENTER);PrinterHelper.SetBold(“1”);PrinterHelper.SetMag(“2”, “2”);PrinterHelper.Text(Printe

2021-12-17 13:54:22 531

原创 Android 六大布局,BAT大厂面试基础题集合

二、相对布局(RelativeLayout常用)RelativeLayout是一个视图组,每个子组件位置是相对的,可以相对于同一层级下其他控件,也可以相对于父控件。RelativeLayout是用于设计用户界面的非常强大的实用程序,因为它可以消除嵌套视图组并保持布局层次结构平坦,从而提高性能。如果你发现自己使用了多个嵌套LinearLayout组,则可以将它们替换为单个RelativeLayout。定位视图RelativeLayout让子视图指定它们相对于父视图或彼此的位置(由 ID 指定)。因此

2021-12-17 13:52:22 174

原创 Android 中高级面试题:Activity是如何实现LifecycleOwner的?

2、ReportFragmentSupportActivity在onCreate为自己添加了ReportFragment:@RestrictTo(LIBRARY_GROUP)public class SupportActivity extends Activity implements LifecycleOwner {// …@Override@SuppressWarnings(“RestrictedApi”)protected void onCreate(@Nullable Bundle s

2021-12-17 13:50:46 291

原创 Android 中自定义软键盘,2021年大厂Android高级面试题分享

int maxSize_ = 18;double maxValue_ = -1;double minValue_ = -1;String alartInfo = “”;// 输入框的输入限制类型private int inputType_;String TextType = “”;/* input not support “.” */Paint form_;String attrName_;String attrValue_;boolean attrSave_;String isEn

2021-12-17 13:48:56 112

原创 android zbar二维码扫描(中文不乱码),12道Android高级面试题

zbar跟zxing的比较:1、扫描速度来说zbar貌似略胜一筹(没有进行过多的测试,下结论有点早)2、集成时间来讲zbar也更快一些,除了jar,几个so库,java文件只有一个3、zbar没有生成二维码功能如果只做二维码扫描,zbar更简单省事儿一些开头提到了笔者是通过上面大神的文章才开始了解zbarzbar只有一个java文件,Viewfinder.java看了代码之后感觉边框通过图片来加载有点死板,.9图片也可以  对于边框和四个角笔者更倾向于直接画出来,想zxing那样

2021-12-17 13:47:17 1617

原创 Android wifi属性简介 及 wifi信息获取(wifi列表、配置信息

addNetwork(WifiConfiguration config) 添加一个config描述的WIFI网络,默认情况下,这个WIFI网络是DISABLE状态的。calculateSignalLevel(int rssi , int numLevels) 计算信号的等级compareSignalLevel(int rssiA, int rssiB) 对比网络A和网络B的信号强度createWifiLock(int lockType, String tag) 创建一个WIFI 锁,锁定当前的WIFI

2021-12-17 13:45:24 1481

原创 android图片加载库Glide4使用教程(项目中如何快速将Glide3替换成Glide4)

RequestOptions options2 = new RequestOptions()//禁用内存缓存.skipMemoryCache(true)//硬盘缓存功能.diskCacheStrategy(DiskCacheStrategy.NONE);Glide.with(this.getApplicationContext()).load(url).apply(options2).into(mImage);指定加载格式GIFGlide.with(this.getApplicati

2021-12-16 13:38:23 618

原创 Android OpenCV(三十一),移动开发框架选择

击中不击中击中击不中变换是比图像腐蚀要求更加苛刻的一种形态学操作,图像腐蚀只需要图像能够将结构元素中所有非0元素包含即可,但是击中击不中变换要求原图像中需要存在与结构元素一模一样的结构,即结构元素中非0元素也需要同时被考虑。APIpublic static void morphologyEx(Mat src, Mat dst, int op, Mat kernel, Point anchor, int iterations, int borderType, Scalar borderValue)

2021-12-16 11:49:05 2694

原创 Android monkey 命令详解,Android性能优化常见问题

2. 操作的约束,如通过包名限制哪些应用可以被测试。3. 事件的类型和频率,如点击事件占比多少、触摸事件又占多少以及事件之间的间隔时间等。4. 调试选项,如是否忽略crashes、ANR等。下面以测试小例子的形式对上面的命令进行详细讲解:adb shell monkey 或者 adb shell monkey -help查看help得到的monkey选项命令比google官网中的要多一些,主要是一些更高级的命令,如通过脚本文件进行monkey测试等。adb shell monkey

2021-12-16 11:45:36 344

原创 Android livedata 源码解剖,android路由器

首先,我们先来看一下它的 observe 方法,首先通过 owner.getLifecycle().getCurrentState() 获取状态,判断是否已经被销毁,如果已经被销毁,直接返回。接着用 LifecycleBoundObserver 包装起来。然后从缓存的 mObservers 中读取 observer,如果有,证明已经添加过了。observe 方法,小结起来就是判断是否已经销毁,如果销毁,直接移除用 LifecycleBoundObserver 包装传递进来的 observer

2021-12-16 11:43:22 534

原创 Android JNI 进阶(含完整 Demo),flutter蓝牙

// jsize GetArrayLength(jarray array)jsize j_size = env->GetArrayLength(arg5);for (int i = 0; i < j_size; i++) {//jobject GetObjectArrayElement(jobjectArray array, jsize index)jstring j_string2 = static_cast(env->GetObjectArrayElement(arg5, i)

2021-12-16 11:41:21 2461

原创 Android ImageView及其子类 介绍+实例,腾讯、字节跳动面经已发

从上图可以看出 ImageView继承自View组件,它的主要功能用于显示任何Drawable对象。除此之外ImageView还派生了三个ImageButton、QuickContactBadge、ZoomButton组件。ImageView支持的常用XML属性ImageView.ScaleType所支持的常量ImageView加载图片为了控制ImageView显示的图片,ImageView提供了如下方法:setlmageBitmap(Bitmap bm):使用Bitmap位图设置该

2021-12-16 11:39:45 185

原创 Android HTTPS 自制证书实现双向认证(OkHttp + Retrofit + Rxjava)

由于Retrofit是基于OkHttp实现的,因此想通过Retrofit实现HTTPS需要给Retrofit设置一个OkHttp代理对象用于处理HTTPS的握手过程。代理代码如下:OkHttpClient okHttpClient = new OkHttpClient.Builder().sslSocketFactory(SSLHelper.getSSLCertifcation(context))//为OkHttp对象设置SocketFactory用于双向认证.hostnameVerifier(new

2021-12-16 11:37:55 380

原创 Android Handler相关面试题你能答对多少?子线程和主线程是如何切换的?

public static Message obtain() {synchronized (sPoolSync) {if (sPool != null) {Message m = sPool;sPool = m.next;m.next = null;m.flags = 0; // clear in-use flagsPoolSize–;return m;}}return new Message();}2.当Activity有多个Handler的时候,Message消息是否会混乱?怎

2021-12-16 11:36:17 136

原创 Android Handler源码浅析,Android进阶之光

public void handleMessage(Message msg) {super.handleMessage(msg);Log.d(“lkx”, (String) msg.obj);}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_handler);}/**点击发

2021-12-16 11:34:24 105

原创 Android动态权限总结,2021最新网易Android面经

这两个方法都是检查权限是否获取的方法,但ContextCompat.checkSelfPermission在某些系统上(如基于Android8.0的MIUI10检查短信权限时)有bug, 不能准确判断权限是否已获取,此时可结合PermissionChecker.checkSelfPermission进行判断, 所以判断权限是否已获取可采用以下实现:public static boolean hasPermission(@NonNull Context context, @NonNull String pe

2021-12-15 12:18:25 291

原创 android动态拼接生成界面 ,大量界面,看完这篇

if (mIntentFrom == FLAG_SHOW) {mItemOneValueEt.setEnabled(false);}mItemOneValueEt.setText(formDetail.getuValue());mItemOneValueEt.setTag(formDetail.getTableDetailID());mItemOneFieldTv.setText(formDetail.getCaption());mTypeOneView.setTag(mType);linea

2021-12-15 12:16:41 425

原创 android okhttp异步请求使用详解 (2),太牛了

HTTP/2 支持允许对同一主机的所有请求共享同一个socket。连接池可减少请求延迟(如果 HTTP/2 不可用)。透明 GZIP 可缩小下载大小。响应缓存可完全避免重复请求的网络。okhttp导入okhttp官网地址OkHttp 3.12.x 及以下的版本支持 Android 2.3+(API 级别 9+)和 Java 7+。同时还要导入okhttp依赖的okio库,而Okio在1.x版本是基于Java实现的,2.x则是Kotlin实现的。这里我的Android版本是2..

2021-12-15 10:29:15 286

原创 Android LayoutInflater,vivo安卓开发面试

inflate()及其重载有如下几个:View inflate(@LayoutRes int resource, @Nullable ViewGroup root)View inflate(@LayoutRes int resource, @Nullable ViewGroup root, boolean attachToRoot)View inflate(XmlPullParser parser, @Nullable ViewGroup root)View inflate(XmlPullPars

2021-12-15 10:27:23 154

原创 Android Gson使用详解,android中级工程师面试题

例如,修改 User 类,为 name 声明 SerializedName 注解,注解值为 userName/**作者:chenZY时间:2018/3/17 18:32描述:https://github.com/leavesC*/public class User {@SerializedName(“userName”)private String name;private int age;private boolean sex;}在序列时,Json 格式就会相应改变publi

2021-12-15 10:25:47 469

原创 Android Glide 的简单使用(一),Android面试题及答案

深度的生命周期集成,以确保仅优先处理活跃的Fragment和Activity的请求,并有利于应用在必要时释放资源以避免在后台时被杀掉。Glide基本用法=========with 传入的可以是当前上下文的对象。load 加载图片,图片可以是本地图片,应用资源的图片也可以是一张网络图片。placeholder 占位符是在请求正在进行时,显示的图片。error 当请求永久失败时,会显示设置图片。into 传入要展示图片的控件。transform 用来完成剪裁(切圆).

2021-12-15 10:23:33 4012

原创 android ble 某些手机连接不上,又不知道什么原因,填坑吧

2)更好的办法是,当手机端onServiceDiscovered触发后,并且service,Characteristic都初始化好后,发送指令给蓝牙硬件设备(即writeCharacteristic)表示手机端已经准备好,可以发送数据给我了,蓝牙硬件设备收到后再发送数据,这样能很好的保证数据不丢失。最好的办法是1)和 2)的结合,即发送准备好的指令,然后让智能硬件发送数据,然后在接收数据的过程中,使用ACK机制确保数据没有任何丢失。4… Read/Write Characteristic/Descr

2021-12-15 10:19:56 347

原创 Android Ashmem匿名共享内存,35岁技术人如何转型做管理

/**创建 MemoryFile 并返回 ParcelFileDescriptor*/private fun createMemoryFile(): ParcelFileDescriptor? {// 创建 MemoryFile 对象,1024 是最大占用内存的大小。val file = MemoryFile(“TestAshmemFile”, 1024)// 获取文件描述符,因为方法被标注为 @hide,只能反射获取val descriptor = invokeMethod(“getFi

2021-12-15 10:18:06 64

原创 Android 4,三面蚂蚁核心金融部

注意:现阶段你不能在Window级别对它禁用硬件加速。1.1.4 View级别我们可以对单独的View在运行时阶段禁用硬件加速。我们可以使用如下代码:myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);注意:现阶段不能够在View级别进行硬件加速。1.2 判断一个View是否已经启用了硬件加速有时候我们需要知道一个应用程序是否已经启用了硬件加速,特别是针对一些自定义控件。因为你的应用程序做了很多自定义“画”的操作,但并不是所有的过

2021-12-15 10:14:34 85

原创 Android 2020-2021年 最新面试题(附个人面试经历),深入浅出Android

随着时间的流逝,很多人说互联网这一块前景已经不好了,随着互联网红利期的过去,Android开发进入了平稳发育期,砸钱的时代已经过去,因为前两年红利期还没过去的影响,还是有一大批人进军互联网,人多了,自然就不好做了,这点我深有体会。2020.05月,本人离职(此时4年工作经验,深圳就职),开始试水安卓市场,寻求一份合适自己,稳定的中大型公司。投了很多公司,面试机会并不是我想象中的那么多,即时面试过程顺利,也没有获得offer(候选人太多太多)。不过借此机会,前前后后我面了10家公司,现在就把我遇到的面试题,

2021-12-15 10:12:25 118

原创 Android应用开发性能优化完全分析,完美收官

可以看见,上面这些导致卡顿的原因都是我们平时开发中非常常见的。有些人可能会觉得自己的应用用着还蛮OK的,其实那是因为你没进行一些瞬时测试和压力测试,一旦在这种环境下运行你的App你就会发现很多性能问题。2-3 应用UI卡顿分析解决方法分析UI卡顿我们一般都借助工具,通过工具一般都可以直观的分析出问题原因,从而反推寻求优化方案,具体如下细说各种强大的工具。2-3-1 使用HierarchyViewer分析UI性能我们可以通过SDK提供的工具HierarchyViewer来进行UI布局复杂程度及冗余等

2021-12-14 11:50:42 606

原创 Android应用开发-小巫CSDN博客客户端之嵌入有米广告,kotlin匿名内部类持有外部对象

libs对应集成时需要的库说实在集成SDK并没有什么技术含量,只要你按照渠道提供的开发文档,自己试一遍,基本上就没有什么疑惑了。有米给我们提供了以下几种广告类型:广告条,也称横幅插屏广告积分墙广告然而横幅广告有两种形式,一种是以XML形式布局,另一种是以代码形式布局。配置有米权限:<uses-permission android:name="android《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》【docs.qq.

2021-12-14 11:48:57 111

原创 Android WebView详解和调用JS,android开发游戏加入时间限制

(3)创建一个自己的WebViewClient,通过setWebViewClient关联//覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开mWebView.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {//返回值是true的时候控制去WebView打开,为false调用系统浏

2021-12-14 10:01:29 233

原创 Android Volley:使用方法总结及实例解析,一线互联网移动架构师360°全方面性能调优

getRequestQueue().add(request);}public void cancelPendingRequests() {if (mRequestQueue != null) {mRequestQueue.cancelAll(TAG);}}}2. 需要一个Cache来缓存请求的图片:public class LruBitmapCache extends LruCache<String, Bitmap> implements ImageLoader.ImageCa

2021-12-14 09:59:36 308

原创 Android Studio记录在使用过程遇到的各种问题及解决,2021大厂Android开发面试总结+解答

classpath ‘com.neenbedankt.gradle.plugins:android-apt:x.x’classpath ‘me.tatarka:gradle-retrolambda:x.x.x’在module的build.gradle中删除apply plugin: ‘com.neenbedankt.android-apt’apply plugin: ‘me.tatarka.retrolambda’将module的build.gradle文件中的dependency改为annot

2021-12-14 09:53:45 855

原创 Android Studio的安装与配置(解决新手入门所遇到的大部分问题)

Android Studio 是开发 Android 应用程序的官方 IDE,基于 Intellij IDEA。你可以从官网**https://developer.android.google.cn/studio/** 下载下载最新版本的《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享Android Studio。如果你是在 Windows 上安装 Android Studi

2021-12-14 09:52:09 643

原创 Android Studio和ADT使用技巧,app优化的内容及策略

高大上……之前用Eclipse习惯了,换到IntelliJ难道要重新适应快捷键?不需要,我们把快捷键方案换到Eclipse即可,过程如下:File>Settings>KeyMap ,这里可以根据我们的习惯进行修改定制:赞。交互和速度方面感觉都比Eclipse要好一些,难怪官方推荐。总结一下Android Studio的使用小技巧:1.定位到当前打开文件:如上图A按钮,Scroll from Source2.折叠所有打开的树图如上图B标示,Collplase All3.将

2021-12-14 09:50:19 132

原创 Android Studio仿微信图片选择器(增加删除)功能,flutterlistview动态配置

android:layout_margin=“4dp”android:orientation=“vertical”><ImageViewandroid:id="@+id/imageView6"android:layout_width=“100dp”android:layout_height=“100dp”android:adjustViewBounds=“true”android:scaleType=“centerCrop”android:layout_gravity=“cent

2021-12-14 09:48:41 733

原创 Android SDK 提供的3套音频播放的API之窥探AudioTrack,终局之战

参数streamType:媒体类型STREAM_VOICE_CALL, STREAM_SYSTEM, STREAM_RING, STREAM_MUSIC, STREAM_ALARM, STREAM_NOTIFICATIONsampleRateInHz:参数sampleRateInHz:采样率,有8000、20100等,一般来说越高音质越好,但文件体积就越大channelConfig:参数channelConfig:声道,单声道CHANNEL_OUT_MONO 和双声道 CHANNEL_OUT

2021-12-14 09:46:47 584

原创 Android MaterialButton使用详解,告别shape、selector

引入material包implementation ‘com.google.android.material:material:1.2.1’常规<com.google.android.material.button.MaterialButtonandroid:layout_width=“wrap_content”android:layout_height=“wrap_content”android:text="@string/app_name"android:textAllCaps=“

2021-12-14 09:44:38 474

原创 Android应用AsyncTask处理机制详解及源码分析,android入门零基础

【工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处,尊重分享成果】2 实例演示先看下使用AsyncTask模拟下载的效果图:看下代码,如下:public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.

2021-12-13 11:58:35 109

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除