自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android高频面试题:该怎样在Android面试中聊聊多线程不被忽悠?,熬夜整理华为最新Android笔试题

多线程可以说是Android面试的高频问题了,而多线程涉及的内容非常多,因此在面试当中往往不知道从何说起,本文并不是为了科普多线程或者研究多线程的知识,而是尝试组织语言以便在面试当中更好地忽悠面试官。语言表达在面试当中虽说很重要, 不过更重要的还是相关知识技能过硬。假如在一场Android面试当中,面试官让你聊聊多线程,你可以试试这样回答。Android中的线程在Android当中, 当应用启动的时候,系统会给应用分配一个进程,顺便一提, 大部分应用都是单进程的,不过也可以通过设置来使不同组件.

2021-11-20 14:17:02 192

原创 Android面经分享:面试多家大厂被拒,原因竟是这个,kotlin协程和线程的区别

自定义view,中英文字符串宽高测量显示,测量算法,可扩展性事件分发机制Activity,view,window联系热修复和插件化原理Synchronized底层原理,java锁机制java容器,hashmap和hashtable区别,hashmap原理,扩容流程,扰动算法的优势ArrayList和LinkendList区别,List泛型擦除,为什么反射能够在ArrayList< String >中添加int类型Http和Https区别,SSL/TL..

2021-11-20 14:11:29 200

原创 android进阶篇09、电量与网络优化简述,android开发实例

Doze模式是来描述系统的,StandBy模式是描述应用的,应用不处于活跃状态且设备未处于充电状态; 系统提供了一个可配置的白名单,我们可以在应用中申请将我们的应用的处于白名单中;我们可以通过在应用获取电池电量、是否处于充电状态来进行某些操作;比如日志系统,我们可以在设备充电的时候将日志系统中的日志上传至服务器我们进行获取;还可以注册广播,获取电量变化及充电状态;2、电量优化我们的应用可以从以下三个方面增加电池续航减少操作 是否存在多余操作,例如缓存已下载的数据,而不是每次都重新下载推迟操作 可

2021-11-20 14:08:15 1491

原创 ARouter系列2:源码分析,html5移动开发框架

super.onCreate(savedInstanceState);setContentView(R.layout.activity_test_interceptor);}}1.5、Test1Interceptor@Interceptor(priority = 7)public class Test1Interceptor implements IInterceptor {Context mContext;@Overridepublic void process(Postcard po

2021-11-19 15:39:56 772

原创 Android:是时候掌握WebView与Js的交互技术了,android架构图

Js Method调用结果 window.android.JsToJavaInterface(s)是Js调用android的方法,由于loadUrl()不能从Js返回数据,可以让Js回调android的方法回传参数。MainActivity.java…private void initView() {javaMethod = new JavaMethod(this);webView = new WebView(this);WebSettings settings = webV...

2021-11-19 15:34:30 1348

原创 Android静默安装实现方案,仿360手机助手秒装和智能安装功能

if (dataOutputStream != null) {dataOutputStream.close();}if (errorStream != null) {errorStream.close();}} catch (IOException e) {Log.e(“TAG”, e.getMessage(), e);}}return result;}}可以看到,SilentInstall类中只有一个install()方法,所有静默安装的逻辑都在这个方法中了,那么我们具体来看一下

2021-11-19 15:22:07 845

原创 android设计模式—建造者(Builder,了解Android架构组件后构建APP超简单

public Room getRoom();}ConcreteBuilder:实现Builder接口,针对不同的商业逻辑,具体化复杂对象的各部分的创建。 在建造过程完成后,提供产品的实例。public class ConcreteBuilder implements Build{private Product room=new Product();@Overridepublic void makeWindow() {room.setFloor("地板 ");}@Overridepu

2021-11-19 15:16:12 947

原创 android设计模式—命令设计模式,vue数据双向绑定

角色:Command命令角色 :定义命令的接口,声明具体命令类需要执行的方法。这是一个抽象角色。ConcreteCommand具体命令角色:命令接口的具体实现对象,通常会持有接收者,并调用接收者的功能来完成命令要执行的操作。Invoker《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》开源分享完整内容戳这里请求者角色:负责调用命令对象执行请求,通常会持有命令对象(可以持有多个命令对象)。Invoker是Client真正触发命令并要求命令执行相应操作的.

2021-11-19 15:12:55 594

原创 Android程序员架构师筑基必备:IOC控制反转与DI依赖注入(附视频讲解)

public boolean isYijinjing() {// 星期三的时候小二和尚要练易筋经return false;}}小三类的代码修改如下所示:public class Xiaosan implements Heshang {@Overridepublic void saodi() {System.out.println(“小三我在扫达摩院的地”);}}老方类的代码如下所示:public class Laofang {public static Heshang getSa

2021-11-18 11:56:34 113

原创 Android程序员35岁之后还在招聘网站上投简历找工作丢人吗?

如果你一条都不符合,你作为一个35岁的程序员,哎,不是我说…1.做事呢你不如年轻人能拼,落地呢你不如年轻人听话,成长呢你以为自己够资格倚老卖老,你真的觉得你很职业么?2.就算你职业,孩子要接吧,家务要分担吧,老人也是年龄大了要管吧,和单身没牵挂的人比,你的优势啊,很难说随意发挥。3.就算你家里人靠谱,自己也敬业,但你都35岁了,工作资历又不突出,薪酬待遇能接受低一点吗?工作安排能接受被年轻人管吗?能上能下这事不好弄啊,毕竟大部分工作岗位,并没有那么依赖工作经验。换你做老板,一个25岁,有三年工作经验

2021-11-18 11:51:08 86

原创 Android的apk组成结构,安卓插件化开发

资源文件比较重要的如下, sdk 文档 ( 中文指南 ) 上有相关的详细介绍:目录 Directory资源类型 Resource Typesres/anim/Define pre-determined animations.Tween animations are saved in res/anim/ and accessed from the R.anim class.Frame animations are saved in res/drawable/ and accessed from the R.

2021-11-18 11:48:36 78

原创 android状态栏沉浸效果(还没整理好,晚上整理),安卓手机内存优化

2.在activity的onCreate()中调用下面方法:/**Apply KitKat specific translucency.*/private void applyKitKatTranslucency() {// KitKat translucent navigation/status bar.if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {setTranslucentStatus(true);Syst

2021-11-18 11:45:21 262

原创 Android源码的Binder权限是如何控制的?,最新Android笔试题分享

void IPCThreadState::clearCaller(){mCallingPid = getpid(); //当前进程pid赋值给mCallingPidmCallingUid = getuid(); //当前进程uid赋值给mCallingUid}mCallingUid(记为UID),保存Binder IPC通信的调用方进程的Uid;mCallingPid(记为PID),保存Binder IPC通信的调用方进程的Pid;UID和PID是IPCThreadState的成员变量,

2021-11-18 11:41:58 325

原创 Android架构组件JetPack之ViewModel(二),【工作感悟】

}public LiveData getSelected() {return selected;}}public class MasterFragment extends Fragment {private SharedViewModel model;public void onActivityCreated() {model = ViewModelProviders.of(getActivity()).get(SharedViewModel.class);itemSelector.set

2021-11-18 11:38:44 417

原创 Android数据库升级,android开发艺术探索pdf百度网盘

default:break;}}}}其中的SQL的建表语句为:public class SQL {public static final String T_FAVORITE = “favorite”;public static final String CREATE_TABLE_FAVORITE ="CREATE TABLE IF NOT EXISTS " + T_FAVORITE + “(” +"id VARCHAR PRIMARY KEY, " +"title VARCHAR,

2021-11-18 11:32:50 891

原创 Android学习--RelativeLayout相对布局,flutter登录状态管理

android:layout_centerHrizontal 水平居中android:layout_centerVertical 垂直居中android:layout_centerInparent 相对于父元素完全居中android:layout_alignParentBottom 贴紧父元素的下边缘android:layout_alignParentLeft 贴紧父元素的左边缘android:layout_alignParentRight 贴紧父元素的右边缘android:layout_ali

2021-11-17 15:08:55 85

原创 Android基础复习2D图形二,2021年Android开发学习路线

int i = DENSITY;//每角度加为DENSITY的时候,就绘制一条线。while (i <= 360) {x1 = (int) (CIRCLE_CY_HALO_RADIUS1《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》开源分享完整内容戳这里Math.cos(i * Math.PI / 180))circle_cx;y1 = (int) (CIRCLE_CY_HALO_RADIUS1 * Math.sin(i * Math.

2021-11-17 15:06:22 80

原创 Android利用Fmod仿QQ变声音效,Android开发技巧

}…externalNativeBuild {cmake {path “CMakeLists.txt”}}sourceSets {main {jniLibs.srcDirs = [‘src/main/jniLibs’]}}}dependencies {…implementation files(‘libs/fmod.jar’)}fmod使用前调用 org.fmod.FMOD.init(this);进行FMOD的初始化/**播放声音*/extern “C”JNI

2021-11-17 15:03:49 304

原创 Android几种强大的下拉刷新库,kotlin高阶函数源码讲解

android 5.0之后效果是个加载圆圈,还可以接受了,现在很多应用都用这个(5)这时又看到了 baoyongzhang/android-PullRefreshLayout ,This component like SwipeRefreshLayout, it is more beautiful than SwipeRefreshLayout.就是比google的跟漂亮。呵呵!(6)同时,这里也要提下 liaohuqiu/android-Ultra-Pull-To-Ref

2021-11-17 15:00:37 357

原创 Android入门项目(六)Android的wifi开发,androidwifi开发教程

boolean isUpdated = intent.getBooleanExtra(WifiManager.EXTRA_RESULTS_UPDATED, false);Log.i(TAG, "onReceive: WIFI扫描 " + (isUpdated ? “完成” : “未完成”));} else {Log.i(TAG, “onReceive: WIFI扫描完成”);}Message scanResultsMessage = Message.obtain();scanResultsMe

2021-11-17 14:58:06 2478

原创 Android事件分发机制源码解析,Android屏幕适配很难嘛其实也就那么回事

我们回到Activity的dispatchTouchEvent方法,注意当getWindow().superDispatchTouchEvent(ev)这一语句返回false时,即事件没有被任何子View消费时,最终会执行Activity的onTouchEvent:public boolean onTouchEvent(MotionEvent event) {if (mWindow.shouldCloseOnTouch(this, event)) {finish();return true;}r

2021-11-17 14:55:38 38

原创 Android之TelephonyManager类的方法详解,Android开发必会技术

public class TelephonyManagerActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPH

2021-11-17 14:52:54 3412 1

原创 Android之BLE(低功耗)蓝牙开发,kotlin开发安卓

}return bleUtil;}public void startBle() {if (!isStandByBle) {Toast.makeText(context, “该设备不支持蓝牙功能”, Toast.LENGTH_SHORT).show();return;}bleDevices = new ArrayList<>();BleScanRuleConfig scanRuleConfig = new BleScanRuleConfig.Builder()//

2021-11-17 14:49:37 744

原创 Android之AppBarLayout实现悬停吸附伸缩效果,android界面开发Python

主要使用到的方法如下:setCollapsedTitleGravityvoid setCollapsedTitleGravity(int gravity)设置折叠标题和垂直重力的水平对齐方式,当折叠边界中有额外空间超出标题本身所需的空间时,将使用该对齐方式相关的XML属性:CollapsingToolbarLayout_collapsedTitleGravity2.setExpandedTitleGravityvoid setExpandedTitleGravity(int gravity

2021-11-17 14:46:32 1212

原创 android中的Filter接口简介,耗时两个礼拜8000字安卓面试长文

listener 监听过滤操作完成之后发出的通知参见filter(CharSequence)performFiltering(CharSequence)publishResults(CharSequence, android.widget.Filter.FilterResults)public final void filter(CharSequence constraint)启动一个异步的过滤操作。对该方法的调用会取消之前队列中等待处理的过滤请求并且递交新的过滤请求等待执行

2021-11-17 14:43:42 259

原创 Android 自定义View之展开收起的Layout

效果图来看,点击事件触发view的展开收起,并在收起状态下保留了第一个子view显示,这个展开收起其实就是view的高度变化,所以只要控制好高度,就能很简单的实现这个效果。步骤=============================================================1.初始化参数 设置方向等2.根据动画执行进度计算高度初始化class ExpandLinearLayout : LinearLayout {//是否展开,默认展开private var

2021-11-16 12:17:34 226

原创 Android 组件化开源 app -开眼短视频(OpenEyes)

项目地址:darryrzhong/Android-MvvmComponent-App 简介: Android 组件化开源 app -开眼短视频(OpenEyes)更多:作者   提 Bug标签:一款模仿 Eyepetizer | 开眼视频的 开源 app这是一个完全模仿 开眼视频的开源 Demo,个人非常喜欢这款 app 的 UI 风格,由此第二次模仿该 app 进行相关技术的学习与整合,废话不多说,直接上图 ,不论是商业项目还是开源

2021-11-16 12:16:00 944

空空如也

空空如也

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

TA关注的人

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