自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 4面字节跳动拿到2-2-Offer,入职就是30K16薪,全靠这份Android知识点PDF大全

自我介绍介绍下Android的mvc/mvp/mvvmview的事件分发机制viewGroup 怎么知道view有没有消费事件写一个单例模式(解释单例模式中的sync,双锁,volidate)算法题目:有A和B两个有序数组(数组元素不重复),给出sum,请找到A和B中所有相加和为sum的序列对(面头条遇到的)A:[1,4,5]B:[3,4,6]sum=8output 1,1,2,0 => because A[1]+B[1]=8 /A[2]+B[0]=8内存泄漏有哪些?怎么排查.

2022-03-19 19:55:58 604

原创 Android 知识简记 快速回顾各种知识,面试突击版

B 收到 A 结束的消息后 B 可能还没说完,没法立即回复结束标示,只能等说完后再告诉 A :我说完了。POST 和 GET 区别Get 参数放在 url 中;Post 参数放在 request Body 中Get 可能不安全,因为参数放在 url 中HTTPSHTTP 是超文本传输协议,明文传输;HTTPS 使用 SSL 协议对 HTTP 传输数据进行了加密HTTP 默认 80 端口;HTTPS 默认 443 端口优点:安全缺点:费时、SSL 证书收费,加密能力还是有限的,但是比 HTTP

2022-03-17 21:14:16 153

原创 android 制作,retrofit面试

从中我们也可以理解为什么叫“点九PNG”,其实相当于把一张png图分成了9个部分(九宫格),分别为4个角,4条边,以及一个中间区域,4个角是不做拉升的,所以还能一直保持圆角的清晰状态,而2条水 平边和垂直边分别只做水平和垂直拉伸,所以不会出现边会被拉粗的情况,只有中间用黑线指定的区域做拉伸。结果是图片不会走样二.“点九”的制作方法方法1:使用 “draw9patch”工具绘制,流程如下1. 安装工具首先你需要给自己的电脑安装上java于系统的默认目录下。没有安装java的同学可以在百度搜索:jdk

2022-03-16 22:12:27 138

原创 Android 分贝测试仪功能,华为移动终端开发

mARecorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR); //设置音频文件的编码mARecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //设置audio格式xml大致如下(重复的省略了)<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=“http://schem

2022-03-16 22:10:52 400

原创 Android 内存性能优化,androidstudiojni开发

3.1 使用Allocation Tracker我们在柱状图中,随便的截取一段,就能产生内存的分析:我们能够看到一些对象,它总共的个数、大小,我们还可以根据类、包和线程来进行排序。这些对象,分为可控和不可控两种类型:不可控一些对象是必然会产生的,是伴随着一些对象的产生而产生,并不是我们直接创建,比如我们必须的创建一个对象,而这个对象的构造函数里面会必然的形成一个 int[] 或 String或其他,在一般情况下,我们不会去考虑这些 int[]、String变量可控由我们直接的,手动

2022-03-16 22:09:18 5429

原创 Android 人脸识别,移动app软件开发工程师

.setPositiveButton(“Ok”, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int j) {FSDK.LockID(mTracker, mTouchedID);String userName = input.getText().toString();FSDK.SetName(mTracker, mTouchedID, use

2022-03-16 22:06:08 114

原创 Android面试题之Fragment篇,不得不服

4.Fragment 的 replace 和 add 方法的区别Fragment 本身并没有 replace 和 add 方法,这里的理解应该为使用 FragmentManager 的 replace和 add 两种方法切换 Fragment 时有什么不同。我们经常使用的一个架构就是通过 RadioGroup 切换 Fragment,每个 Fragment 就是一个功能模块。Fragment 的容器一个 FrameLayout,add 的时候是把所有的 Fragment 一层一层的叠加到了Fram.

2022-03-06 16:15:56 233

原创 Android面经:我在秋招中踩过的那些坑,这些问题一定要注意,kotlin静态编译

说说自己的求职吧!嗯,还是现说下自己的职业吧!我现在的职业时安卓开发。我是今年六月份毕业的,毕业后就开始找工作,找了差不多一个月才找到工作,够衰了吧!不过我觉的还好了,最近这两年是互联网寒冬,尤其是安卓行业基本已经饱和了,再加上今年疫情的原因,很多公司招人,都是要求有1-3年经验的,没有经验很难找到工作的。在毕业前我也找过工作,嗯~,准确的说就是大三暑假开始找工作的,那时主要是在某某同城上面找,因为没有安卓开发的相关经验,所以就想找个实习的岗位,投的简历也就都是实习的岗位。简历投递过后,没过几天就有人给

2022-03-06 16:14:31 93

原创 Android静态代码扫描效率优化与实践,Android源码剖析之Framwork层消息传递

针对以上的背景和问题,我们思考以下几个问题:思考一:现有插件包含的扫描工具是否都是必需的?扫描工具对比为了验证扫描工具的必要性,我们关心以下一些维度:扫码侧重点,对比各个工具分别能针对解决什么类型的问题;内置规则种类,列举各个工具提供的能力覆盖范围;扫描对象,对比各个工具针对什么样的文件类型扫描;原理简介,简单介绍各个工具的扫描原理;优缺点,简单对比各个工具扫描效率、扩展性、定制性、全面性上的表现。注:FindBugs只支持Java1.0~1.8,已经被SpotBugs替代。鉴于部

2022-03-06 16:11:41 205

原创 Android程序员进阶为架构师的三个关键,Android面试必问的HashMap

=============================================================我喜欢异步传播,埃隆·马斯克也是,所以我确信这种方式是有效的。异步传播的一大优点是它具有比较好的传播性。例如,对于电子邮件,你可以快速复制粘贴或转发信息。实际上,书面信息在一般情况下来说具有很好的传播性。其他媒体形式,如播客或视频也具有传播性,但我很少看到它们被用在软件架构当中。最常用的是图表,但可惜的是,图表的关注点过于极端。我见过很多很多的架构图,因为缺少文字解释而让人难以理

2022-03-06 16:06:00 3404

原创 Android程序员赚够100W,回老家发展,应该可以活得很好吧,移动端开发工程师面试

那么话说回来,如果家庭条件并不好,赚够了100万,是离开,还是留下?我还是建议离开。倒并不是说“回县城”,而是,你找个家乡所在省会就可以了。或者是本省第二、第三大城市。基本上这些地方的房价在1-2万元。你的存款一部分付首付,找一份工作还贷款,剩下的存款理财,其实每个月可支配收入并不一定比北京少。别管网上说的“全国物价一样,当然是收入高的更舒服”,物价是一样,但是房价不一样啊。北京月入3万,房贷2万,不就只剩下1万了?你以为你给自己赚了3万?不是,你是给开发商和银行赚了那2万,你只给自己赚了1万而已

2022-03-06 16:04:35 3692

原创 Android性能优化:绘制优化,flutter识别图中二维码

2、分析Systrace报告使用Chrome打开文件后,其中和UI绘制关系最密切的是Alerts和Frame两个数据:Alerts:标记了性能有问题的点,单击该点可以查看详细信息,右侧的Alerts框还可以看到每个类型的Alerts的数量。Frame:每个应用都有一行专门显示frame,绘制正常时每一帧就显示为一个绿色的圆圈。当显示为黄色或者红色时,则表明它的渲染时间超过了16.6ms。最后,这里再列出在Systrace便于操作的快捷键:W:放大S:缩小A:左移D

2022-03-05 18:15:22 254

原创 Android开发:自定义TabLayout,神奇效果竟是如此简单,三年经验月薪50k我是怎么做到的

情况二(关键代码)://中间的图形Path pathCenter = new Path();pathCenter.moveTo(tabPosition * textWidth + tabPosition * arcWidth, 0);pathCenter.cubicTo(tabPosition * textWidth + tabPosition * arcWidth - arcControlX, arcControlY, tabPosition * textWidth + tabPosition *

2022-03-05 18:12:32 95

原创 Android开发程序员从大厂裸辞,面阿里、字节接连挂,看完直接跪服

从网友的观点来看,大多数人还是不赞成裸辞的,尤其是深圳这样的一线城市,而且大厂履历是让你轻松拿到面试用的,面试水平和你履历没啥关系了。大厂背书有没有用?**大厂镀金有没有用?**不能说一点用都没有,毕竟工作背景就像学历背景一样,都是一个人过去能力的体现。在不了解一个人的时候,人们会习惯性地看他的背景。但如果因此就认为背景可以决定一切,那就大错特错了。镀金再怎么闪亮,也只是在表面镀了一层金而已,真正能够让人通过面试、获得岗位的是里面的内容。如果闪亮的镀金下是一层生锈的铜,相信哪家公司也不会要你。而反.

2022-03-05 18:11:07 723

原创 Android开发三年,面了八家公司终于腾讯上岸,含泪整理面经,flutter瀑布流显示其它组件

建议每次面试完,都及时对面试内容进行回忆记录,这里不是为了泄题漏题,以后吹牛逼,这个没有任何意义。目的是进行复盘,打磨自己的回答。目录===================================================================简历书写面试原题刷过的题目总结1. 简历书写强烈建议,把自己的强项,亮点加粗注明放在简历前面,大家都很忙,也很烦躁,让人一眼就看到优点,对双方都友好。因为我对安卓性能优化方面感兴趣,平时工作也花了很多

2022-03-05 18:09:42 140

原创 Android~Service+BroadcastReceiver使用,安卓开发binder

本文主要讲解比较推荐的方式——广播接收者。通过广播接收者 ,在service中执行完耗时操作后,将结果以广播的形式发送,在所有的activity中注册广播,接收到结果后更新UI,这种方式比较简单。因为耗时的操作结果不需要以handler的方式发送到主线程,可以直接在子线程中发送广播,接收者始终运行在主线程中。Service.javapackage com.example.servicecallback;import android.app.Service;import android.conte

2022-03-04 17:23:04 570

原创 Android~adb卸载系统预装应用(亲测有效,android地图开发框架

rootWasReset=true mNeverRelinquishIdentity=true mReuseTask=false mLockTaskAuth=LOCK_TASK_AUTH_PINNABLEActivities=[ActivityRecord{64b2438 u0 com.uplus.onphone/.activity.MainActivity t3162}]askedCompatMode=false inRecents=true isAvailable=truemRoot.

2022-03-04 17:21:39 436

原创 AndroidUI--SlidingMenu使用例子,由浅入深

mContent = getSupportFragmentManager().getFragment(savedInstanceState, “mContent”);}if (mContent == null) {mContent = new MyFragment();}// 设置主界面视图setContentView(R.layout.content_frame);getSupportFragmentManager().beginTransaction().replace(R.id.co

2022-03-04 17:20:13 67

原创 Android-超好用的播放器——ijkplayer,移动应用开发课程感想

//生成一个新的surface viewsurfaceView = new SurfaceView(mContext);surfaceView.getHolder().addCallback(new LmnSurfaceCallback());LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, Gravity.CENTER);surfaceView.se

2022-03-04 17:18:49 1052

原创 Android-第三方开源框架:Bugly让热修复变得如此简单,idea开发android工程

}@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)public void registerActivityLifecycleCallback(Application.ActivityLifecycleCallbacks callbacks) {getApplication().registerActivityLifecycleCallbacks(callbacks);}@Overridepublic void onTerminate() {s

2022-03-04 17:17:23 743

原创 Android-春招-面试经历-2019年,2021年Android进阶者的新篇章

中期阶段过完前面的基础知识点后,这个阶段主要是去熟悉源码了。可以结合项目中用到的开源框架有针对性的阅读下源码,面试过程中一般会根据你在项目中用到的框架,询问你对这些框架的原理是否熟练掌握。通用框架一般无外乎网络库、图片库、工具类、插件化或热更新库等。这些知识点应该平时多去积累和练习为好,此时只要稍加复习即可。如果不是特别熟悉的可以去参考别人总结比较好的文章对着源码梳理,一定要在自己脑中形成知识结构,基本的实现细节要陈述出来。另外就是平常用到的安卓原生代码一起要去熟悉下,比如:消息机制、View的绘制流程

2022-03-04 17:15:58 98

原创 Android-字节跳动算法题:给定ViewGroup打印其内所有的View

fun recursionPrint(root: View) {printView(root)if (root is ViewGroup) {for (childIndex in 0 until root.childCount) {val childView = root.getChildAt(childIndex)recursionPrint(childView)}}}递归确实可以很清晰的实现功能,但是它有一个致命的问题,当递归深度过深的时候,会爆栈。反应在程序上,就是会抛出 

2022-03-04 17:14:33 235

原创 android移动支付——支付宝支付,android开发游戏加速器

上面的支付流程细化下来就是:1.浏览商品2.把要买的商品加入购物车3.把商品拿到收银台,收银人员处理商品信息4.告诉收银员支付方式5.选择支付方式进行支付6.处理支付结果(成功、失败、取消)程序中的支付流程中:1.浏览商品2.把要买的商品加入购物车3.把购物车中的商品信息和用户信息和支付方式等信息发送到自己服务器,服务器处理商品信息生成订单,并返回”支付串”给客户端4.客户端拿着“支付串”,调用第三方服务(支付宝、微信、银联、paypal等)完成支付5.处理支付结果(成功、失败、取消

2022-03-02 21:17:13 318

原创 Android的常用框架,【架构师必备】

.threadPriority(Thread.NORM_PRIORITY-2).tasksProcessingOrder(QueueProcessingType.FIFO).denyCacheImageMultipleSizesInMemory().memoryCache(newLruMemoryCache(210241024))//自定义内存的缓存策略.memoryCacheSize(210241024).memoryCacheSizePercentage(13)// default.disk

2022-03-02 21:14:23 572

原创 Android添加联系人到通讯录,阿里巴巴android开发手册

row.put(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);row.put(ContactsContract.CommonDataKinds.Phone.NUMBER, phoneNumber);row.put(ContactsContract.CommonDataKinds.Phone.TYPE, type);values.add(row);}联系人公司和职位

2022-03-02 21:11:32 1015

原创 Android构建自己的基础组件库,阿里、腾讯、华为、京东等多家大厂最新安卓面试题

获取屏幕的宽度(单位:px)获取屏幕的高度(单位:px)获取应用屏幕的宽度(单位:px)获取应用屏幕的高度(单位:px)获取屏幕密度获取屏幕密度 DPI设置屏幕为全屏设置屏幕为非全屏切换屏幕为全屏与否状态判断屏幕是否为全屏设置屏幕为横屏设置屏幕为竖屏判断是否横屏判断是否竖屏获取屏幕旋转角度截屏判断是否锁屏设置进入休眠时长获取进入休眠时长SD卡相关根据 Environment 判断 ...

2022-03-02 21:10:07 385

原创 Android - Android7,凭借这份Android面试题集

代表getExternalCacheDirs()也就是在application内加了一个provider,其中,name是固定的,android:authorities是你的应用包名+“.fileprovider”,其实这里不一定要写fileprovider,可以随便写,只是要与后面FileProvider.getUriForFile()这个方法中的第二个参数authority对应起来即可。android:grantUriPermissions固定true,表示uri访问授权,android:export

2022-03-01 13:15:51 52

原创 Android UI组件,flutter安装包大小

R.layout.list_items,new String[]{“pic”,“name”},new int[]{R.id.items_imageView1,R.id.items_textView1}); listView.setAdapter(simpleAdapter);listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {public void onItemClick(AdapterVie

2022-03-01 13:14:26 66

空空如也

空空如也

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

TA关注的人

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