Android 面试题 android中级---初级---知识点
// Android 的中等知识理解
1 自定义控件
2 在android中跨进程之间通讯有那几种 ?
3 RecyclerView 了解情况
4 Android Fragment和Fragment之间怎么传递数据的
5 Fragment 如何给 activity 传递数据
6 回调接口 的通俗理解 ( 这块我还是不是特别的清晰 )
7 Android中的几种动画 ?
8 Android的通用设计模式???
9 自己没有对自己写过的代码进行一个封装 ?? 你是怎么封装的 ?? 封装的目的就是不为了让代码重复 ??
10 AsyncTask 异步任务的理解
11 相关的加密技术了解 ??
12 Android与Js交互 ?? Android 调用JS的方法, JS 调用 Android 方法;
13 RecyclerView复用机制 ??
==========================================================================================================================
(1) 自定义控件
测量- onMeasure 过程是用于测量视图的大小
布局- onLayout 过程用于设置视图在屏幕中显示的位置
绘制- onDraw 过程主要用于利用前两步得到的参数,将视图显示在屏幕上,到这里也就完成了整个的视图绘制工作。
画布Canvas的用法
Canvas提供了下列2类方法:
(1)在区域内部绘制图形该类方法用来绘制各种基本几何图形。
(2)画布的控制操作控制操作包括旋转、缩放、平移以及存取画布状态的操作。
画笔Paint的用法:
//锯齿效果
//设置画笔的颜色 //防抖动 //设置阴影 //设置画笔的风格(空心或实心)
//设置空心边框的宽度
(2) 在android中跨进程之间通讯有那几种
其中Activity可以跨进程调用其他应用程序的Activity;
跨进程访问Activity(访问其他应用程序中的Activity)主要是通过一个Action来完成的,如果要传递数据,还需 要指定一个Uri。当然,
传递数据也可以通过Intent来完成。传递数据的过程可以是双向的。如果要想从调用的Activity中返回数据,就需要使用
startActivityForResult方法来启动Activity了。
(3) RecyclerView 了解情况
RecyclerView提供了三种内置的LayoutManager
整体上看Recyclerview架构,提供了一种插拔式的体验,高度的解耦,异常的灵活,通过设置它提供的不同
LinearLayoutManager:线性布局,横向或者纵向滑动列表
GridLayoutManager:表格布局
StaggeredGridLayoutManager:流式布局,例如瀑布流效果
首先这边我们需要继承RecyclerView.Adaper类,然后实现两个重要的方法onBindViewHodler0以及onCreateViewHlolder0,这边我们看出来
区别,使用RecyclerView控件我
们就可以把Item View视图创建和数据绑定这两步进行分来进行管理,用法就更加方便而且灵活了,并且我们
可以定制打造千变万化的布局。同时这边我们还需要创建一个!
ViewHolder类,该类必须继承自Recyclerview.ViewHolder类,现在Google
也要求我们必须要实现ViewHolder来承载Item的视图。
3.1 .RecyclerView分隔线实现(ItemDecoration)
3.2 RecyclerView (监听事件处理)
。
对于RecyclerView来讲,非常可惜的时候,该控件没有给我们提供这样的内置监听器方法,不过我们可以进行改造实现
LayoutManager, ItemDecoration, ItemAnimator
RecyclerviewtbListView多两级缓存
(4) Android Fragment和Fragment之间怎么传递数据的
通过共同的Activity传递(主要方法)
在Activity里面添加一个字段、来临时保存要一些值。在Activity中定义一个字段、然后添加set和get方法。
(7)Android的几种动画
Android包含三种动画:
ViewAnimation、 Drawable Animation、 Property Animation
ViewAnimation (Tween Animation补间动画):
基于View的渐变动画,只改变了View的绘制效果,实际属性值未变。在代码中定义动画
DrawableAnimation(Frame Animation帧动画):
加载一系列Drawable资源来创建动画,这种传统动画某种程度上就是创建不同图片序列,顺序播放,就像电影胶片。在代码中定义动画帧
PropertyAnimation(属性动画):
动画的对象除了传统的View对象,还可以是Object对象,动画之后,Object对象的属性值被实实在在的改变了。Property animation能够通过改变View对象的实际属性来实现View动画。任何时候View属性的改变,View能自动调用invalidate()来刷新。
(10) AsyncTask 异步任务的理解
- AsyncTask是Android提供的一个助手类,它对Thread和Handler进行了封装,方便我们使用。Android之所以提供AsyncTask这个类,就是
为了方便我们在后台线程中执行
操作,然后将结果发送给主线程,从而在主线程中进行UI更新等操作。
2.AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通
过接口实现UI进度更新),最后反馈执行
的结果给UI主线程.
3个泛型
当我们定义一个类来继承AsyncTask这个类的时候,我们需要为其指定3个泛型参数:
AsyncTask <Params, Progress, Result>
Params:这个泛型指定的是我们传递给异步任务执行时的参数的类型,对应的方法是doinBackground(Params… params)
Progress:这个泛型指定的是我们的异步任务在执行的时候将执行的进度返回给UI线程的参数的类型,对应的方法是publishProgress(Progress)
Result:这个泛型指定的异步任务执行完后返回给UI线程的结果的类型,对应方法是onPostExecute(Result… esult)
4个步骤
当我们执行一个异步任务的时候,其需要按照下面的4个步骤分别执行
onPreExecute0:这个方法是在执行异步任务之前的时候执行,并且是在UI Thread当中执行的,通常我们在这个方法里做一些UI控件的初始
化的操作,例如弹出要给
ProgressDialog
。
dolnBackground(Params… params)在onPreExecute0方法执行完之后,会马上执行这个方法,这个方法就是来处理异步任务的方法,Android操作系
统会在后台的线程池当
中开启一个worker thread来执行我们的这个方法,所以这个方法是在Worker thread当中执行的,这个方法执行完之后就可以
将我们的执行结果发送给我们的最后一个
onPostExecute 方法,在这个方法里,我们可以从网络当中获取教据等一些耗时的操作
// pu rua 个 ruai si Progress
onProgressUpdate(Progess… values):这个方法也是在UI Thread当中执行的,我们在异步任务执行的时候,有时候需要将执行的进度返回给我们的UI界面,例如下载一张网
络图片,我们需要时刻显示其下载的进度,就可以使用这个方法来更新我们的进度。这个方法在调用之前,我们需要在 dolnBackground 方法中调用一个 publishProgress
(Progress)的方法来将我们的进度时时刻刻传递给 onProgressUpdate 方法来更新
onPostExecute(Result…result):当我们的异步任务执行完之后,就会将结果返回给这个方法,这个方法也是在UI Thread当中调用的,我们可以将返回的结果显示在U控件上
。
(11) 相关的加密技术了解 ??
在Android开发中,一般只用到Base64,MD5,RSA,DES。
MD5、SHA、HMAC这三种加密算法
MD5加密是一个比較经常使用的算法,最常见的使用场景就是在帐号注冊时,用户输入的password经md5加密后,传输至server保存起来。
(12) Android与Js交互 ?? Android 调用JS的方法, JS 调用 Android 方法;
Android 调用 js方法
//加载本地htm文件:
1 webView = findViewByld(Rid.webview);
//设置WebView允许调用js
2webView.getSettings0.setJavaScriptEnabled(true);
3 webview.IoadUr(“file:///android_ asset/show.html”);
js调用安卓方法:
首先,需要在activity中定义被调用的方法:
1 @JavascriptInterface
2 public void hello(String msg){
3
Toast.makeText(this, msg, Toast.LENGTH_SHORT),show0;
}
并且需要给webview绑定 上java对象:
1 webView.addJavascriptinterface(this,“justTest”);
最后,在js中调用该方法:
1 调用安卓方法
@Override
protected void onCreate(Bundle savedinstanceState){
super.onCreate(savedinstanceState);
setContentView(R.layout:activity_main);
wview =(WebView) findViewByid(Rid.wView);
wiew.loadurl(“file:///android_asset/demo1.html”);
WebSettings webSettings = wiew.getSettings0;
//①设置WebView允许调用js
webSettings.setJavaScriptEnabled(true);
webSettings.setDefaultTextEncodingName(“UTF-8”);
//②设置支持js调用java
wiew.addlavascriptinterface(new AndroidAndISInterface0,“Android”";
Class AndroidAndJSInterface{
@Javascriptinterface
public void showToast(){
Toast.makeText(MainActivity.this,“我被js调用了”,Toast.LENGTH_SHORD).show0;
}
(13) RecyclerView复用机制
回收:当一个itemView从可见到不可见时,RecyclerView利用回收机制,将它存放到了内存中,以便其他item出现时,不用每次都去
new一个新的itemView,而是只去 onBindViewHolder绑定数据就行了.
复用:滑动过程中出现了新的itemView,不用每次都去new,而是优先从缓存中去拿,缓存不能满足需求,再去 执行onCreateViewHolder
创建新的itemView并封装到viewHolder中
Android 面试题 android中级---初级---知识点相关推荐
- 71道经典Android面试题和答案,重要知识点都包含了
更多源码下载,请关注微信公众号:互联网技术分享 面试题 1. 下列哪些语句关于内存回收的说明是正确的? (b ) A. 程序员必须创建一个线程来释放内存 B.内存回收程序负责释放无用 ...
- 2020年Android面试题汇总(初级)
本博文转载自:https://www.jianshu.com/p/feb9584b492c 作者:Wocus 1.跨进程通信的几种方式 Intent,比如拨打电话 ContentProvider数据 ...
- 70道经典Android面试题加答案--重要知识点几乎都涉及到了 .
Android面试题 1. 下列哪些语句关于内存回收的说明是正确的? (b ) A. 程序员必须创建一个线程来释放内存 B. 内存回收程序负责释放无用内存 C. 内存回收程序允 ...
- 京东android面试题,Android面试题—校招—京东
1 Fragment声明周期 OnCreateView用于初始化非静态的View 在其中创建View并返回给调用者 OnActivityCreate 当Fragment依存的Activity的 onC ...
- Android面试题整理(源自鸿洋大神公众号【201803】的一篇BAT面试题推送)
三月,想必各位程序员GG 此刻想要的,莫过于一篇面试宝典.鄙人不才,也从未系统的刷过面试题,以鸿洋大哥一篇面试题为引,略加整理,希望能帮到各位不知道看什么小伙伴.(大部分知识都是有答案的). 原文链接 ...
- 安卓开发淘宝抢购界面!史上最全的Android面试题集锦,附带学习经验
前言 这是"拔剑金九银十"的第二篇文章,本文主要针对3年以上的Android开发者进阶面试中高级开发工程师而整理. 希望可以对你们有所帮助.不多废话,进入正题. 目录: Java中 ...
- Android 面试题集锦
一.java面试题 基础面试题 1.java中==和equals和hashCode的区别; 答: == 是比较运算符,基础类型比较时,比较的是变量值,引用类型比较时,比较的是对象地址值:equals( ...
- 最全 BAT 大厂Java和Android面试题整理!(速度收藏)
又到了面试求职高峰期,最近有很多网友都在求大厂面试题.正好我之前电脑里面有这方面的整理,于是就发上来分享给大家. 这些题目是网友去百度.小米.乐视.美团.58.猎豹.360.新浪.搜狐等一线互联网公司 ...
- Android 面试题大全 android中级----进阶------ 知识点
// Android 的中等进阶知识点理解 1 内存泄漏是什么 ?? 2 Android oom 内存溢出 ?? 3 Retrofit详解 ?? 4 Rxjava详解 ?? 5 Android 性能优 ...
最新文章
- centos7上开启单用户模式
- cannot import name '_C'
- jQuery获取元素
- 根目录下各文件夹的作用
- Nacos SDK for Scala 发布
- 第十六章 复杂的抽像类结构
- 第一次作业+105032014142
- java 类加载器卸载,【深入明白Java虚拟机 】类加载器的命名空间以及类的卸载...
- 自己制作的ORMap框架终于完成的差不多了。
- 一般纳税人与小规模纳税人有什么区别
- GIT 密钥生成工具puttygen使用技巧
- Mybatis注解用法
- 你还有“不撞南墙不回头”之心吗?
- X/Y/Z Modem、Kermit区别
- realme支持鸿蒙系统,骁龙888+首批搭载安卓12,realme真我GT真香售价2499元起
- SQL中查询MySQL的版本
- 如何将笔记本作为另一台电脑的副屏显示
- amd锐龙笔记本cpu怎么样_九代酷睿还是AMD锐龙?多款标压笔记本处理器性能实测对比...
- js中转换Date日期格式
- 如何从窗口句柄得到窗口的指针
热门文章
- 什么是环境变量?环境变量配置,jdk8的path环境变量配置,各个版本下jdk结构的变化以及环境变量配置的阐述,java命令执行三个不同目录下的java.exe说明
- mysql 密码插件 validate_password
- Python自述和简介
- 海南实现旅游总收入1.06亿元人民币
- 从传统金融变身科技公司后,2017年的平安交了这样一份答卷
- html中怎么写小箭头,HTML+CSS入门 CSS用伪类制作小箭头
- 机器学习十大算法之贝叶斯算法
- POJ1830开关问题
- 远程桌面看不到任务栏怎么办?
- 银河系中心黑洞的第一张照片,本文带你了解发现的过程