8 xiangzhihong8

尚未进行身份认证

老司机,擅长一本正经的胡说八道

等级
博文 1k+
排名 132

史上最全的Android面试题集锦

Android基本知识点1、常规知识点1、Android类加载器在Android开发中,不管是插件化还是组件化,都是基于Android系统的类加载器ClassLoader来设计的。只不过Android平台上虚拟机运行的是Dex字节码,一种对class文件优化的产物,传统Class文件是一个Java源码文件会生成一个.class文件,而Android是把所有Class文件进行合并、优化,然后...

2019-07-17 11:58:06

Flutter 基础知识点总结

随着前不久Flutter1.7正式版发布,Flutter今年迎来了迭代的小高潮,很多的公司也纷纷布局Flutter技术栈,并且很多大公司招聘的时候也明着写明对于Flutter的技术要求。正好最近刚入门了Flutter,并在项目中进行了一些应用,于是将应用的一些心得进行整理,希望帮助更多的初学者。在学习Flutter之前,让我们先来认识下什么是Flutter跨平台。Flutter是谷歌开源的一款...

2019-07-14 16:57:07

Flutter 1.7正式版发布

此次发布的版本是继上次I/O大会众多重要功能发布以来的一次小更新。Flutter1.7包含了对AndroidX的支持,满足了Play商店近期对应用提出的要求,包含了一些新的和增强过的组件,修复了开发者们提出的bug等。如果你已经安装并使用默认稳定构建渠道(stablechannel)的Flutter,只需要运行flutterupgrade命令即可升级到1.7...

2019-07-12 13:51:49

Python脚本批量转换Webp为png或jpg

话说,Android开发的时,很多的应用已经将png或jpg改为了Webp格式,一个目的是为了减少包的体积,我觉得还有一个好处是资源包的安全考虑,不过我如果要反编译人家的apk,并拿到图片资源就比较恶心。这不,我今天想仿下网易严选,不过反编译后,发现图片都是webp格式的。心里想着,能不能使用Python编写一个一键转换工具呢?答案是肯定的,由于Python不区分具体的系统,只要你搭建好Pyth...

2019-07-08 21:11:16

使用ARouter进行Android模块化开发

Android模块化关于为什么要进行Android模块化开发,网上也已经讲烂了,不过归结起来,大体是可以总结为:在App开发的初期,代码量不大,业务量比较少,一个App作为一个单独的模块进行开发,往往问题不大。但随着业务的增多,代码变的越来越复杂,每个模块之间的代码耦合变得越来越严重,结构越来越臃肿,修改一处代码要编译整个工程,导致非常耗时,这时候最好的办法就是进行模块化拆分。模块化的好处总...

2019-07-05 19:33:51

React Native 0.60 RC1新特性

ReactNative(简称RN)是Facebook于2015年4月开源的移动跨平台开发框架,是Facebook在早先开源的React前端框架在原生移动平台的衍生产物,目前支持iOS和Android两大原生移动平台。目前,经过数百名贡献者数月的努力,ReactNative迎来了0.60版本的发布。此版本完成了Android和iOS平台的一些重大迁移,许多问题也得到解决。可访问...

2019-07-04 16:47:41

Android APK脱壳

概述众所周知,Android应用开发完成后,除了使用Google官方的混淆外,还需要使用一些第三方的安全软件的加壳处理,比较出名的有腾讯乐固、360加固和爱加密等。我之前所在的公司,就是使用爱加密进行加壳处理的。虽然加密后,让软件的安全性更高了,但并不是无懈可击,一些反加固技术和脱壳技术应运而生。今天要说的就是腾讯乐固、360加固一键脱壳。工程,经过加固后的apk,通过dex2jar反编译效...

2019-06-26 15:09:45

腾讯零反射全动态Android插件框架Shadow解析

简介最近几年,腾讯对于开源事业也是越来越支持,今天要说的就是在腾讯被广泛使用的Shadow框架,一个经过线上亿级用户量检验的反射全动态Android插件框架。首先,让我们来看一下官方对于Shadow的简介:Shadow是一个腾讯自主研发的Android插件框架,经过线上亿级用户量检验。Shadow不仅开源分享了插件技术的关键代码,还完整的分享了上线部署所需要的所有设计。与市面上其他插件框...

2019-06-23 09:17:15

React Native热更新之CodePush

CodePush简介作为一个跨平台应用开发框架,ReactNative虽然在动态更新方面提供了动态更新的基础,但是动态更新技术并没有想象的那么完善。好在微软开发了CodePush,填补了ReactNative应用在动态更新方面的空白。CodePush是微软提供的一套用于ReactNative和Cordova的热更新服务,借助CodePush,开发者可以直接部署移动应用更新并快速实现代码的...

2019-06-20 12:02:32

Android性能优化总结

安卓开发大军浩浩荡荡,经过近十年的发展,Android技术优化日异月新,如今Android9.0已经发布,Android系统性能也已经非常流畅,可以在体验上完全媲美iOS。但是,到了各大厂商手里,改源码、自定义系统,使得Android原生系统变得鱼龙混杂,然后到了不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。另外,随着产品内容迭...

2019-06-18 21:45:50

互联网寒冬下,原生Android开发的路该怎么走

移动寒冬18年的冬真冷,大家都在说裁员,其实裁员一直都在,只是18年的确多点。android10年了,已经积累了太多的技术,知识点,技巧,思路,这些前人都会了,并且正在创造新的思路出来,对于广大的底层coder来说,仅仅是追赶就很难了,更别提去自己创造了,但是现实时我们尝尝学习了很多开源框架,落到实处就是仅仅会用而已,不说源码看没看过,甚至原理都不知道,不知道作者用什么技术实现的,这点就是...

2019-06-17 09:18:49

ViewPager2重大更新,支持offscreenPageLimit

前言最近ViewPager2发布了1.0.0-alpha04版本,新增offscreenPageLimit功能,该功能在ViewPager上并不友好,以下是官方对于ViewPager2的介绍:众所周知,ViewPager有两个毛病:不能关闭预加载和更新Adapter不生效,所以开头我为什么说offscreenPageLimit在ViewPager上十分不友好;本质上是因为offscreenP...

2019-06-12 12:39:17

React Hook快速入门

Hook简介ReactHooks是React16.7.0-alpha版本推出的新特性,目的是解决React的状态共享问题。称之为状态共享可能描述的并不是很恰当,称为状态逻辑复用可能会更恰当,因为ReactHooks只共享数据处理逻辑,并不会共享数据本身。在React应用开发中,状态管理是组件开发必不可少的内容。以前,为了对状态进行管理,最通常的做法是使用类组件或者直接使用redux等状态...

2019-06-11 07:55:35

Android刘海屏、水滴屏全面屏适配

现在,市面上的屏幕尺寸和全面屏方案五花八门。这里我使用了小米的图来说明:上述两种屏幕都可以统称为刘海屏,不过对于右侧较小的刘海,业界一般称为水滴屏或美人尖。为便于说明,后文提到的「刘海屏」「刘海区」都同时指代上图两种屏幕。刘海屏、水滴屏全面屏适配细节当我们在谈屏幕适配时,我们具体谈什么呢?适应更长的屏幕防止内容被刘海遮挡其中第一点是所有应用都需要适配的,对应下文的声明最大长宽比,...

2019-06-09 13:40:57

React Native开发之react-navigation库详解

众所周知,在多页面应用程序中,页面的跳转是通过路由或导航器来实现的。在0.44版本之前,开发者可以直接使用官方提供的Navigator组件来实现页面的跳转,不过从0.44版本开始,Navigator被官方从reactnative的核心组件库中剥离出来,放到react-native-deprecated-custom-components的模块中。如果开发者需要继续使用Navigator,则需要...

2019-06-04 07:55:52

ITerm2使用指南

很多时候,我们使用Mac自带的终端用起来并不是很方便,例如没有颜色标记、来回切换等问题,对于这些问题,我们可以使用iTerm2,对照网上的安装和配置,我这里做一个简单的记录。安装iTerm2下载地址:https://www.iterm2.com/downloads.html上面的链接下载的是一个压缩文件,解压后是执行程序文件,你可以直接双击,或者直接将它拖到Applications目录下...

2019-05-29 10:45:37

Android与RN层的交互

Android跳转到RN页面由于主客是以插件化的方式集成功能插件的,所以在主客中Android跳转到RN页面需要plugin、module和component。plugin、module不过多解释,component对应的是具体的js页面,要成功启动此页面,需要在对应的RN二方库中注册此页面。例如:AppRegistry.registerComponent(‘MyDoctors’,()=&...

2019-05-09 20:08:12

Java并发编程之Future和FutureTask

搞过Java或者客户端Android开发的都知道,创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。不过,这2种方式都有一个缺陷,就是在执行完任务之后无法获取执行结果。如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这就涉及到线程切换和线程通信等问题,就比较的麻烦。不过,好在Java从1.5版本开始,就提供了Callable和Fu...

2019-05-09 16:23:59

Android全面屏适配指南

何为全面屏全面屏是手机业界对于超高屏占比手机设计的一个宽泛的定义。从字面上解释就是,手机的正面全部都是屏幕,四个边框位置都是采用无边框设计,追求接近100%的屏占比。但受限于目前的技术,还不能做到手机正面屏占比100%的手机。现在业内所说的全面屏手机是指真实屏占比可以达到80%以上,拥有超窄边框设计的手机。全面屏手机屏幕的宽高比例比较特殊,不再是以前的16:9。比如三星的GalaxyS8屏幕...

2019-05-06 13:57:25

React Native 0.59.x新特性解读

概述众所周知,在现在的前端技术开发栈中,跨平台开发是一个重要的课题,不管是老牌的Hybird还是最近流行的RN、Weex还是Flutter,不得不说,现在前端和客户端的界限越来越模糊。最近在写《ReactNative跨平台开发进阶》一书,也是对之前的《ReactNative移动跨平台开发实战》的升级(ps,由于之前的写作功底较浅,所以写的并不是很好)。最近,RN发布了0.59.x系列版...

2019-04-17 11:39:37
CSDN身份
  • 博客专家
奖章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周上午根据用户上周的博文发布情况由系统自动颁发。