- 博客(44)
- 收藏
- 关注
原创 AsyncTask 使用及封装实践,头条android面试算法
AsyncTask的简单使用AsyncTask的封装使用AsyncTask使用注意事项AsyncTask的使用例子简介AsyncTask ,异步任务。没错,就想字面上理解的那样。它允许我们在子线程执行耗时任务,在UI 线程更新操作(如更新进度条等)。简单来说,就是帮我们做好了子线程与UI 线程的通讯,我们只需要调用响应的方法实现即可。底层是用Handler消息机制实现的。在Android开发中,我们经常需要下载各种东西,为了给用户较好的体验,我们经常需要显示下载进度。今天我们..
2021-11-11 01:14:27 1109
原创 apt-get apt-cache,细数Android开发者的艰辛历程
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》浏览器打开:qq.cn.hn/FTe 免费领取linuxidc@localhost:~$ apt-cache pkgnamesaccount-plugin-yahoojpceph-fusedvd+rw-toolse3gnome-commander-datagrub-gfxpayload-listsgweled…示例:2 用关键字搜索包这个命令在你不确定包名时
2021-11-11 01:12:37 1217
原创 APP路由框架与组件化简析,熬了整整30天
APP路由的扫描及注册逻辑路由跳转target页面能力路由调用target服务能力APP中,在进行页面路由的时候,经常需要判断是否登录等一些额外鉴权逻辑所以,还需要提供拦截逻辑等,比如:登陆。三方路由框架是否是APP强需求答案:不是,系统原生提供路由能力,但功能较少,稍微大规模的APP都采用三方路由框架。Android系统本身提供页面跳转能力:如startActivity,对于工具类APP,或单机类APP,这种方式已经完全够用,完全不需要专门的路由框架,那为什么很多...
2021-11-11 01:11:06 577
原创 Android题集四大组件之Service,kotlin协程并发
Service的启动方式?如果启动方式交织在一起的话,会出现什么情况?Service 有绑定模式和非绑定模式,以及这两种模式的混合使用方式。不同的使用方法生命周期方法也不同。非绑定模式:当第一次调用 startService 的时候执行的方法依次为 onCreate()、onStartCommand(),当 Service 关闭的时候调用 onDestory 方 法。绑定模式:第一次 bindService()的时候,执行的方法为 onCreate()、 onBind()解除绑定的时候会执行
2021-11-11 01:09:12 862
原创 Android面试官:说说你对 Binder 驱动的了解?,android开发者选项说明
????️:binder 机制将业务细分为不同的命令,调用 binder_ioctl() 时传入具体的命令来区分业务,比如有读写数据的 BINDER_WRITE_READ 命令、 Service Manager 专用的注册为 DNS 的命令等等。BINDER_WRITE_READ 命令最为关键,其细分了一些子命令,比如 BC_TRANSACTION、BC_REPLY 等。BC_TRANSACTION 就是上层最常用的 IPC 调用命令了,AIDL 接口的 transact 方法就是这个命令。面试官:bi
2021-11-11 01:07:39 702
原创 Android通讯录开发之获取运营商号码段(移动、联通,Android插件化+模块化+组件化+热修复
import java.util.HashMap;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;import android.text.TextUtils;/**配置文件控制器
2021-11-11 01:05:24 842
原创 Android通用的Adapter,或许你用我这一个就够了,音视频开发面试
@Overridepublic long getItemId(int position){return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent){ViewHolder viewHolder = null;if (convertView == null){convertView = mInflater.inflate(R.mLayoutId, paren
2021-11-11 01:03:02 970
原创 Android进阶必学系列:Bitmap的高效加载和Cache,android音视频开发面试题
}try {if (in != null) {in.close();}if (out != null) {out.close();}} catch (IOException e) {e.printStackTrace();}}return false;}/**图片的url转成key,使用MD5*/private String hashKeyFormUrl(String url) {try {MessageDigest digest = MessageDigest.getIns
2021-11-11 01:00:48 1373
原创 Android进阶---自定义View:MeasureSpec的真正意义与View大小控制
android:layout_width=“match_parent”android:layout_height=“match_parent”那么按照我们的期望,希望子View的尺寸要是300dp*300dp,如果子View的布局参数是android:layout_width=“100dp”android:layout_height=“100dp”按照我们的期望,希望子View的尺寸要是100dp*100dp,如果子View的布局参数是android:layout_width=“wrap_.
2021-11-11 00:59:13 414
原创 Android中的ShareSDK学习,android开发软件安装JAVA路径
<activityandroid:name=“com.mob.tools.MobUIShell”android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges=“keyboardHidden|orientation|screenSize”android:screenOrientation=“portrait”android:windowSoftInputMode=“stateHidden|adj
2021-11-09 13:43:22 532
原创 Android中Kotlin简单入门(一),成功入职阿里
Kotlin 非常适合开发 Android 应用程序,将现代语言的所有优势带入 Android 平台而不会引入任何新的限制:1.兼容性:Kotlin 与 JDK 6 完全兼容,保障了 Kotlin 应用程序可以在较旧的 Android 设备上运行而无任何问题。Kotlin 工具在 Android Studio 中会完全支持,并且兼容 Android 构建系统。2.性能:由于非常相似的字节码结构,Kotlin 应用程序的运行速度与 Java 类似。 随着 Kotlin 对内联函数的支持,使用 lambda
2021-11-09 13:41:32 239
原创 android与H5交互方法简介,四面楚歌的Android工程师该何去何从
3.2.1 loadUrl()方式3.2.2 evaluateJavascript()方式3.3.JS调用Java代码3.3.1addJavascriptInterface()方式3.3.2拦截请求方式3.3.2拦截对话框方式1.前言===============================================================app开发过程中,利用原生+h5模式来开发是比较常见的,刚学习一段时间的安卓技术,感觉对我来说使用h...
2021-11-09 13:40:00 2580
原创 Android——SimpleAdapter的简单使用,感悟分享
在Android中,Adapter(适配器)是数据与ui之间的桥梁,它把后台数据与前端ui连接到一起,是一个展示数据的载体。Adapter有很多的接口、抽象类、子类可以使用,以下是常用的几个适配器。BaseAdapter:是一个抽象类,继承它需要实现较多的方法,所以也就具有较高的灵活性;ArrayAdapter:支持泛型操作,最为简单,只能展示一行字。SimpleAdapter:有最好的扩充性,可以自定义出各种效果。SimpleCursorAdapter:可以适用于简单的纯文字型ListView,.
2021-11-09 13:38:06 867
原创 Android——LitePal第三方数据库框架详解,android插件化好处
使用步骤如下android studio中可以直接添加依赖:// litepal数据库compile ‘org.litepal.android:core:1.6.1’下面的操作eclipse和android studio都是一样的了。eclipse中在项目中新建libs文件夹,把jar包行进去:新建assets目录,然后创建 litepal.xml资源文件,用于创建数据库名称、数据库版本、表名、数据库存放的位置;<?xml version="1.0" encoding="UTF-8"?
2021-11-09 13:36:33 427
原创 Android——ListView使用ActionMode实现的上下文长按多选菜单
</android.support.constraint.ConstraintLayout>AS中的设计视图如下,接着是checkbox_item.xml,这个用的是相对布局,个人感觉还是这个相对整齐的排列还是喜欢用相对布局。这个布局文件描述的是每个ListView的选项,同时每个选项都包括一个ImageView和TextView,分别用来显示每个项前面的图片以及后面的文本,这个也可以根据需求自定义。<?xml version="1.0" encoding="utf-8"?>.
2021-11-09 13:34:20 403
原创 Android—Dagger2-让你爱不释手--终结篇(附视频讲解)
每个页面对应自己的Component,页面Component管理着自己页面所依赖的所有类实例。因为Component,Module,整个app的类实例结构变的很清晰。解耦假如不用dagger2的话,一个类的new代码是非常可能充斥在app的多个类中的,假如该类的构造函数发生变化,那这些涉及到的类都得进行修改。设计模式中提倡把容易变化的部分封装起来。我们用了dagger2后。假如是通过用Inject注解标注的构造函数创建类实例,则即使构造函数变的天花乱坠,我们基本上都不需要修改任何代码。假如是通过
2021-11-09 13:31:57 196
原创 android-实现一个简单的视频弹幕,Android未来路在何方
二、原理解析=================================================================1.开始的思路。(1)自定义ViewGroup-XCDanmuView,继承RelativeLayout来实现,当然也可以继承其他三大布局类。先展示一下项目布局。(2)需要将界面设置为横屏,并对它进行一些配置。下面是清单文件的代码。<?xml version="1.0" encoding="utf-8"?><manifest xmln
2021-11-09 13:25:11 668
原创 Android Dialog 的一些使用和优化心得(DialogFragment的使用和优化)
private TextView tv_no;private OnYesClickListener onYesClickListener;private onNoClickListener onNoClickListener;public void setOnNoClickListener(ExitFragment.onNoClickListener onNoClickListener) {this.onNoClickListener = onNoClickListener;}public vo
2021-11-08 11:56:28 270
原创 Android Binder 的主要内容概述以及特性和原理,Android开发前景怎么样
3.1 性能?[图片上传失败…(image-675747-1628086130715)]共享内存虽然无需拷贝,但控制复杂,难以使用。Binder 只需要一次数据拷贝,性能上仅次于共享内存。Socket 作为一款通用接口,其传输效率低,开销大,主要用在跨网络的进程间通信和本机上进程间的低速通信。消息队列和管道采用存储-转发方式,即数据先从发送方缓存区拷贝到内核开辟的缓存区中,然后再从内核缓存区拷贝到接收方缓存区,至少有两次拷贝过程。3.2 稳定性?Binder 基于 C/
2021-11-08 11:54:32 300
原创 Android App关于应用程序升级的一点内容,app软件开发课程
3 android:versionName="1.0"<!--String类型,系统显示用户-->4></manifest>我们使用versionCode自增来表明版本升级,无论是大的改动还是小的改动,而versionName是显示给用户看的软件版本,作为显示使用。所以我们选择了VersionCode作为我们定义版本升级的参数。2.工程目录模拟一个独立的项目,工程目录设置的合理严谨一些,而不是仅仅一个
2021-11-08 11:52:48 121
原创 Android App Bundle探索,android系统软件开发
Dynamic Feature Apk:《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》浏览器打开:qq.cn.hn/FTe 免费领取动态特性Apk,这是组件化的一个好的新方案,通过动态下发模块来做到功能的动态更新bundletool工具当你选择将App打包成.aab(Android App Bundle)的后缀文件之后,如何测试你的Apk是否可用,bundletool工具正是用来处理这个aab文件的。Github:https://github.com.
2021-11-08 11:50:53 143
原创 Android Activity 启动出现白屏带标题或闪屏问题解决,移动开发者社区
}第一种处理方式:设置Theme窗口背景windowBackground,通过以Splash的形式出现,作为启动图片注意:如果在Activity里做的操作处理任务比较多,可能还是会出现白屏或者闪屏现象第二种处理方式:在第一种的基础上定义一个SplashActivity过渡加载跳转到主界面Activitypublic class SplashActivity extends AppCompatActivity {@Overrideprotected void on
2021-11-08 11:46:50 869
原创 android activity Intent 传值 传对象,android开发框架开源登录界面
import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class MainActivity extends Activity {EditText et_cont《Android学习笔记
2021-11-08 11:45:08 110
原创 android activity Intent 传值 传对象(1),头条三面技术四面HR
android activity Intent 传值 传对象==============================话不多说,直接上代码,简单粗暴main。javapackage com.yqy.yqy_intenttest;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.Vie
2021-11-08 11:42:54 111
原创 Android 8 通知渠道(Notification Channels),美团移动端开发工程师
1.通过构造方法NotificationChannel(channelId, channelName, importance)创建一个NotificationChannel对象2.通过createNotificationChannel ( )来注册NotificationChannel一个对象NotificationManager notificationManager =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVI
2021-11-08 11:40:53 1472
原创 Android 6,android网络开发技术实战详解
versionName “1.0” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } }}检查并申请权限我们需要在用到权限的地方,每次都检查是否APP已经拥有权限,比...
2021-11-08 11:39:16 173
原创 Android开发之——Android和WebView相互调用,移动开发工程师的发展路线
object WebViewManager {fun getWebUrl(name: String): String {return “file:///android_asset/www/${name}.html”}}三 WebView处理3.1 页面中添加WebView<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android
2021-11-07 23:49:37 760
原创 Android开发一年,跳槽阿里,成功拿下offer,定级P6,嵌入式开发面试题
面试从9月初开始准备面试的东西,在9月底开始精投,投递的公司有:阿里 被捞+面试中软国际 被捞后拒面试(因为不想去做外包)微信 、腾讯视频、全民K歌 沉QQ音乐 被捞+面试华为 沉字节跳动抖音部 沉美团 被捞后拒面试(因为要去现场面试,我这边请假有点麻烦)阿里是投的钉钉,因为比较崇拜马云,所以我本身就对阿里有好感而且流程很快效率很高,基本当天或第二天就会出结果。面试官很守时、而且很有礼貌,在不会的时候会适当给出提示,没有啥架子,总的来说体验比去年春招时好很多
2021-11-07 23:47:18 414
原创 Android应用程序启动(根Activity)过程,跨平台app开发框架首选
ActivityThread启动Activity注意,该篇学习之前,要弄懂的知识:系统的启动流程按下电源键后,一个Android系统是怎么启动的。主要涉及到 Init进程、Zygote、SystemServer、Launcher的知识概念应用程序进程的启动过程一个应用程序所在进程是怎么创建出来的。就是 Zygote的Socket启动一个死循环来等待AMS发来启动一个应用程序进程的请求主要涉及到 ActivityManagerService(即AMS)、创建Binder线程池、创建消.
2021-11-07 23:45:44 300
原创 Android应用--简、美音乐播放器获取专辑图片(自定义列表适配器)
{viewHolder = new ViewHolder();convertView = LayoutInflater.from(context).inflate(R.layout.music_list_item_layout, null);viewHolder.albumImage = (ImageView) convertView.findViewById(R.id.albumImage);viewHolder.musicTitle = (TextView) convertView.findVi
2021-11-07 23:44:05 244
原创 Android学习指南 — Java知识点汇总,零基础android入门
可以声明成员变量、方法、类以及本地变量final 成员变量必须在声明的时候初始化或者在构造器中初始化,否则就会报编译错误final 变量是只读的final 申明的方法不可以被子类的方法重写final 类通常功能是完整的,不能被继承final 变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销final 关键字提高了性能,JVM 和 Java 应用都会缓存 final 变量,会对方法、变量及类进行优化方法的内部类访问方法中的局部变量,但必须用 final..
2021-11-07 23:42:35 297
原创 Android学习--Fragment,金九银十正确打开方式
android:orientation=“vertical”android:background="#00ff00">然后分别新建LeftFragmet和RightFragment两个类继承Fragment,并且重写onCreateView()方法package com.example.fragmenttestimport android.os.Bundleimport android.view.LayoutInflaterimport android.view.Viewimport
2021-11-07 23:40:22 341
原创 Android基于MediaBroswerService的App实现概述,最新Android面试合集
可以将音乐播放器的状态同步到第三方App能够和第三方App间进行相互通信类似于CarLife 对音乐App的唤起,首先第三方App开启后,即可拉起音乐App,然后获取其中的歌单,打开歌单之后,获取歌单内的歌曲列表,点击进行播放,可以进行播放,暂停,下一首,上一首的控制。技术实现谷歌官方提供了MediaBroswerService,通过其可以帮助我们实现上述的需求。MediaBroswerServiceAndroid多媒体架构Android多媒体播放采用client,server架构,一.
2021-11-07 23:33:57 835
原创 android图片加载库Glide4使用教程(项目中如何快速将Glide3替换成Glide4)
详细请看:Glide4.4.0报java.lang.NoSuchMethodError普通加载图片Glide.with(this.getApplicationContext()).load(url).into(mImage);占位图和错误时显示图片RequestOptions options = new RequestOptions();options.placeholder(R.drawable.ic_launcher_background);options.error(R.mi
2021-11-07 23:31:44 339
原创 Android 图像处理
Duang Duang~学习一下原理:Matrix:其中e,j,o,t为偏移量aR+bG+cB+dA+efR+gG+hB+iA+jkR+lG+mB+nA+opR+qG+rB+sA+t=R1G1B1A1在onCreate函数中用post来获取组件的宽高:mGroup.post(new Runnable() {@Overridepublic void run() {mEtWidth = mGroup.getWidth() / 5;mEtHeight = mGroup.get
2021-11-06 16:09:34 525
原创 Android 原生控件ViewFlipper实现淘宝头条垂直滚动广告条
二、ViewFlipper的常用属性android : antoStart 设置自动加载下一个Viewandroid : flipInterval 设置View之间切换的时间间隔android : inAnimation 设置切换View的进入动画android : outAnimation &n.
2021-11-06 16:07:36 161
原创 Android 使用讯飞语音SDK
private String voicer = “xiaoyan”; // 默认发音人private String[] cloudVoicersEntries;private String[] cloudVoicersValue;private int mPercentForBuffering = 0; // 缓冲进度private int mPercentForPlaying = 0; // 播放进度private RadioGroup mRadioGroup; // 云端/本地单选按钮pri
2021-11-06 16:05:52 368
原创 Android 使用自定义UncaughtExceptionHandler捕获异常
初始化@param context*/public void init(Context context) {this.context = context;// 获取系统默认的UncaughtException处理器mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler();// 设置该CrashHandler为程序的默认处理器Thread.setDefaultUncaughtExceptionHandler(thi..
2021-11-06 16:03:28 315
原创 android 五大应用开发框架
1、Linux KernelAndroid基于Linux 2.6提供核心系统服《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》浏览器打开:qq.cn.hn/FTe 免费领取务,例如:安全、内存管理、进程管理、网络 堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。 如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以
2021-11-06 16:01:29 1125
原创 Android 主流通用常用框架汇总(持续更新)
开发模式相关控件相关框架动画相关框架网络请求框架1.RetrofitRetrofit 是 Square 公司出品的 HTTP 请求库, 同时是 Square 是最早开源项目之一, Retrofit 是目前 Android 最流行的 Http Client 库之一官网地址 http://square.github.io/retrofit/github https://github.com/square/retrofit2.okhttpOkHttp 是 Sq..
2021-11-06 15:59:15 3610
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人