2024年Android最新一些杂乱的知识点(一),2024年最新vivo hr面试

设计模式学习笔记

设计模式系列学习视频

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 手机访问电脑上的服务器中的内容

  • SmartImageView

  • 自定义控件

  • 网络

  • 小技巧

  • 发送短信

  • 样式和主题 style和Theme

  • 1 共同点

  • 2 不同点

  • 3使用

  • 国际化 i18n

  • 2种上下文的区别

  • 对话框

  • 1 普通对话框用的比较多

  • 2 单选对话框用的少

  • 3 多选对话框用的少

  • 4 进度条对话框

  • Android动画

  • 1 属性动画

  • 1 补间动画

  • 1 帧动画

  • 进程概念介绍

  • 1 Foreground process 前台进程

  • 2 Visible process 可视进程

  • 3 Service process 服务进程

  • 4 Background process 后台进程

  • 5 Empty process 空进程

  • 获取SD卡路径

  • 引进类库

  • 判断横竖屏

1.Android下配置环境变量(类似于电脑上的cmd命令)

==============================

需要把执行的文件放在system/xbin目录下,比如把sqlite3放在这下面,在

adb shell下面,直接输入sqlite3直接可以运行.adb shell下面输入su可以提高到root权限也是这个道理.

2.ListView

==========

1.在公司,一般使用BaseAdapter.用一个类去继承这个类.

2.能用fill_parent尽量用fill_parent,用wrap_content的话,它不知道

到底多少个item才能填满屏幕的高度,所以如果当前的getcount返回的个数

不够占满屏幕的高度的话,它会一直调用getview方法去不断地尝试去

填满,getview方法会被调用很多次,效率降低.当使用fill_parent的时候

,它一开始就知道需要多少个item才能填满屏幕,所以不会去多调用getview方法.

3.创建xml布局时,命名一般是 “item_功能_layout”.在布局里面,一个ImageView控件的命名一般是 “item_img_功能” ,可以设置一张默认图片.

4.优化:public View getView(int position, View convertView, ViewGroup parent) {

//1.获取position位置条目对应的list集合中的新闻,Bean对象

NewsBean newsBean = list.get(position);

View view = null;

ViewHolder viewHolder = null; //用来缓存view上的数据

//2.复用convertView优化listview,创建一个view作为getview的返回值用来显示一个条目

if(convertView != null){

view = convertView;

viewHolder = (ViewHolder) view.getTag(); //将之前缓存的数据 恢复

} else {

//加载布局

view = View.inflate(context, R.layout.item_news_layout, null);

viewHolder = new ViewHolder();

//3.获取view上的子控件 存到 viewHolder里面

viewHolder.item_img_icon = (ImageView)view.findViewById(R.id.item_img_icon);

viewHolder.item_tv_title = (TextView)view.findViewById(R.id.item_tv_title);

viewHolder.item_tv_des = (TextView)view.findViewById(R.id.item_tv_des);

view.setTag(viewHolder); //将这个内部类(缓存数据的类)存到view里面

}

//4.将数据设置给这些子控件显示

//view子控件的view对象在ViewHolder里面,直接可以设置里面的数据,就等于在设置view里面的子控件的数据

viewHolder.item_img_icon.setImageDrawable(newsBean.news_icon);

viewHolder.item_tv_title.setText(newsBean.title);

viewHolder.item_tv_des.setText(newsBean.des);

return view;

}

class ViewHolder{

ImageView item_img_icon;

TextView item_tv_title;

TextView item_tv_des;

}

3.LinearLayout布局

================

1.在使用到weight属性时,如果是vertical布局,则需要把height设置成

0dp,如果是horizontal,则需要把width设置成0dp.

2.gravity:子控件相对于自己居中

layout_gravity:自己相对于父窗体居中

3.android:scaleType="fitXY"拉伸图片,使之占满

4.Android使用图片

=============

1.Bitmap setImageBitmap()

2.Drawable setImageDrawable()

context.getResources().getDrawable(R.drawable.icon2);

5.常见包名

======

1.bean model 一个模型

2.util 工具类

3.adapter 适配器的包

5.dao db 操作数据库的包

6.单位

====

1.dp 一般的长度单位就用这个

2.sp 字体的大小用这个

7.工具类

=====

1.TextUtils.isEmpty(urlString) 可以判断字符串是否为空

8.耗时操作

======

1.android耗时的操作(请求网络,大文件的拷贝,数据库的操作)需要在子线程中进行.

2.安卓4.0之后的网络操作强制在子线程中进行.因为网络访问是耗时的操作,可能导致ANR(application not response 应用无响应);

9.线程

====

1.子线程不能更新UI(某些情况下可以)

2.Toast也算是更新UI,所以不能放在子线程中

3.子线程可以通过handler或者java回调机制发送数据给主线程.其中用

handler方式的时候,Message对象的what可以用来区分是哪个Message对象发送过来的数据.

10.Json数据解析

===========

1.用{}包含的是JsonObject

2.用[]包含的是JsonArray

11.手机访问电脑上的服务器中的内容

==================

1.需要配置局域网,然后让手机连接服务器的地址,且是以ip地址开头,不是以电脑用户名开头.

12.SmartImageView

=================

Android中加载网络图片的ImageView,功能强大,代码简单.

自定义控件的使用时,xml文件中必须写完整路径,比如这里需要写com.loopj.android.image.SmartImageView

13.自定义控件

========

1.所有的自定义控件,必须实现它的所有的构造方法

14.网络

=====

1.需要开一个子线程去请求网络,一般线程是写到封装这个请求网络的方法里面. 如果需要返回值,则可以使用Handler,或者java的回调机制.

2.判断下载完成:如果一个文件的md5正确了,就下载完成了.

15.小技巧

======

1.当不知道一个实现的那个方法里面的参数是什么意思时(看api没看懂),

可以在里面加一个Syso输出语句,然后在这一行打一个断点,debug一下,查看函数的参数分别是什么,即可知道参数的意思.

16.发送短信

=======

1.// 获取SmsManager实例

SmsManager smsManager = SmsManager.getDefault();

// 如果短信内容过多 发不出去 分条发送

ArrayList divideMessage = smsManager.divideMessage(content);

for (String string : divideMessage) {

// 发送短信数据

smsManager.sendTextMessage(number, null, string, null, null);

}

2.权限:

17.样式和主题 style和Theme

====================

17.1 共同点


定义的方式是一样的

17.2 不同点


1.style的作用范围比较窄(控件 button,textview), theme 作用在

activity或者Application节点下.

17.3使用


1.res->values->xxxx.xml 用styles.xml文件或者自己定义的文件来写都行

18. 国际化 i18n

=============

国际化就是在res下创建对应国家环境目录,然后更改strings.xml中的值.

然后在运行程序的时候,它会自动的检测当前的系统语言环境去找对应的文件夹下的strings.xml资源.如果不知道那个国家的简写,可以打开IE浏览器,设置->语言,可以看到所有国家的简写.

values-en 英文

values-zh 中文

19. 2种上下文的区别

=============

MainActivity.this 是Context的子类

getApplicationContext() 直接返回Context

对话框不能用getApplicationContext()

20. 对话框

========

20.1 普通对话框(用的比较多)


最后

在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

ionContext()

20. 对话框

========

20.1 普通对话框(用的比较多)


最后

在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

[外链图片转存中…(img-HCgVRWFE-1715670925412)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 14
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值