![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序员
文章平均质量分 86
m0_64383081
这个作者很懒,什么都没留下…
展开
-
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 · 1747 阅读 · 0 评论 -
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 · 321 阅读 · 0 评论 -
Android应用ViewDragHelper详解及部分源码浅析,kotlin版权
【工匠若水 http://blog.csdn.net/yanbober 未经允许严禁转载,请尊重作者劳动成果。私信联系我】3 ViewDragHelper局部源码浅析==========================上面的例子中我们可以知道,使用ViewDragHelper的第一步就是通过他提供的静态工厂方法create获取实例,因为ViewDragHelper的构造方法是私有的。既然这样那我们先看下这些静态工厂方法,如下:public class ViewDragHelper {public原创 2021-12-17 15:47:29 · 516 阅读 · 0 评论 -
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 · 259 阅读 · 0 评论 -
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 · 555 阅读 · 0 评论 -
Android 六大布局,BAT大厂面试基础题集合
二、相对布局(RelativeLayout常用)RelativeLayout是一个视图组,每个子组件位置是相对的,可以相对于同一层级下其他控件,也可以相对于父控件。RelativeLayout是用于设计用户界面的非常强大的实用程序,因为它可以消除嵌套视图组并保持布局层次结构平坦,从而提高性能。如果你发现自己使用了多个嵌套LinearLayout组,则可以将它们替换为单个RelativeLayout。定位视图RelativeLayout让子视图指定它们相对于父视图或彼此的位置(由 ID 指定)。因此原创 2021-12-17 13:52:22 · 184 阅读 · 0 评论 -
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 · 300 阅读 · 0 评论 -
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 · 124 阅读 · 0 评论 -
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 · 1635 阅读 · 0 评论 -
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 · 1495 阅读 · 0 评论 -
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 · 625 阅读 · 0 评论 -
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 · 2715 阅读 · 0 评论 -
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 · 353 阅读 · 0 评论 -
Android livedata 源码解剖,android路由器
首先,我们先来看一下它的 observe 方法,首先通过 owner.getLifecycle().getCurrentState() 获取状态,判断是否已经被销毁,如果已经被销毁,直接返回。接着用 LifecycleBoundObserver 包装起来。然后从缓存的 mObservers 中读取 observer,如果有,证明已经添加过了。observe 方法,小结起来就是判断是否已经销毁,如果销毁,直接移除用 LifecycleBoundObserver 包装传递进来的 observer原创 2021-12-16 11:43:22 · 546 阅读 · 0 评论 -
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 · 2481 阅读 · 0 评论 -
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 · 196 阅读 · 0 评论 -
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 · 387 阅读 · 0 评论 -
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 · 145 阅读 · 0 评论 -
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 · 113 阅读 · 0 评论 -
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 · 326 阅读 · 0 评论 -
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 · 449 阅读 · 0 评论 -
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 · 294 阅读 · 0 评论 -
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 · 182 阅读 · 0 评论 -
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 · 480 阅读 · 0 评论 -
Android Glide 的简单使用(一),Android面试题及答案
深度的生命周期集成,以确保仅优先处理活跃的Fragment和Activity的请求,并有利于应用在必要时释放资源以避免在后台时被杀掉。Glide基本用法=========with 传入的可以是当前上下文的对象。load 加载图片,图片可以是本地图片,应用资源的图片也可以是一张网络图片。placeholder 占位符是在请求正在进行时,显示的图片。error 当请求永久失败时,会显示设置图片。into 传入要展示图片的控件。transform 用来完成剪裁(切圆).原创 2021-12-15 10:23:33 · 4055 阅读 · 0 评论 -
android ble 某些手机连接不上,又不知道什么原因,填坑吧
2)更好的办法是,当手机端onServiceDiscovered触发后,并且service,Characteristic都初始化好后,发送指令给蓝牙硬件设备(即writeCharacteristic)表示手机端已经准备好,可以发送数据给我了,蓝牙硬件设备收到后再发送数据,这样能很好的保证数据不丢失。最好的办法是1)和 2)的结合,即发送准备好的指令,然后让智能硬件发送数据,然后在接收数据的过程中,使用ACK机制确保数据没有任何丢失。4… Read/Write Characteristic/Descr原创 2021-12-15 10:19:56 · 373 阅读 · 0 评论 -
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 · 73 阅读 · 0 评论 -
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 · 93 阅读 · 0 评论 -
Android 2020-2021年 最新面试题(附个人面试经历),深入浅出Android
随着时间的流逝,很多人说互联网这一块前景已经不好了,随着互联网红利期的过去,Android开发进入了平稳发育期,砸钱的时代已经过去,因为前两年红利期还没过去的影响,还是有一大批人进军互联网,人多了,自然就不好做了,这点我深有体会。2020.05月,本人离职(此时4年工作经验,深圳就职),开始试水安卓市场,寻求一份合适自己,稳定的中大型公司。投了很多公司,面试机会并不是我想象中的那么多,即时面试过程顺利,也没有获得offer(候选人太多太多)。不过借此机会,前前后后我面了10家公司,现在就把我遇到的面试题,原创 2021-12-15 10:12:25 · 129 阅读 · 0 评论 -
Android应用开发性能优化完全分析,完美收官
可以看见,上面这些导致卡顿的原因都是我们平时开发中非常常见的。有些人可能会觉得自己的应用用着还蛮OK的,其实那是因为你没进行一些瞬时测试和压力测试,一旦在这种环境下运行你的App你就会发现很多性能问题。2-3 应用UI卡顿分析解决方法分析UI卡顿我们一般都借助工具,通过工具一般都可以直观的分析出问题原因,从而反推寻求优化方案,具体如下细说各种强大的工具。2-3-1 使用HierarchyViewer分析UI性能我们可以通过SDK提供的工具HierarchyViewer来进行UI布局复杂程度及冗余等原创 2021-12-14 11:50:42 · 623 阅读 · 0 评论 -
Android应用开发-小巫CSDN博客客户端之嵌入有米广告,kotlin匿名内部类持有外部对象
libs对应集成时需要的库说实在集成SDK并没有什么技术含量,只要你按照渠道提供的开发文档,自己试一遍,基本上就没有什么疑惑了。有米给我们提供了以下几种广告类型:广告条,也称横幅插屏广告积分墙广告然而横幅广告有两种形式,一种是以XML形式布局,另一种是以代码形式布局。配置有米权限:<uses-permission android:name="android《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》【docs.qq.原创 2021-12-14 11:48:57 · 120 阅读 · 0 评论 -
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 · 247 阅读 · 0 评论 -
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 · 316 阅读 · 0 评论 -
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 · 861 阅读 · 0 评论 -
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 · 650 阅读 · 0 评论 -
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 · 141 阅读 · 0 评论 -
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 · 745 阅读 · 0 评论 -
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 · 591 阅读 · 0 评论 -
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 · 481 阅读 · 0 评论 -
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 · 118 阅读 · 0 评论