自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android开发:深入源码剖析图片加载过程,面试官再也不能为难我了

步骤2:解码资源====================================================================作用对图片资源进行解码,并获得图片资源Bitmap。源码解析/*** 步骤说明*/public static Bitmap decodeResource(Resources res, int id, Options opts) {//&nbs

2021-11-11 00:32:32 1288

原创 Android开发已过时,转行风险大,Android原生开发出路在哪

学习成本低,不意味着就没有成本编程难么?说实话还是挺难的,这里我是针对大部分没有基础的人来说的,不排除有天才、大神能无师自通。很多人对编程的印象来自于电影,即使现实中有程序员朋友,你也很难 get 到他每天到底在电脑前干啥。为什么用键盘输入一句话,电脑就开始自动帮你干活了,这些你《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》浏览器打开:qq.cn.hn/FTe 免费领取没有自己写代码之前,是没有体感的。隔行如隔山,就跟我读别的行业的文章跟天书一样,想转行,是

2021-11-11 00:26:33 484

原创 Android开发之图片压缩处理,闭关在家37天“吃透”这份345页PDF

private Luban build() {return new Luban(this);}}我们看到了是一个静态的内部类Builder,我们这里看到了有5个变量,上面我们说道了,为了减少初始化数据的代码,就拿这个举例子说明,我如果有4个地方调用这个鲁班压缩,其中这4个地方,mTargetDir,mLeastCompressSize这2个变量的值都是一样的,其他3个不一样,按照我们以往的写法都得一个一个的赋值,要写4遍,那如果使用建造者模式了,这里就只用写一遍赋值,这2个变量。其他3个不一样,就得

2021-11-11 00:24:22 1201

原创 Android开发之Theme、Style探索及源码浅析,作为一个Android程序员

在新版本的Android中添加了很多新的Theme,而老版本又不兼容这些Theme,所以很多时候我们可能需要处理一下这种兼容性问题,譬如我们在res/values/styles.xml文件中定义如下Theme:当我们想在Android3.0(API 11)以上使用新的Theme则可以res/values-v11目录下定义如下Theme:这样当我们编译的APK在不同的设备上运行时就能自己切换选择适合自己平台的Theme了。2-4 Android系统预制的Theme与Style选择话说Andro.

2021-11-11 00:22:02 1583

原创 Android开发中如何实现折线图的方法 (1),跨平台移动开发工具

其次,对于XCL-chart定制图表也不错,但其实较为适应固定图表,如果需要满足滑动界面操作的话就一言难尽了;再者是achartenginee,这个首先就是界面不怎么样,然后就是适应性不强,不能满足开发者的需求。最后来说说我们今天的目标:hellochart,据说是非常适合初入门的开发者使用,简单快捷,引入也很方便,而且界面美观,尤其是自己亲历使用之后能感觉到hellochart的代码是比较清晰的,操作时对应的滑动或者是缩放都很流畅。支持饼状图、折线图、柱状图、泡泡型······ 基本可以可以说是“只.

2021-11-11 00:19:50 1920

原创 Android安全——客户端安全要点,已拿offer附真题解析

localBroadcastManager.registerReceiver(myReceiver, filter);发送本地广播Bundle bundle = new Bundle();bundle.putParcelable(“DATA”, content);Intent intent = new Intent();intent.setAction(“MY_ACTION”);intent.putExtras(bundle);LocalBroadcastManager.getInstan

2021-11-11 00:16:00 1614

原创 Android学习笔记之AndroidManifest,android视频播放器开发

一个共享的用户名,它只有在设置了sharedUserId属性的前提下才会有意义E、versionCode是给设备程序识别版本(升级)用的必须是一个interger值代表app更新过多少次,比如第一版一般为1,之后若要更新版本就设置为2,3等等。。。F、versionName这个名称是给用户看的,你可以将你的APP版本号设置为1.1版,后续更新版本设置为1.2、2.0版本等等。。。G、installLocation安装参数,是Android2.2中的一个新特性,installLocation有三个

2021-11-11 00:14:34 267

原创 Android 消息推送:个推,flutterrow居中

请登录个推网址,选择登记应用并填写应用名称和包名信息,完成应用创建:点击应用配置,获取到相应的AppID、AppKey、AppSecret信息:2. 打开项目工程启动Android Studio, 打开您之前创建的Android项目工程:如果需要从原有的Eclipse项目导入,请选择Import project (Eclipse ADT, Gradle, etc.):3. 添加个推SDK及相关配置老版本升级到 2.9.5.0 及以上版本注意事项:1、替换旧的GetuiS..

2021-11-09 13:00:49 546

原创 Android 架构演进及未来,腾讯&字节&网易&华为Android面试题分享

首先,我觉得Android开发的思维一定不要局限,移动开发不仅仅是只是App开发,比如 IOT、音视频、边缘计算、VR/AR等,许多热门的技术浪潮,也都属于移动开发的范畴,这方面的知识有时间的话可以研究一下。Android架构演进=======================================================================MVC结构清晰,低耦合,有利于组件重用;但是Activity/Fragment中代码较多,结构比较复杂;MVP解决了MVC中Ac

2021-11-09 12:58:39 209

原创 Android 时钟TextClock 使用及源码分析,Android面试题2021

「getFormat12Hour()」:返回12小时制的格式。「getFormat24Hour()」:返回24小时制的格式。「getTimeZone()」:指示此视图当前使用的时区。「is24HourModeEnabled()」:指**「系统」**当前是否使用 24 小时模式。「onVisibilityAggregated(Boolean isVisible:)」:当此视图的用户可见性可能受到此视图本身、祖先视图或此视图附加到的窗口的更改的影响时调用。「refreshTime()」:如有必要,更新

2021-11-09 12:57:02 659

原创 Android 开发艺术探索笔记(22),h5移动端开发工具

ScheduleThreadPool通过newScheduleThreadPool创建,它的核心线程数是固定的,而非核心线程数没有限制,并且当非核心线程闲置时,会被立刻回收。这个线程池主要用于执行定时任务和具有固定时间周期的重复任务。SingleThreadPool通过newSingleThreadPoolExecutor创建。它只有一个核心线程,它确保所有的任务都在一个行程中按顺序执行。它的意义在于同于所有外界任务到一个线程中,这使得这些任务之间不用处理线程同步的问题。线程池的用法:B.

2021-11-09 12:54:50 6805

原创 Android 开发者计划近半年的跳槽,面试四家,斩获3家Offer

Handler进程间通信序列化动画native崩溃捕获原理结合项目提问Recyclerview的点击事件原理启动一个空的apk,回启动几个线程手写算法A公司三面跳槽原因原来公司规模预期薪资个人优势感受:1.简历上写的一定要了解,并且知道原理2.多熟悉项目,找出一些能聊得功能点3.崩溃捕获,以及解决(java ,native)4.优化需要知道(大厂都会问)5.了解由点到面,需要把知识连贯起来..

2021-11-09 12:52:38 70

原创 Android 友盟社会化组件-分享实现,androidjetpack应用指南

<activityandroid:name=“com.umeng.socialize.view.ShareActivity”android:configChanges=“orientation|keyboard”android:launchMode=“singleTask”android:noHistory=“true”android:theme="@style/Theme.UMDialog"android:windowSoftInputMode=“stateVisible|adjus..

2021-11-09 12:50:18 152

原创 Android 分贝测试仪功能,你会的还只有初级Android工程师的技术吗

android:textSize=“40sp”android:textStyle=“bold”/><ImageViewandroid:id="@+id/iv_record_wave_right"android:layout_width=“wrap_content”android:layout_height=“wrap_content”android:layout_margin=“5dp”android:background="@drawable/record_wave_right"

2021-11-09 12:48:07 297

原创 Android 保活比较好的方式,阿里巴巴发布“限量版”Android零基础宝典

private void goHuaweiSetting() {try {showActivity(“com.huawei.systemmanager”,“com.huawei.systemmanager.startupmgr.ui.StartupNormalAppListActivity”);} catch (Exception e) {showActivity(“com.huawei.systemmanager”,“com.huawei.systemmanager.optimize.boot

2021-11-09 12:46:23 396

原创 android 中DrawerLayout实现抽屉,Android-Camera内存问题剖析

package com.example.drawerlayout;import java.util.ArrayList;import android.os.Bundle;import android.app.ActionBar;im《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》浏览器打开:qq.cn.hn/FTe 免费领取port android.app.Activity;import android.content.Context;import

2021-11-09 12:44:16 98

原创 Android Zygote 从何而来?揭开Android系统启动的面纱,apk瘦身的实现方式

bootloader在android系统初始化前运行,他不属于android操作系统部分。通常情况下厂商会在bootloader中做一些加密及安全相关的功能。bootloader程序分两个阶段执行。第一阶段,它检测外部RAM并加载第二阶段的辅助程序。在第二阶段,bootloader设置网络、内存等,设置内核运行参数等,即为kernel运行做准备。你可以在aosp中找到这部分代码(android版本2.xx,后面有改动),aosp/bootable/bootloader/legacy/usbloader

2021-11-09 12:42:51 156

原创 ajax分析 学习,kotlin构造器

Ajax 基本上就是把 JavaScript 技术和 XMLHttpRequest 对象放在 Web 表单和服务器之间。当用户填写表单时,数据发送给一些 JavaScript 代码而不是 直接发送给服务器。相反,JavaScript 代码捕获表单数据并向服务器发送请求。同时用户屏幕上的表单也不会闪烁、消失或延迟。换句话说,JavaScript 代码在幕后发送请求,用户甚至不知道请求的发出。更好的是,请求是异步发送的,就是说 JavaScript 代码(和用户)不用等待服务器的响应。因此用户可以继续输《An

2021-11-08 11:12:31 100

原创 ajax分析 学习(1),android0基础

try {xmlHttp = new ActiveXObject(“Msxml2.XMLHTTP”);} catch (e) {try {xmlHttp = new ActiveXObject(“Microsoft.XMLHTTP”);} catch (e2) {xmlHttp = false;}}xmlHttp = new ActiveXObject(“Msxml2.XMLHTTP”);     xmlHttp = new ActiveXObjec

2021-11-08 11:10:55 463

原创 Activity的生命周期,这可能是目前最全的

为了便于大家更好的理解,我简单的写了一个Demo,不明白Activity周期的朋友们,可以亲手实践一下,大家按照我的步骤来。第一步:新建一个Android工程,我这里命名为ActivityDemo.第二步:修改ActivityDemo.java(我这里重新写了以上的七种方法,主要用Log打印),代码如下:[java]  view plain copypackage com.tutor.activitydemo;import android.app.Activi

2021-11-08 11:08:41 190

原创 Activity的任务栈Task以及启动模式与Intent的Flag详解(经典博文,值得收藏

如何查看当前系统的任务栈手机中 --> 长按home或者多任务键会进到 概览屏幕 的一个界面命令行中 --> adb shell dumpsys activity概览屏幕(Overview Screen)概览屏幕(也称为最新动态屏幕、最近任务列表或最近使用的应用)是一个系统级别 UI,其中列出了最近访问过的Activity和任务。 用户可以浏览该列表并选择要恢复的任务,也可以通过滑动清除任务将其从列表中删除。 对于 Android 5.0 版本(API 级别 21),包含多个文档的

2021-11-08 11:06:39 321

原创 Activity-的-36-大难点,你会几个?,android游戏开发实践指南

1.8 Activity 的四种状态[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UFcrVAzd-1636340687545)(//upload-images.jianshu.io/upload_images/16244318-2c137889038ab97d.png?imageMogr2/auto-orient/strip|imageView2/2/w/864/format/webp)]runnig :用户可以点击,activity 处于栈顶状态。paused :

2021-11-08 11:05:04 3171

原创 A010-menu资源,看完老板哭着让我留下来

// 添加子菜单SubMenu subMenu = menu.addSubMenu(1, ITEM5, 5, “子菜单1”);subMenu.add(1, ITEM7, 1, “子菜单项1”);subMenu.add(1, ITEM8, 2, “子菜单项2”);subMenu.add(1, ITEM9, 3, “子菜单项3”);menu.addSubMenu(1, ITEM6, 6, “子菜单2”);// Inflate the menu; this adds items to the acti

2021-11-08 11:03:13 220

原创 2021牛转乾坤:新花样玩转Android组件化架构实践,15K-50K的详细Android学习指南

7:多进程通信问题。binder优势。aidl生成的java类细节。多进程遇到哪些问题?8:动态代理传入的参数都有哪些?非接口的类能实现动态代理吗?ASM的原理9:Application和Activity在Context的继承树上有何区别?二者使用上有何不同?10:任意一颗二叉树,求最大节点距离二面1:设计一个日志系统。2:内存泄露的分类。怎么查看内存泄露的问题3:touch事件源码问题。4:组件化的问题。module和app之间的区别。moduler通信是如何实现的。5:native奔溃

2021-11-08 10:59:42 263

原创 Android——SQLite数据库使用详解,android应用开发实战

#FFB6C1#FF0000#000000#FFFFFF#0000FF#708090#87CEEB#008000#FFA500#808080button_style.xml按钮样式:<?xml version="1.0" encoding="utf-8"?><shape xmlns:android=“http://schemas.android.com/apk/res/android”android:shape=“rectangle” > &lt.

2021-11-07 23:06:39 508

原创 AndroidStudio 的Profiler+Mat检测内存泄漏,安卓rxjava获取网络时间

点击MEMORY部分点击下载 开始记录生成右键Heap Dump导出文件然后将该文件通过sdk里的hprof-conv.exe转一下文件注意:adb调试是在你的hprof-conv的目录下 将你生成的hprof文件转一下文件  目录就是生成temp.hprof文件以及生成mat需要的文件目录(任意目录)输入下面的命令:hprof-conv D:\MemoryAnalyse\memory-20210219T000227.hprof D:\MemoryAnalyse\mem.

2021-11-07 23:05:14 93

原创 Android-音视频学习系列(一)-JNI-从入门到精通,androidstudio开发教程百度云

char c_byte = jbyte1;LOGD(“jbyte-> %d”, c_byte);//3. 接收 Java 传递过来的 char 值unsigned short c_char = jchar1;LOGD(“char-> %d”, c_char);//4. 接收 Java 传递过来的 short 值short s_short = jshort1;LOGD(“short-> %d”, s_short);//5. 接收 Java 传递过来的 long 值long

2021-11-07 23:03:09 550

原创 Android-面试官:简述一下-View-的绘制流程,这个都答不出来还想进大厂?

}try {mView.measure(childWidthMeasureSpec, childHeightMeasureSpec);} finally {Trace.traceEnd(Trace.TRACE_TAG_VIEW);}}可以看出从mView(最顶层ViewGroup)开始进行测量操作,然后逐层遍历View并执行measure操作。MeasureSpacMeasure是View绘制三个过程中的第一步,提到Measure就不得不提MeasureSpac它是一个32位int类型数值

2021-11-07 23:01:13 199

原创 Android-面试中常问的MMAP到底是啥东东?原理及应用解析

unsigned long (*get_area)(struct file *, unsigned long,unsigned long, unsigned long, unsigned long);…get_area = current->mm->get_unmapped_area;if (file && file->f_op && file->f_op->get_unmapped_area)get_area = file->f

2021-11-07 22:59:28 211

原创 Android-事件体系全面总结+实践分析,kotlin线程异步

( 1955): MainActivity->onTouchEvent这里顶级的ViewGroup是MainActivity(DecorView),首先down事件下发到子View,然后子View没消费它,又一层层交给父View消费,最终无人消费传回了MainActivity,down事件结束。由上面的源码分析可知,这时的mFirstTouchTarget是空,如果move事件来了,那么直接执行源码编号2部分的else拦截事件,所以后续事件的log就是上面这样不再下发(同时也没有onIntercep

2021-11-07 22:53:30 233

原创 Android Studio和ADT使用技巧

高大上……之前用Eclipse习惯了,换到IntelliJ难道要重新适应快捷键?不需要,我们把快捷键方案换到Eclipse即可,过程如下:File>Settings>KeyMap ,这里可以根据我们的习惯进行修改定制:赞。交互和速度方面感觉都比Eclipse要好一些,难怪官方推荐。总结一下Android Studio的使用小技巧:1.定位到当前打开文件:如上图A按钮,Scroll from Source2.折叠所有打开的树图如上图B标示,Collplase All3..

2021-11-06 15:29:10 247

原创 Android Studio 教程:入门开发第一个程序

区域1介绍这个区域是运行和调试相关的操作。1、编译2中显示的模块2、当前项目的模块列表3、运行2中显示的模块4、调试2中显示的模块5、测试2中显示的模块代码覆盖率6、调试安卓运行的进程7、重新运行2中显示的模块8、停止运行2中显示的模块区域2介绍这个区域主要是和Android设备和虚拟机相关的操作。1、虚拟设备管理。2、同步工程的Gradle文件,一般在Gradle配置被修改的时候需要同步一下。3 、项目结构,一些项目相关的属性配置。4、Android SDK管理

2021-11-06 15:27:31 355

原创 Android Studio 插件

11.Exynap               ctrl+shift +d/*得到默认的首选项 get default prefs通过取名字的首选项 get prefs via name设定画面横向方向 set screen orientation landscape得到报警管理者 get alarm manager集报警 set alarm设置重复报.

2021-11-06 15:26:01 142

原创 Android Studio 4

Build Analyzer 窗口在左侧的树中组织可能的构建问题。你可以检查并单击每个问题,以在右侧面板中调查其详细信息。当 Android Studio 分析构建时,它将计算确定构建持续时间的一组任务,并提供可视化帮助你了解每个任务的影响,你还可以通过展开 Warnings 节点来获取有关警告的详细信息。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lgFEU2JF-1636183412992)(https://user-gold-cdn.xitu.io/2020/5/

2021-11-06 15:23:49 155

原创 Android SpannableString详细解析

可以看出所有Span都继承于CharacterStyle这个抽象类,另外MetricAffectingSpan、ReplacementSpan和ClickableSpan都是抽象类,下面展示一些常用的SpanForegroundColorSpan 前景色SpannableString spannableString = new SpannableString(“如果我是陈奕迅”);ForegroundColorSpan foregroundColorSpan = new ForegroundColo

2021-11-06 15:21:46 2844

原创 Android SDK 网络模块解析

但是,基于开源网络框架实现也有一些缺点:功能较多,代码逻辑复杂,学习成本较高;内部缺陷修复难度大甚至需要依赖作者来更新维护;包含很多可能使用不到的功能以及冗余的代码,引入后会导致体积增大很多。基于开源网络框架实现网络请求方案有利有弊,可以根据实际需要选择合适的开源网络框架。2.2 基于系统方法基于系统方法实现的网络请求方案通常采用 HttpURLConnection 或 HttpClient:HttpURLConnection:在 JDK 的 java.net 包提供的一

2021-11-06 15:19:38 305

原创 Android SDK 网络模块解析(1)

Android 中有很多优秀的开源网络框架,例如:Volley、OkHttp、Retrofit + RxJava 、NoHttp 等,基于开源网络框架可以方便快捷地实现网络请求功能。基于开源网络框架实现有如下优点:可以减少代码量,将重点放在业务上,不需要在技术框架上耗费过多的时间;功能丰富,使用门槛低;流行的开源网络框架经过众多应用的验证,性能相对稳定。但是,基于开源网络框架实现也有一些缺点:功能较多,代码逻辑复杂,学习成本较高;内部缺陷修复难度大甚至需要依赖作者来更.

2021-11-06 15:17:24 329

原创 Android P 适配指南

对应sdk中代码://推荐使用的方法,官方不限制public int getMonthLength(CalendarDate var1) {BaseCalendar.Date var2 = (BaseCalendar.Date)var1;int var3 = var2.getMonth();if (var3 >= 1 && var3 <= 12) {return this.getMonthLength(var2.getNormalizedYear(), var3);

2021-11-06 15:15:12 424

原创 Android OpenCV(三十七):轮廓外接多边形

public static void approxPolyDP(MatOfPoint2f curve, MatOfPoint2f approxCurve, double epsilon, boolean closed)参数一:curve,输入轮廓像素点。参数二:approxCurve,多边形逼近结果,包含多边形顶点坐标集。参数三:epsilon,多边形逼近精度,原始曲线与逼近曲线之间的最大距离。参数四:closed,逼近曲线是否闭合的标志,true表示封闭,false,表示不封闭。

2021-11-06 15:13:30 363

原创 android okhttp异步请求使用详解 (2)

okhttp主要功能二、okhttp基本使用1.发起get异步请求[2.发起《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》浏览器打开:qq.cn.hn/FTe 免费领取post提交请求](about:blank#2post_84)总结一、OKHttp简介=====================================================================OkHttp 是一款高效的 H..

2021-11-06 15:11:41 361

空空如也

空空如也

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

TA关注的人

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