自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android通讯录开发之取得姓名首字母实现简拼搜索,一线互联网企业高级Android工程师面试题大全

private static int END = 63486;// 按照声母表示,这个表是在GB2312中的出现的第一个汉字,也就是说“啊”是代表首字母a的第一个汉字。// i, u, v都不做声母, 自定规则跟随前面的字母private static char[] chartable = { ‘啊’, ‘芭’, ‘擦’, ‘搭’, ‘蛾’, ‘发’, ‘噶’, ‘哈’,‘哈’, ‘击’, ‘喀’, ‘垃’, ‘妈’, ‘拿’, ‘哦’, ‘啪’, ‘期’, ‘然’, ‘撒’, ‘塌’, ‘塌’,

2022-03-01 21:19:01 522

原创 Android自定义控件开发入门与实战(6)路径动画,android计算器的设计与实现

boolean getSegment(float startD,float stopD,Path dst,boolean startWithMoveTo);顾名思义,这个函数用截取一个Path中的某一个片段。通过参数startD和stopD来控制截取的长度。并将截取后的Path保存到参数dst中。最后一个参数startWithMoveTo表示起始点是否使用moveTo将路径的新起始点移到结果Path的起始点,通常设置为true。用来保证每次截取segment都是连续的、完整的。其中startD为

2022-03-01 21:14:46 332

原创 Android自定义控件开发入门与实战(2)View动画,2021Android笔试题

先用AnimationUtils进行加载动画 ,在通过View的startAnimation开始动画。scale标签参数 pivotX表示缩放起始点X轴坐标,可以是数值、百分数、百分数p三种。比如 50、 50% 、50%p如果是数值则表示当前视图的左上角,即原点处加上50px如果是百分数则是当前空间左上角加上自己宽度的50% 作为x轴坐标如果是50%p 则表示在当前控件的左上角加上父控件宽度的50%作为缩放起始点的x轴坐标。这些参数只是影响动画的起始位置,但是并不影响动画的结束

2022-03-01 21:13:21 317

原创 Android系统架构与系统源码目录,android面试基础问题

1.6、Linux内核层Android 的核心系统服务基于Linux 内核,在此基础上添加了部分Android专用的驱动。系统的安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核。Android系统的五层架构就讲到这,了解以上的知识对以后分析系统源码有很大的帮助。2、Android系统源码目录===================2.1、整体结构各个版本的源码目录基本是类似,如果是编译后的源码目录会多增加一个out文件夹,用来存储编译产生的文件。Android7.0的根目录结构

2022-03-01 21:10:31 168

原创 Android秋招提前批:以一些失败经历提醒你们,面试前这些准备一定要做好

另一大块就是算法了,某些一线公司比较喜欢考,比如今日头条在面试邮件中就明确指明要考算法。因此要对标你的目标公司是不是要考来进行复习。具体考哪些内容,以我面试的那些历程来看,基本都没超出《剑指offer》那六十几道题的范围(可能有对应题的变形),因此花一个礼拜左右的时间把那六十几道题弄懂并自己动手实现一遍基本ok,当然一些基础算法还要自己认真去总结学习,比如排序、二分查找、链表和树的基本操作等。面试经历主要是根据回忆总结的(会有遗漏点)。1. 腾讯(QQ音乐)感觉不擅长互动较少的电话面,很难快速暖

2022-03-01 21:07:41 264

原创 dom4j简单学习,优秀Android程序员必知必会的网络基础

import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class MyJdomReaderXML {public Document parse(String string) throws DocumentException {SAXReader reader = new SAXReader();Document document = reader.re

2022-02-17 21:17:10 212

原创 django导入excel,androidui框架

except Exception as e:return JsonResponse({‘code’: 500, “message”: “文件上传失败:” + str(e)})===================== 2.读取存储在Media文件夹的数据 =====================ex_students = read_excel_dict(file_path)===================== 3.把读取的数据存储到数据库 =====================succ

2022-02-17 21:15:45 145

原创 DatePickerDialog时间选择器+MVPPlugin开发插件的使用,学android的入门基础知识

monthBtn = (Button)findViewById(R.id.button_month);initView();}private void initView() {mPresenter.setView();mPresenter.onClickBtn();}@Overridepublic Button getYearButton() {return yearBtn;}@Overridepublic Button getMonthButton() {return month

2022-02-17 21:14:20 1000

原创 Dart开发之——类,kotlin可变长参数

late int age;//姓名late String name;}main() {var people = People();people.name = “张三”;people.age = 18;}带有构造方法的类class People {//年龄late int age;//姓名late String name;People(int age, String name) {this.age = age;this.name = name;}}main() {va

2022-02-17 21:11:31 440

原创 Dart 如何优雅的避空,这套Github上40K+star面试笔记

1. dart 在线编辑器一般一些简单的 dart 测试我们可以直接用在线编辑器来做测试和验证。下面给大家介绍的两个都是官网的。dart 在线运行器主页版: ????www.dartlang.org/guides/get-…dart 在线运行器全屏版: ????dartpad.dartlang.org/null其中全屏版就是在主页版里面点击全屏按钮就打开了。所以可以认为是一样的。但是笔者使用起来的不同如下,大家可以根据自己的感受选择。主页版:优点:运行输出结果较全屏版快。缺点:输出结

2022-02-17 21:08:40 173

原创 Crash监控方案(二),初面蚂蚁金服

缘起:React Native出了有一段时间了,最近又有点时间,所以就打算简单了解一下。首先是IOS,React Native对IOS的支持还是很ok的。下边是代码:NSURL *jsCodeLocation;jsCodeLocation = [NSURL URLWithString:@“http://localhost:8081/index.ios.bundle?platform=ios&dev=true”];RCTRootView *rootView = [[RCTRootView al

2022-02-17 21:07:15 96

原创 Coroutine 基本原理,kotlin中文

安卓开发中,主线程Main正在执行任务,执行到一个网络请求N(挂起函数)时,N脱离主线程,到指定的IO线程做网络请求。 然后线程Main将继续渲染界面(比如转圈圈loading),等N在IO线程执行结束后,切回Main线程,拿着刚请求完的值,继续做后序操作(比如loading结束,显示请求回来的数据结果)挂起函数问题挂起的对象是协程挂起函数只能在另一个挂起函数或者协程中被调用:why?因为,切走再恢复(resume)回来是协程的东西,所以只能在协程中调用原理好了,现在知道什么是suspend

2022-02-17 21:05:50 92

原创 Cocos2d-x 3,android程序开发软件

sp1:runAction(seq1)-- 执行动作序列– 精灵2local sp2 = cc.Sprite:create(“Images/grossinis_sister1.png”)sp2:setPosition(right)-- 设置初始位置在右边local move2 = cc.MoveBy:create(1, cc.p(-winSize.width/2, 0))-- 移动动作,持续1秒– 动作序列2local seq2 = cc.RepeatForever:create(cc.Seq

2022-02-17 21:04:26 91

原创 Flutter开发之——动画,移动终端软件开发

vsync: this,lowerBound: 0,upperBound: 1,duration: Duration(milliseconds: 1000),)//动画开始和结束值animation=Tween(begin: 100,end: 300).animate(_controller);//作用对象Container(height: animation.value,width: animation.value,color: Colors.red,alignment: Alig

2022-02-16 16:38:29 2212

原创 Flutter开发之——macOS上搭建Flutter开发环境,android开发环境搭建实验报心得

二 macOS上镜像配置2.1 为何配置镜像由于在国内访问Flutter有时可能会受到限制,Flutter官方为中国开发者搭建了临时镜像2.2 如何配置镜像打开/Users/zxc下的.bash_profile文件(如果没有请先创建)export PUB_HOSTED_URL=https://pub.flutter-io.cnexport FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn三 获取Flutter SDK3.1 .

2022-02-16 16:37:04 1841

原创 Flutter开发之——AndroidView,整理出Android逆向系列学习进阶视频

2.6 嵌入Fluttervoid main() => runApp(PlatformViewDemo());class PlatformViewDemo extends StatelessWidget {@overrideWidget build(BuildContext context) {Widget? platformView(){if(defaultTargetPlatform == TargetPlatform.android){return AndroidView(vie

2022-02-16 16:35:39 399

原创 Flutter-系列(四)基础UI实践,腾讯Android开发岗

###二.从网络加载图片在Flutter中直接使用Image.network就可以加载图片了import ‘package:flutter/material.dart’;void main() => runApp(MyApp());class MyApp extends StatelessWidget {@overrideWidget build(BuildContext context) {var title = ‘Web Images’;return MaterialApp(ti

2022-02-16 16:29:58 110

原创 Flutter-VS-Kotlin-跨平台开发市场的最终霸主究竟花落谁家

由于 Kotlin 的语法与 Swift、Java、Groovy 和 Scala 等顶级编程语言非常相似,因此学习这种语言并投入 Kotlin Multiplatform 的开发工作是非常容易的事情。重用业务逻辑的确,它不是第一个让开发人员能够分离业务逻辑和 UI 的工具。像 Xamarin 和 React Native 那样的各种跨平台框架都已经提供了这种服务。但让 Kotlin Multiplatfrom 与众不同的是,它在 UI 层下采用了共享的逻辑和库。这使移动应用程序开发人员可以与原生环境—

2022-02-16 16:27:08 483

原创 Flutter 空安全的糖果罐,网易架构师深入讲解Android开发

| | |输入框ExtendedTextField,针对 TextField 组件的扩展,主要包括以下功能: 方便快速生成特殊文本,原理很简单,就是把字符串转换成特定的 InlineSpan。 ExtendedWidgetSpan 支持输入框中插入任何 Widget,比如表情图片。 ExtendedWidgetSpan 支持选择和复制, github.com/flutter/flu… 。路由注解ff_annotation_route,通过注解生

2022-02-16 16:25:43 329

原创 BAT安卓工程师面试流程解析+还原最真实最完整的一线公司面试题

一轮面试:此面试一般为基础面试,主要有项目leader来面试,大多是java的题目居多,安卓也会涉及到一些基础问题,此环节也比较关键,一般一面不会问我们熟知的项目大多是一些基础功底的初探,面试官会看你的笔试试卷问答,记得百度的T3面试题,其中我也加入了其他上市公司的面试题,希望对大家有用PS;顺序不一定正确1  ANR 具体产生的类型有哪些,具体说下其产生的最大超时时间。2  多线程多点下载的过程3 http协议的理解和用法4 安卓解决线程并发问题5 你知道的数据结构有

2022-02-15 16:27:24 137

原创 APP软件测试总结,安卓学习路线图

9)在数据删除之前,应用程序应当通知用户或者应用程序提供一个“取消”命令的操作。10)应用程序应当能够处理当不允许应用软件连接到个人信息管理的情况。11)当进行读或写用户信息操作时,应用程序将会向用户发送一个操作错误的提示信息。12)在没有用户明确许可的前提下不损坏删除个人信息管理应用程序中的任何内容。13)如果数据库中重要的数据正要被重写,应及时告知用户。14)能合理的处理出现的错误。15)意外情况下应提示用户。4.通讯安全性1)在运行软件过程中,如果有来电、SMS、蓝牙等通讯或充电时,是

2022-02-15 16:23:09 1302

原创 Android:金九银十怎么从中小企业挤进一线大厂?大厂面试题问的深度

只要你能回答上以下内容,面试官会微微一笑数组作为哈希桶,扩容时候已链表形式,超过8个节点结构改为红黑树。不能多线程使用,多线程可以用 ConcurrentHashMap可能有些面试官会追加继续问:ConcurrentHashMap 为什么可以多线程使用, jdk 1.7 和 1.8 有何区别如果能回答1.7 使用 Reentrantlock , 将哈希桶分段,每个 Segment 作为一个锁粒度1.8 使用 synchronized , 锁粒度更细,锁对象是每个链表的表头能往上

2022-02-15 16:21:44 134

原创 android:kotlin语言使用greendao3,跨平台app开发框架

apply plugin: ‘org.greenrobot.greendao’greendao {//数据库的schema版本,也可以理解为数据库版本号schemaVersion 1//设置DaoMaster、DaoSession、Dao包名,也就是要放置这些类的包的全路径。daoPackage ‘tsou.com.simple.greendaoforkotlin.greendao’//设置DaoMaster、DaoSession、Dao目录targetGenDir ‘src/main/jav

2022-02-15 16:18:53 1875

原创 Android高频网络面试专题必知必会,android开发环境比较

1、支持http2,对一台机器的所有请求共享同一个socket2、内置连接池,支持连接复用,减少延迟3、支持透明的gzip压缩响应体GZIP是网站压缩加速的一种技术,对于开启后可以加快我们网站的打开速度,原理是经过服务器压缩,客户端浏览器快速解压的原理,可以大大减少了网站的流量开GZIP有什么好处?Gzip开启以后会将输出到用户浏览器的数据进行压缩的处理,这样就会减小通过网络传输的数据量,提高浏览器启动页面的速度。4、通过缓存避免重复的请求强制缓存客户端第一次请求数据时,服务端返回缓存的过期时

2022-02-15 16:17:28 139

原创 Koltin37,挑战阿里社招

for (j in 0 until aTypeList.size) {val goodsInfo = aTypeList.get(j)//建立双向绑定关系goodsInfo.typeName = goodsTypeInfo.namegoodsInfo.typeId = goodsTypeInfo.id}allTypeGoodsList.addAll(goodsTypeInfo.list)}goodsFragment.onLoadBusinessSuccess(goodstypeList, a

2022-02-05 14:14:02 88

原创 Koltin23,移动应用开发

}fun bindData(data: String) {if (url_maps.size == 0) {url_maps.put(“Hannibal”, R.mipmap.pic1);url_maps.put(“Big Bang Theory”, R.mipmap.pic2);url_maps.put(“House of Cards”, R.mipmap.pic3);url_maps.put(“Game of Thrones”, R.mipmap.pic4);for ((key, valu

2022-02-05 14:12:37 77

原创 Jetpack Compose for Desktop_ 里程碑1发布,2021中级Android开发面试解答

Button(onClick = { count++ }) {Text(if (count == 0) “Hello World” else “Clicked $count!”)}}}但是 Compose for Desktop 不仅仅是UI元素,它基本上拥有的功能都可以在 Android 对应版本中找到。桌面特定的API为了让开发者的应用能够集成其他的桌面 UI,Compose for Desktop 附带了桌面特有的API,这些 API 主要是用于特定的桌面功能,它们的结构与其他 Com

2022-02-05 14:09:47 226

原创 Java面试题四:Java 的四大引用,android设计模式有几种

java四大引用(2k阅读量,2赞,虽然量少,但写的不错)简介:===强引用就是我们平时使用的对象方式,也是使用最多的一种方式,** 请记住不管内存紧张也罢,不足也罢,gc永不回收强引用的对象, 即使jvm 出现(内存溢出错误)OutOfMemoryError,使程序停止,也不会回收对象来提高内存 ** 。对象具备软引用,**请记住,只要内存足够,我们不对对象回收,但是当内存不足,gc对软引用对象进行回收** 可以看出软引用对内存很敏感,可用来高速缓存,同时它可以结合队列使用,如果软引用被gc回收,

2022-02-05 14:08:21 69

原创 IOS开发之——事件处理-手势识别(71),kotlin异常处理

tap.delegate=self;[_imageView addGestureRecognizer:tap];说明tap.numberOfTapsRequired:点击多少次才能触发tap.numberOfTouchesRequired:多少手势触发方法-(void)tap:(UITapGestureRecognizer *)tap{NSLog(@“tap”);}4.2 UILongPressGestureRecognizer手势UILongPressGestureRe

2022-02-05 14:04:06 176

原创 IdleHandler 的原理分析和妙用,80后程序员月薪30K+感慨中年危机

Message next() {// Return here if the message loop has already quit and been disposed.// This can happen if the application tries to restart a looper after quit// which is not supported.···int nextPollTimeoutMillis = 0;for (;???? {if (nextPollTimeou

2022-02-05 14:02:41 121

原创 HTML开发之——导航框架,hashmap底层原理

3.3 导航替换内容页面没有锚点页面(frame_b.html)Chapter 1This chapter explains ba bla blaChapter 2This chapter explains ba bla blaChapter 3This chapter explains ba bla blaChapter 4This chapter explains ba bla blaChapter 5This chapter explains ba bla blaCha..

2022-02-04 15:02:08 153

原创 hook(1)入门篇,android线程池面试题

升职,加薪,出任CEO,迎娶白富美,走上人生巅峰,够不够实用?**##三. 前置技能java反射 熟练掌握类Class,方法Method,成员Field的使用方法源码内部,很多类和方法都是@hide的,外部直接无法访问,所以只能通过反射,去创建源码中的类,方法,或者成员.阅读安卓源码的能力hook的切入点都在源码内部,不能阅读源码,不能理清源码逻辑,则不用谈hook.其实使用 androidStudio来阅读源码有个坑,,有时候会看到源码里面 "一片飘红",看似是有什么东西没.

2022-02-04 15:00:43 284

原创 Gson的解析复杂数据,2021年Android岗位BAT大厂面试题知识点小结

1.我们解析下面的数据:{“error”: 0,“status”: “success”,“date”: “2014-05-10”,“results”: [{“currentCity”: “南京”,“weather_data”: [{“date”: “周六(今天, 实时:19℃)”,“dayPictureUrl”: “http://api.map.baidu.com/images/weather/day/dayu.png”,“nightPictureUrl”: “http://api.

2022-02-04 14:59:18 182

原创 Gson的解析复杂数据(1),Android面试回忆录

return results;}public void setResults(List results) {this.results = results;}@Overridepublic String toString() {return “Status{” +“error=’” + error + ‘’’ +“, status=’” + status + ‘’’ +“, date=’” + date + ‘’’ +“, results=” + results +‘}’;}}R

2022-02-04 14:57:53 115

原创 GridView 设置选中状态,安卓移动开发实验报告

if (PullToRefreshGridView.MODE_PULL_DOWN_TO_REFRESH == mPullRefreshGridView.getCurrentMode()) {Toast.makeText(MainActivity.this, “下拉刷新”, Toast.LENGTH_SHORT).show();mPullRefreshGridView.onRefreshComplete();} else if (mode == PullToRefreshGridView.MODE_PU

2022-02-04 14:56:28 3367

原创 Gradle生命周期&project&task,2019-2021历年字节跳动Android面试真题解析

**/获取所有的子project/**获取所有的子project@return*/def getSubProjects() {println ‘-------------------------’println ‘Sub Project’println ‘-------------------------’this.getSubprojects().each { Project project ->println “±-- project ????{project

2022-02-04 14:55:03 2359

原创 Gradle原理流程分析,看完老板哭着让我留下来

通过aapt2合并关联res和dex通过zipalign工具对齐处理通过apksigner工具签名​ 简单介绍就这些步骤,其中还有很多细节处理,比如多项目支持,差异化处理,缓存优化等等。这些如果手动处理基本上不可能,要让流程简单化,就需要对这些流程进行封装,这就是Gradle的作用了。帮助我们对各种应用程序构建执行流程化,减轻我们的工作量。Gradle结构Gradle单独来讲,就是一个单独的构建工具,不依赖于java\android等。让我们走进gradle原始工程准..

2022-02-04 14:53:38 215

原创 Tinkphp5,程序员深度学习

public static function export($dir=‘data’) {//保存路径,默认为站点根目录下的data文件夹里path=ROOTPATH.path = ROOT_PATH .path=ROOTP​ATH.dir.DIRECTORY_SEPARATOR;//获取数据库名$dbname=config(“database.database”);//检查目录是否存在if(!is_dir($path)) {//新建目录mkdir($path, 0777, true);}

2022-02-03 18:23:49 113

原创 thinkphp5,android混合开发基础恶补篇

}2、在route/route.php或者application\route.php添加路由规则,如下:<?php/*--------------------------------------------* 添加路由规则:* 1、路由到index控制器的hello操作方法* 2、浏览器访问:http://域名/hello/参数* -------------------------------------------*///方式一(在:name外面添加[],表示路由参数na

2022-02-03 18:22:24 2429

原创 svn 使用方法,Android性能优化总结

我们将最新的SVN下下来,然后将其安装到本地。一、           安装TortoiseSVN我们将最新的SVN下下来,然后将其安装到本地。)安装注意事项,将command lineclient tools选中安装状态,如下图一定要选择第二个下拉框里面的那个安装到本地硬盘,否则会安装不成功。我们将最新的SVN下下来,然后将其安装到本地。直接点finish就okay了!二Andor

2022-02-03 18:19:34 383

空空如也

空空如也

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

TA关注的人

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