自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Windows安装repo的真正解决方案,看完直接跪服

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-10.0.0_r25 --worktree这里的 `--worktree` 参数非常重要,不加的话会出现 **error.GitError: Cannot initialize work tree for manifests** 错误。这个功能也是谷歌在这个月底才更新的。![在这里插入图片描述](https://user-gold-cdn.xitu.

2021-09-06 23:42:18 5234

原创 WebView实现长按保存图片 长按识别二维码,看完吊打面试官

然后再来看一下效果图:保存图片[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xJCmIdzN-1630942827376)(https://user-gold-cdn.xitu.io/2018/1/11/160e418e435c50e9?imageslim)]识别包含普通文字的二维码:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0XNmeBCs-1630942827378)(https://user-gold-cdn.xitu.io/

2021-09-06 23:40:38 1267

原创 View系列:事件分发,android视频开发的面试问题

| MotionEvent.ACTION_MOVE | 滑动View || MotionEvent.ACTION_UP | 抬起View(与DOWN对应) || MotionEvent.ACTION_CANCEL | 结束事件 || MotionEvent.ACTION_OUTSIDE | 事件发生在视图范围外 |辅助类辅助类-devView触摸相关工具类全解ViewConfiguration获取 Android 系统常用的距离、速度、时间等常量VelocityTracker跟踪触

2021-09-06 23:35:36 174

原创 ViewPager(二),腾讯后台开发

public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {Fragment fragment = (Fragment) object;if (mCurTransaction == null) { mCurTransaction = mFragmentManager.beginTransaction();}if (DEBUG) Log.v(TAG, "De

2021-09-06 23:33:53 129

原创 Kotlin ,大厂面试经验分享

通俗点来说,只有各司其职才能把工作干好嘛,接下来咱们就围绕着各司其职来一个一个实现协程实现接下来把上面的请求换成协程的方式来实现1.创建RetrofitClientobject为了使RetrofitClient 只能有一个实例 object RetrofitClient { val BASE_URL = "https://wanandroid.com/" val reqApi by lazy { val retrofit = Ret

2021-09-05 22:04:48 62

原创 kotlin 实战之核心基础特性总结,满满的干货

var min: Int//标准写法if (x > y) { min = y max = x} else { min = x max = y}//简写1,if 可以当作表达式min = if (x > y) y else x//简写2,if 可以当作表达式,如果 if 后面是代码块则代码块中最后一行返回值返回max = if (x > y) { println("x > y") x} e.

2021-09-05 22:03:10 171

原创 Kotlin 协程 的实战,retrofit面试

* 玩安卓轮播图 */@GET("banner/json")suspend fun getBanner(): BaseResult<List<BannerBean>> 和之前我们写的有什么区别呢:1. 前面多了**suspend**关键字,带有这个关键字的函数,只有在协程中才能调用,在普通函数调用会报错的,编译也过不了2. 返回结果只直接写对应的Bean就好了,不需要固定类型来包装下边的用法是在ViewModel中来使用的,如果想在Activity或者F..

2021-09-05 22:01:38 242

原创 kotlin 协变、逆变 - 猫和鱼的故事,Android程序员

abstract String myFavoriteFood();}class Fish extends Animal {@OverrideString myName() { return "鱼";}@OverrideString myFavoriteFood() { return "虾米";}}class Cat extends Animal {@OverrideString myName() { return "猫";}.

2021-09-05 22:00:02 106

原创 Kotlin vs Flutter,我到底应该怎么选,顺利收获Offer

本篇文章的英文原文地址是:goobar.io/2019/06/13/…我到底应该选 Kotlin 还是学 Flutter 呢?这个问题要视情况而定。不过在展开讨论具体的情况之前,我们更应该先来审视一下,这是否是一个恰当的问题。因为,拿 Kotlin 和 Flutter 来进行比较,在一定程度上就好像是在拿苹果和橘子来进行比较。从概念上讲,Kotlin 是一门编程语言,而 Flutter 是一个跨平台的 UI 工具集。不过,由于这两门技术之间的差异太过巨大,导致这个问题本身其实就是一个庞大的问题

2021-09-05 21:58:31 292

原创 JWT在Java和Android中的使用,【面试总结】

public void JWTDecode(String token) { try { DecodedJWT jwt = JWT.decode(token); /** * Header Claims */ //Returns the Algorithm value or null if it's not defined in the Header. String algorithm = jwt.g.

2021-09-05 21:56:42 238

原创 _Android 虚拟机与类加载机制,看完吊打面试官

栈中记录了方法调用的历史,每有一次方法调用,栈中便会多一个栈桢。最顶部的栈桢称作当前栈桢,其代表着当前执行的方法。基于栈的虚拟机通过操作数栈进行所有操作。 执行过程啥的详见 JVM - 深度解析基于寄存器的虚拟机 - Dalvik寄存器:CPU中高速存储的内存。寄存器的虚拟机:实际上就是把栈帧上的局部变量表和操作数栈合二为一,省去了操作数栈里频繁的进栈出栈。基于寄存器的虚拟机中没有操作数栈,但是有很多虚拟寄存器。其实和操作数栈相同,这些寄存器也存放在运行时栈中,本质上就是一个数组。与JVM相似

2021-09-03 21:37:53 94

原创 [译]玩转 Android Paths,Android工程师必备知识

极坐标系当定义 2d 形状的时候,我们通常在笛卡尔坐标系 (x,y) 中进行定义。通过指定 x 轴和 y 轴上离原点的距离,来定义图形形状。而另一个我们可选用的极坐标系,则是定义离原点的角度和半径长度。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zkilHpFp-1630676162403)(https://user-gold-cdn.xitu.io/2018/2/8/161747640215b0a5?imageView2/0/w/1280/h/960/ignore-e

2021-09-03 21:36:13 239

原创 [译]Kotlin + buildSrc,作为字节跳动面试官

libs = [support_annotations: “com.android.support:support-annotations:versions.supportlib",supportappcompatv7:"com.android.support:appcompat−v7:{versions.support_lib}", support_appcompat_v7: "com.android.support:appcompat-v7:versions.supportl​ib",supp

2021-09-03 21:34:24 185

原创 [译] 用 Flutter 写一个待办事项应用,看这里

这将准确地告诉你为了正确运行 Flutter,需要安装什么。按照 flutter doctor 的说明,确保所有都已经正确安装,然后再继续下一步。创建一个应用程序我们将创建我们的应用程序并在 Android 上进行测试,因为这在所有操作系统上都可以完成,所以这些步骤对于 iOS 都是一样的。Flutter 为不少 IDE 提供插件,包括 Android Studio 和 Visual Studio Code。但是,对于我们简单的应用程序来说,我们完全可以使用命令行和一个简单的文本编辑器完成所有操作。首

2021-09-03 21:32:48 382

原创 _Kotlin_系列_ 二、Kotlin泛型,使用指南

2、将运行期的类型转换异常提前到了编译期,保证类型的安全,避免类型转换异常3、怎么去定义和使用泛型?我们可以给一个类,方法,或者接口指定泛型,在具体使用的地方指定具体的类型一、Java 泛型要学习好 Kotlin 泛型,我们先要对 Java 泛型足够的了解,因为 Kotlin 泛型和 Java 泛型基本上是一样的,只不过在 Kotlin 上有些东西换了新的写法1、泛型的简单使用在 Java 中,我们可以给一个类,方法,或者接口指定泛型,在具体使用的地方指定具体的类型1)、定义一个泛型类,在类名

2021-09-02 21:28:35 490

原创 [译]将通用安卓音乐播放器转化为 instant 应用,二本学渣考研失败

原文作者:Oscar Wahltinez译文出自:掘金翻译计划本文永久链接:github.com/xitu/gold-m…译者:Mirosalva校对者:Qiuk17将通用安卓音乐播放器转化为 instant 应用从 Android Studio 的 3.3 版本开始,IDE 将会为 instant 应用提供工具支持。(撰写至本文时,Android Studio 3.3 的可下载版本是 preview release,撰写至译文时,3.3 版本已更新到正式 release 版)。这篇博文..

2021-09-02 21:26:45 199

原创 [译]内存泄露的八种花样,Android开发前景怎么样

除了这,让我们在我们的Activity类里在定义一个类,也就是内部类。为了提高代码的可读性和健壮性,封装程序逻辑,我们可能会这么做。如果我们创建了一个这样的内部类的实例,并通过静态变量持有了它,会怎样呢?你应该能猜到这又是一个内存泄露的点。void createInnerClass() { class InnerClass { } inner = new InnerClass();}View icButton = findViewById(R.id.ic_button);i

2021-09-02 21:25:10 66

原创 [译] 我与 Flutter 的一年,Android开发框架

校对者:shixi-li, MirosalvaSun[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cRijVDUD-1630589007571)(https://user-gold-cdn.xitu.io/2019/2/6/168c32805b92dcfe?imageView2/0/w/1280/h/960/ignore-error/1)]这是 Flutter 美好的一年。大概刚好一年前,我写了一篇名为「为什么 Flutter 2018 年即将起飞」的文章。虽然..

2021-09-02 21:23:39 797

原创 [译] 思考实践:用 Go 实现 Flutter,字节跳动Android岗面试题

), Text( '$_counter', style: Theme.of(context).textTheme.display1, ), ], ), ), floatingActionButton: FloatingActionButton( onPressed: _incrementCounter, tooltip: 'Increment', child: Ico...

2021-09-02 21:21:55 169

原创 [译] 区域设置更改和 AndroidViewModel 反面模式,【金九银十】

AndroidViewModel 是已知应用程序上下文的 ViewModel 的子类。然而,如果您没有注意到或没有对上下文的生命周期做出反应,访问上下文可能是危险的。建议的做法是避免处理在 ViewModels 中具有生命周期的对象。让我们看看跟踪器中基于此问题的示例:在系统区域设置更改时更新 ViewModel 。// 别这么做public class MyViewModel extends AndroidViewModel { public final MutableLiveData&lt

2021-09-02 21:20:22 51

原创 Android-Sensor源码分析总结,学海无涯

protected void onPause() { super.onPause(); mSensorManager.unregisterListener(this);}public void onAccuracyChanged(Sensor sensor, int accuracy) {}public void onSensorChanged(SensorEvent event) {}}@see SensorEve..

2021-09-01 12:08:50 155

原创 Android-Framework:Binder全解析,实现原理分析

共享内存 顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存套接字 套接字是更为基础的进程间通信机制,与其他方式不同的是,套接字可用于不同机器之间的进程间通信。Linux上IPC原理首先我们需要理解**User space(用户空间)**和 Kernel space(内核空间)。为了保护用户进程不能直接操作内核,保证内核的安全,操作系统从逻辑上将虚拟空间划分为用..

2021-09-01 12:07:24 210

空空如也

空空如也

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

TA关注的人

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