自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 wap网站制作教程,android面试试题

网络创业 这里是建站指南的内容 这里是网站制作的内容 这里是网站推广的内容   OK,完成了上面的步骤,下面我们要看一看运行结果了,稍微检查一下左边的运行代码,看看有没有粗心错误,单击上部的预览按钮,如果没有错误的话就会在右边显示编程的结果,这个结果是模拟手机用户浏览的结果,如下图:模拟手机浏览首页结果选择请继续,进入模拟手机浏览导航页面结果选择“建站指南”,进入模拟手机浏览内容页面结果细心的读者也许看到了这三张图片的上

2021-12-29 17:35:39 761

原创 View系列:硬件加速,Service有几种启动方式

如果 View 已附加到硬件加速窗口,则 **View.isHardwareAccelerated() **会返回 true。如果 Canvas 经过硬件加速,则**Canvas.isHardwareAccelerated() **会返回 true不受支持的绘制操作绘制模型(原理)软件绘制:使用CPU绘制到Bitmap,然后把Bitmap渲染到屏幕硬件绘制:CPU把绘制内容转换成GPU操作,由GPU负责真正的绘制在硬件加速关闭的时候:Canvas绘制的工作方式是:把要绘制的内容写进一个.

2021-12-29 17:34:39 171

原创 SwipeRefreshLayout的基本使用,移动APP开发框架盘点

1.首先在应用或模块的 build.gradle 文件中添加所需工件的依赖项:dependencies {implementation “androidx.swiperefreshlayout:swiperefreshlayout:1.0.0”}2.在xml文件里面添加相关代码<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=“http://schemas.android.com/apk/res/

2021-12-29 17:30:41 1422

原创 Smali 语法解析—,android开发简历源码

.field private static HELLO_WORLD:Ljava/lang/String;direct methods.method static constructor ()V.registers 1.prologue.line 3const-string v0, “Hello World!”sput-object v0, LHello;->HELLO_WORLD:Ljava/lang/String;return-void.end method.method pub

2021-12-29 17:28:35 1813

原创 vue-admin-template 动态路由的实现(方式一),flutter通知推送

hidden: true,component: Layout,children: [{path: ‘index/:id’,name: ‘AddBanner’,component: () => import(’@/views/appmanage/addbanner/index’),meta: { title: ‘添加Banner’, icon: ‘’ }}]},{path: ‘/createactivationcode’,hidden: true,component: Lay

2021-12-28 16:14:05 977

原创 ViewPager动态添加删除及刷新页面,12年高级工程师的“飞升之路”

2、PagerAdapter 的刷新2.1、源码解析要想真正的理解PagerAdapter的刷新,就一定要从源码找突破口。下面是PagerAdapter的类注释。/**…PagerAdapter supports data set changes. Data set changes must occur on themain thread and must end with a call to {@link #notifyDataSetChanged()} similar

2021-12-28 16:12:45 274

原创 valgrind内存泄露和线程竞态检测,腾讯Android开发面试

2、callgrind:检测程序代码的运行时间和调用过程,以及分析程序性能。3、cachegrind:分析CPU的cache命中率、丢失率,用于进行代码优化。4、helgrind:用于检查多线程程序的竞态条件。5、massif:堆栈分析器,指示程序中使用了多少堆内存等信息。6、lackey:7、nulgrind:这几个工具的使用是通过命令:valgrand --tool=name 程序名来分别调用的,当不指定tool参数时默认是 --tool=memcheck二 Valgr

2021-12-28 16:09:39 145

原创 STM32F429系统架构,阿里巴巴内部Jetpack宝典意外流出

— DMA2 存储器总线 — DMA2 外设总线 — 以太网 DMA 总线 — USB OTG HS DMA 总线七条被控总线:— 内部 Flash ICode 总线 — 内部 Flash DCode 总线 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享— 主要内部 SRAM1 (112 KB)— 辅助.

2021-12-28 16:07:01 88

原创 sql语句注意的事项(1),安卓framework开发书籍

在非等值多表查询中,读者可以使用表 4.1 所示的比较运算符来组合查询条件。用 SQL 进行嵌套查询在 select 查询语句里可以嵌入 select 查询语句,称为嵌套查询。有些书上将内嵌的 select语句称为子查询,子查询形成的结果又成为父查询的条件。子查询可以嵌套多层,子查询操作的数据表可以是父查询不操作的数据表。子查询中不能有 order by分组语句。select  emp.empno,emp.ename,emp.job,emp.salfrom scott.empwhe

2021-12-28 16:04:44 730

原创 Smali 语法解析——Hello World,android原生开发技术

.class public LHello;.super Ljava/lang/Object;.source “Hello.java”static fields.field private static HELLO_WORLD:Ljava/lang/String;direct methods.method static constructor ()V.registers 1.prologue.line 3const-string v0, “Hello World!”sput-object

2021-12-28 16:03:35 374

原创 webRTC(二十二),整理出这份8万字Android性能优化实战解析

mediaCod《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享ec.stop();mediaCodec.release();mediaCodec = null;}if (mVirtualDisplay != null) {mVirtualDisplay.release();mVirtualDisplay = null;}if (mediaProjection

2021-12-27 15:43:55 469

原创 ViewPager,ScrollView 嵌套ViewPager滑动冲突解决,flutter跳转传参

break;case MotionEvent.ACTION_UP:break;}return super.dispatchTouchEvent(ev);}ScrollView 里面嵌套ViewPager导致的滑动冲突外部解决法如上面所述,从 父View ScrollView着手,重写 OnInterceptTouchEvent方法,在上下滑动的时候拦截事件,在左右滑动的时候不拦截事件,返回 false,这样确保子View 的dispatchTouchEvent方法会被调用,代码 如下/

2021-12-27 15:42:46 879

原创 万字攻略,详解腾讯面试(三,Android知识体系大纲

错误答案3:了解不多。错误答案4:腾讯挺好的,所以我来面试。错误答案5:腾讯是个大公司,福利待遇好。点评:如果对目标公司和产品不了解,那就显得面试动机很不真诚。平时多了解一下腾讯公司和腾讯产品,不至于面试时把天聊死。问题五:你职业发展规划是怎样的?错误答案1:嗯,啊,哦…错误答案2:这个问题我没有考虑过。错误答案3:我是脚踏实地的人,走一步,看一步。错误答案4:我不关心这些虚无的问题,我只想把当前的事情做好,一步一个脚印。错误答案5:我想好了,十年后要做市级专家, 二十年后要做省级专家,三

2021-12-26 18:03:15 168

原创 七年Android开发感慨:杭州一套房,存款700多万,flutter扫描二维码

也有网友说:理解,肯定是生活标准上去了,700万也不抗花,并且在当今这个时代 不敢生病。还有网友质疑:睡觉的时候不要翻身,梦容易醒。也有网友表示理解:其实人生每个阶段都有焦虑,只是后半生突然没了努力的方向,可能在某方面突然失去了活着的意义。也有网友感慨:主要是有房贷吧。也有网友为其出谋划策:我有700万存款我肯定退休了,自己规划好理财,做自己感兴趣的东西。也有网友立刻想到了前段时间,在某互联网职场论坛求助的一个帖子,该网友表示:他是北京天津各一套房,两辆车,均无贷款,现金700w。看看上面茫

2021-12-26 18:01:49 913

原创 一位四年多Android开发老鸟,对开发经验总结与排坑经历分享

当你明白了这个道理之后,最起码你就不会被猎头忽悠了。不管猎头说什么,你都可以不为所动。因为猎头能推荐出来的岗位大多数都是市场少到处都是的职位, 用脚指头也能想到无非是pdd、头条这些。那你想想看这种到处撒网招人的岗位能是核心部门,能有很好的发展前景么?当然我也不是说这些机会都不好,也会有些比较好的,但是这就很考验运气了,万一没碰上好运气其实是挺伤的,35岁之前是我们发展自己的黄金时间,非常宝贵,轻易伤不起的。如果要跳槽,我建议可以联系一下之前的老同事或者是校友、同学,或者是找一些前辈、老上司请教,也是可以

2021-12-26 17:57:33 292

原创 一个自学Android-人的第三年的面经分享,androidstudio小游戏

1.Handler机制2.事件分发机制3.乐观锁与悲观锁二面1.Android 7.0 8.0 p 兼容性问题2.嵌套滑动3.营销工具比如列表第三位展示广告,如何设计接口5.2蚂蚁金服一面1.内存泄漏具体场景2.大图加载2.1.大图加载的缓存2.2.Bitmap优化3.Handler机制3.1.子线程能不能创建Handler3.2.线程间通信其他方式4.线程的创建与退出4.1.乐观锁与悲观锁4.2.volatile原理4.3.读写锁的应用5.RecyclerView

2021-12-26 17:56:09 2107

原创 一个自学Android-人的第三年的面经分享(1),焦虑的移动互联网开发者如何破局

这一块也是很多公司喜欢问的,特别是当部门架构组团队招人的时候喜欢问。我不太擅长这方面,就不多谈了。④数据结构及算法在我系统学习的过程中我是把数据结构和算法跟着课程学了一遍的,但是我面试期间是完全放弃复习算法的。这么说并不是说算法不重要,头条的面试上来就会考一道算法题,喜欢考算法的厂也越来越多。只是大家要根据自己的实际情况分配复习的比重。毕竟数学考试最后一道大题你做不来,你可以把前面的小题争取全部做对。####四.简历简历是敲门砖,也可能是面试的引线大家一定要重视简历。对于学校不优秀,工作背景不突出

2021-12-26 17:54:43 94

原创 一个Android开发6年程序员的年终面试总结,2021无畏艰难险阻,迎风潇洒前行

四面适配器和装饰模式各自特点和使用场景视频编解码是怎么做的三色球排序腾讯面试音视频采集编码播放流程Mediacodec编码内部原理与工作流程(什么状态机之类的),使用Mediacodec时遇到过什么问题,怎么解决的ffmpeg怎样编码和解码的,怎么做视频编辑,添加特效怎么取一帧视频画面编辑成图片并将二维码合成到图片中,然后进行压缩处理,压缩要保证图片的清晰度不变《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》【d

2021-12-26 17:53:18 101

原创 【跳上车子离开伤心的北京】北漂4年后,关于Flutter文本组件Widget的全面解读

既然不在北京发展,那去哪里呢?因为我老家是西部的,综合工作机会、买房难度、离家距离来看,最终选择了某西部二线城市,于是,我的个人计划就开始了,计划的目标是在三年后定居这个二线城市。两次跳槽,定居某二线城市===========================================================================第一次跳槽面试的结果很出乎意料,因为不知道自己的水平究竟怎么样,所以这次跳槽我把能投的公司几乎都投了一遍,没想到大部分面试都很顺利,并没有事先想的那么

2021-12-26 17:50:28 68

原创 Jetpack Compose和View的互操作性,android热更新图片

Use Compose in Fragmentclass PureComposeFragment : Fragment() {override fun onCreateView(inflater: LayoutInflater,container: ViewGroup?,savedInstanceState: Bundle?): View {return ComposeView(requireContext()).apply {setContent {MaterialTheme {Tex

2021-12-24 17:38:42 1262

原创 Jetpack Compose What and Why, 6个问题,android开发入门和实战

命令式为什么不好呢:这样手动地更新view会增加犯错的可能性. 如果某一数据在多个地方被渲染, 那么很可能就忘了更新其中的某个view.很容易创建非法状态, 比如两个更新以不期望的方式冲突了. (比如: 一个要更新值, 另一个要移除节点.)维护的复杂度随着需要更新的view个数而增加.声明式所以, 在过去的几年里, 业界一直在探索并且开始转向一种声明式的UI模型. 目的就是简化构建和更新UI.Jetpack Compose是一个声明式的UI framework. 该技术的原理是从头开始重新生

2021-12-24 17:37:44 473

原创 Jetpack Compose for Desktop实现复杂的自动布局网格,有java基础学android

fun GridView(dataList:MutableList) {//对数据按类别和id排序dataList.sortWith(compareBy({it.category},{it.id}))/**区间宽度,随窗口尺寸变化更新*/var districtWidth by remember { mutableStateOf(0f) }/**每个方框的尺寸*/val gridBoxWidth:Float=200f/**每列方框的数量*/var everyRowBo

2021-12-24 17:36:46 630

原创 Jenkins开发之——基于SVN构建项目,37岁程序员被裁

2.1 说明SVN项目(要导入的项目)SVN登录凭证(账户和密码登录)Jenkins安装SVN插件2.2 示例项目地址:https://192.168.200.142/svn/SoftManager登录凭证用户名:zxc密码:123456Jenkins安装SVN插件三 创建项目登录Jenkins后,界面如图所示点击窗口左端的新建Item,进入任务创建选择界面项目名称:根据要导入的项目,输入项目名称项目样式:本次选择Freestyle.

2021-12-24 17:35:22 178

原创 Java经典算法50题(01-10),androidstudio配置

int Month = 30;for(int i = 3; i < Month; i++){f = f2;f2 = f1 + f2;f1 = f;System.out.println(f2);}}}输出:2358132134558914423337761098715972584418167651094617711286574636875025121393196418317811514229【程序2】题目:判断101-200之间

2021-12-24 17:34:06 121

原创 Java的注解,走进Android架构

使用注解的元素操作注解使其起作用(注解处理器)注解本质是一个继承了Annotation的特殊接口,其具体实现类是Java运行时生成的动态代理类。而我们通过反射获取注解时,返回的是Java运行时生成的动态代理对象$Proxy1,通过代理对象调用自定义注解(接口)的方法,会最终调用AnnotationInvocationHandler的invoke方法,该方法会从memberValues这个Map中索引出对应的值,而memberValues的来源是Java常量池。四、Java内置的注解=..

2021-12-24 17:31:29 65

原创 Java中的反射基础知识,技术总监都拍手叫好

Class<?> myObjectClass = MyObject.class;如果你已经得到了某个对象,但是你想获取这个对象的 Class 对象,那么你可以通过下面的方法得到:Student me = new Student(“mr.simple”);Class<?> clazz = me.getClass();如果你在编译期获取不到目标类型,但是你知道它的完整类路径,那么你可以通过如下的形式来获取 Class 对象:Class<?> myObjectClas

2021-12-24 17:30:07 58

原创 java 正则表达式验证,android开发环境搭建实验报告

** @param 待验证的字符串* @return 如果是符合的字符串,返回 true ,否则为 false */public static boolean isEmail(String str) {String regex = “^([\\w-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$”;return match(regex, st

2021-12-24 17:29:08 77

原创 Java 垃圾回收(GC),爆火的Android面试题

比如上图中,对象ObjA/ObjB/ObjC 与 GC Root 之间都存在一条直接或者间接的引用链,这也代表它们与 GC Root 之间是可达的,因此它们是不能被 GC 回收掉的。而对象E和被对d 引用到,但是并不存在一条引用链连接它们与 GC Root,所以当 GC 进行垃圾回收时,只要遍历到 D/E/F 这 3 个对象,就会将它们回收。注意:上图中圆形图标虽然标记的是对象,但实际上代表的是此对象在内存中的引用。包括 GC Root 也是一组引用而并非对象。GC Root 对象======.

2021-12-24 17:27:51 309

原创 像奥利奥一样的双重安全措施,尽在 Android Oreo,一个Android程序员的腾讯面试心得

像奥利奥一样的双重安全措施,尽在 Android Oreo由 Android 安全团队的 Gian G Spicuzza 发表Android Oreo 中包含很多安全性提升的更新。几个月以来,我们讨论了如何增强 Android 平台及应用的安全性: 从提供更安全的获取应用渠道,移除不安全的网络协议,提供更多用户控制符,加固内核,使 Android 更易于更新,直到加倍 Android 安全奖励奖励项目的支出。如今 Oreo 终于正式和大家见面了,让我们回顾下这其中的改进。扩大硬件安全支持Androi

2021-12-23 17:20:00 264

原创 做Android开发怎么才能不被淘汰?,吐血整理

在2019年甲骨文裁员等事件中,许多30岁以上的程序员被裁,但华为、腾讯、阿里等公司就等在甲骨文门口开始接受这批人员,开启了一场甲骨文员工专场招聘会。甚至开出更高的薪资,但再就业时有些人连技术面都过不了——安逸日子过习惯的大公司,再出来的人才已经是不符合市场需求的劳动力。招聘人这样解释为什么招:“我们是招能一线干活的人,年龄太大技术又没特别强大,还不如招年轻人,毕竟年轻人有的是。” “程序员是高智商人群,专注成就了他们过往可以攀到高峰,但专注的同时也是一把双刃剑,如果不是有意识地去拓展,就很容易走到一个死

2021-12-23 17:19:02 172

原创 使用SimpleAdapter创建ListView (1),android开发框架介绍

</android.support.constraint.ConstraintLayout>定义列表项,这里定义了ID为R.id.name的TextView组件和ID为R.id.icon的ImageView组件。list_item.xml:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”andr

2021-12-23 17:16:22 143

原创 使用Flutter一年后,这是我得到的经验,花三分钟看完这篇文章你就懂了

3、架构和状态管理模式还不够成熟首先,Flutter 是一项新技术,因此在实际应用、可信的架构模式和状态管理工具方面仍然有待发展。有些人会遵循“BLoC”(或“业务逻辑组件”,https://www.youtube.com/watch?v=fahC3ky_zW0)模式。在我看来,它有点太过复杂了,而且有些复杂性是不必要的。还有 RxDart(https://github.com/ReactiveX/rxdart)和 Redux for Flutter(https://pub.dartlang.org/p

2021-12-23 17:14:58 1866

原创 你知道App为什么会Crash吗?,vue数据双向绑定

}}}private static class KillApplicationHandler implements Thread.UncaughtExceptionHandler {private final LoggingHandler mLoggingHandler;public KillApplicationHandler(LoggingHandler loggingHandler) {this.mLoggingHandler = Objects.requireNonNull(loggin

2021-12-23 17:13:46 96

原创 你不知道的Activity- 使用详解,安卓卡顿优化

在代码中 Activity生命周期回调方法Activity生命周期回调方法如下:// Activity 创建方法@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Log.i(TAG, “----onCreate----”);setContentView(R.layout.activity_methods);}// Activity 在最.

2021-12-23 17:10:08 164

原创 相比 XML , Compose 性能到底怎么样?,flutter弹窗

结果如下图所示:可以看出,在迁移到Compose后,毫无意外的,XML代码行减少了76%有趣的是kotlin代码同样减少了,可能是因为我们可以减少很多模板代码,同时也可以移除之前写的一些View Helper代码构建速度随着项目的不断变大,构建速度是开发人员越来越关心的一个指标。在开始重构之前,我们知道,删除大量的注解处理器会有助于提高构建速度,但我们不确定会有多少。我们运行以下命令5次,然后取平均值./gradlew --profile --offline --rerun-tasks --

2021-12-20 01:16:48 274

原创 当一个中年android程序员失业180天,音视频服务器开发框架

老李陷进沙发里,用手抹了把脸,看上去很疲惫。三年前公司还在装修的时候,我过来搭把手看一看,老李叉着腰指着同一套沙发,意气风发的说:“哥们专门给你配的,这小沙发花了我两万,咱们以后光明未来的起点就在这儿了!”不过三年,创业失败,我们又要找新的起点。我因为和老李走得近,加上之前就隐隐听到一些变故,所以听到破产的消息也不意外,拍了拍老李的肩膀,宽慰了几句,心里的想法是“问题不大,各自找出路。”我最开始并不觉得工作难找,权当是放了个假,可能平时总监总监的听人叫唤,哪怕是个小公司,也没管几个人,几年下来也膨胀

2021-12-18 23:48:11 501

原创 布局检测与优化(二),讲的真透彻

compile ‘com.jakewharton.scalpel:scalpel:1.1.2’12.使用的时候你的layout根节点必须是 ScalpelFrameLayout@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);View mainView = getLayoutInflater().inflate(R.layout.activity_main

2021-12-18 23:44:28 366

空空如也

空空如也

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

TA关注的人

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