- 博客(82)
- 收藏
- 关注
原创 【微信小程序】开发实战 之 ,kotlin开发框架
图1:初始名称图2:点击按钮“更换名称”以后示例中数据是如何更新的呢?首先,开发者通过框架将AppService应用逻辑层数据中的appname与页面视图层名为appname的变更进行了绑定,页面在刚打开的时候会显示“欢迎使用 易投票。然后,当点击按钮“更换名称”之后,视图层会发送changeAppname的tap事件给逻辑层,逻辑层找到事件函数changeAppname。最后,逻辑层changeAppname函数执行了setData操作,将对象appname的值改变为“我的小程序”,因为该对象已经.
2022-03-01 22:51:54
1379
原创 【奇技淫巧】新的图片加载库,安卓移动开发背景换色
快速:Coil 进行了很多优化,包括内存和磁盘缓存,对内存中的图像进行采样,重新使用位图,自动暂停/取消请求等等轻量:Coil 在您的APK中添加了约 2000 种方法(对于已经使用 OkHttp 和 Coroutines 的应用程序),与 Picasso 相当,远少于 Glide 和 Fresco易用:Coil 的 API 利用 Kotlin 的特性简化了样板代码现代:Coil 是 Kotlin-first,使用现代化的库,例如 Coroutines, OkHttp, Okio, 以及 Andro.
2022-03-01 22:47:38
736
原创 【Java转Android】50,android插件化开源
public class MyService extends Service {private static final String TAG = “MyService”;private DownloadBinder downloadBinder = new DownloadBinder();class DownloadBinder extends Binder{public void startDownload(){Toast.makeText(MyService.this, “startDow
2022-03-01 22:44:48
1810
原创 【Flutter 专题】113 图解自定义 ACEPieWidget 饼状图 (二),android应用开发实战项目
gestureDirection = 1;}var _updateAngle = gestureDirection *_angle(_updateOffset, Offset(_centerOffset.dx + 100, _centerOffset.dy), _centerOffset);if (_updateOffset.dy < _centerOffset.dy) {gestureDirection = -1;} else {gestureDirection = 1;}var
2022-03-01 22:43:23
2114
原创 [新手入门] 在Android Studio上导入并部署运行外来项目及GitHub的项目上传与更新
defaultConfig {applicationId “edu.fjnu.cse.helloworld”minSdkVersion 19targetSdkVersion 26 //修改 sdk工具版本是26versionCode 1versionName “1.0”}buildTypes {// release {// minifyEnabled false// proguardFiles getDefaultProg
2022-03-01 22:39:07
715
原创 【Java转Android】61,2021最新百度、头条等公司Android社招面试题目
android:layout_height=“wrap_content”android:layout_marginBottom=“15dp”android:layout_marginLeft=“15dp”android:layout_marginRight=“15dp”android:layout_marginTop=“35dp”app:cardCornerRadius=“4dp”><TextViewandroid:id="@+id/fruit_content_text"andr
2022-02-04 16:37:42
127
原创 史上最全Android build,看完必懂
2.5、 buildTypes{}闭包:这个闭包主要指定生成安装文件的主要配置,一般包含两个子闭包,一个是debug闭包,用于指定生成测试版安装文件的配置,可以忽略不写;另一个是release闭包,用于指定生成正式版安装文件的配置。两者能配置的参数相同,最大的区别默认属性配置不一样,两种模式支持的属性配置如下图:buildTypes {// 生产/测试环境配置release {// 生产环境buildConfigField(“boolean”, “LOG_DEBUG”, “false”)//配置L
2022-01-31 18:24:41
1789
原创 单例模式,androidstudio简易app实例
/**静态私有的成员变量持有Singleton对象的引用*/private static Singleton singleton;/**私有构造函数,只有类的内部可以使用*/private Singleton() {}/**静态方法获取实例对象*/public static Singleton getInstance() {if (singleton == null) {singleton = new Singleton();}return singleton;
2022-01-31 18:17:37
3379
原创 十几年工作经验,连一个Binder都讲不明白,还敢要20K,网易的朋友给我这份339页的Android面经
应聘者情况40岁,名副其实的大龄程序员,两天前刚过四十岁生日。上有年逾耳顺之年的母亲,下有刚刚上小学六年级的孩子,妻子身体不太好,一直在家养病,只有他一个人是家里最大的劳动力。三月,因为疫情还有其他多方面的原因,他被原来的公司辞退了,到现在,已经是失业半年有余,没有收入来源,还有份子钱,房贷,车贷等一大堆的支出,家里的经济状况越来越差,他只能出来继续找工作了。面试第一感现在的市场行情,招聘信息一般都会标注要求:35岁以下。我们公司在招的岗位也是。所以,看见这个人面试的年龄信息时,我的第一个猜想是:
2022-01-31 18:16:12
2360
1
原创 北京Android 3年开发,二本学历,历时半年终斩获腾讯offer
10、Handler内存泄漏、解决11、二叉树层序遍历12、onSaveInstanceState调用时机13、View事件机制14、DOWN、MOVE、UP、CANCEL怎么传递15、图片框架缓存机制16、扑克牌随机算法(空间0(1))17、View绘制流程18、算法题:二分查找法19、多线程访问一一个对象多个方法锁的问题20、dexclassloder的作用21、listview复用原理,图片混乱的原因,怎么处理…腾讯二面1、笔试题:二叉树转双向链表2、Thread sle
2022-01-31 18:14:47
2748
原创 制作一个锚点定位的ScrollView,面试官
//当前值大于Tagif (value - tag == min(value - tag, rightVal - tag)) {rightVal = value}}}println(" left=leftValtag=leftVal tag=leftValtag=tag right=$rightVal")}大家也可以自己运行一下例子修改tag的大小来验证一下。我们通过这个简单的算法,抽象的应用到我们的业务逻辑中。private fun computeView() {mPos ?: r
2022-01-31 18:13:22
1745
原创 卡顿、死锁、ANR原理,腾讯T3手把手教你
//2、消息处理前回调if (logging != null) {logging.println(">>>>> Dispatching to " + msg.target + " " +msg.callback + ": " + msg.what);}…//3、消息开始处理msg.target.dispatchMessage(msg);// 分发处理消息…//4、消息处理完回调if (logging != null) {logging.println("&
2022-01-30 19:42:49
774
1
原创 前端开发:Vue,kotlinui库
四、使用computed和methods进行计算的区别在Vue实例下computed与methods的区别在于:1、computed:基于依赖缓存,多次调用computed中的计算方法时,当第一次计算出结果后,这个结果会缓存下来。只要computed属性所属定义的实例不发生改变,则第二次不再进行计算而是直接调用第一次计算结果进行页面渲染。2、methods:多次调用时,每次的结果都是重新调用methods中的计算方法进行计算的。原则上可以使用 methods 来替代 computed,效果上两个都是
2022-01-30 19:39:58
2981
原创 制作一个锚点定位的ScrollView,你有过迷茫吗
val viewLocation = IntArray(2)moveToView.getLocationOnScreen(viewLocation)//坐标相减得到要滚动的距离val moveViewY = viewLocation[1] - parentLocation[1]//加上偏移坐标量,得到最终要滚动的距离val needScrollY = (moveViewY - offset)//如果是0,那就没必要滚动了,说明坐标已经重合了if (moveViewY == 0) return
2022-01-30 19:38:33
988
原创 插件化库VirtualAPK详解,深入分析
}设置签名(Virtual仅支持Release,host项目和plugin项目签名一致)signingConfigs {release {storeFile file(’/Users/wuliangliang/AndroidSubjectStudyProject/PluginProject/VirtualAPkDemo/keystore/keystore’)storePassword ‘123456’keyAlias = ‘key’keyPassword ‘123456’}}buil
2022-01-29 19:38:37
293
原创 抖音究竟是通过什么让我男朋友他爸成功刷到了我妈?,历经30天
小陈恋爱了,但并不打算公开。而她男友小Z,却早已把这事告诉了他的亲朋好友。之后某一天,Z爸在刷抖音时刷到一个带有小陈的视频。点进一看,发现号主便是小陈的妈妈!Z爸便打着拉拢未来亲家的心思关注并且私聊了小陈妈。而在私聊过程中一不小心就透露了小陈两人的恋爱关系。对于并不想公开恋情的小陈来说,这无疑是**晴!****天!霹!**雳!于是,小陈把满腔怒火撒在了抖音上…小陈悲痛之余,仔细想了想造成这种情况的原因——**抖音的大数据,**判定他俩有可能认识所以推荐播放了。虽然很气,但不得不承认抖音的
2022-01-29 19:35:47
2627
原创 手把手讲解-OkHttp硬核知识点(1),android蓝牙开发框架
try {Response response = call.execute();String s = new String().concat(response.code() + “\n”).concat(response.message() + “\n”).concat(response.body().string());Log.d(“sendReqTag”, "onSuccess\n " + s);} catch (IOException e) {e.printStackTrace();}
2022-01-29 19:32:57
137
原创 我靠着这套学习视频+文档,自学Android从外卖小哥走到了头条
5.受到一些心灵鸡汤的鼓励,比如什么种一颗树最好的时机是十年前,其次,就是现在!辞职之后我辞去工作,开始在家自学Android开发。主要的学习方式就是在网上看视频教程。那些视频教程,初级的基本上免费。中高级的有些会收费,大概50-300元左右一套。反正“学费”上我没花什么钱,总共不到一千元吧。先是学了些java基础(把学校学的捡起来)。在思考未来就业方向时,犹豫了是继续学java还是选择学Android。在我读书时是学过JAVA的,有过一些基础,再考虑到就业各个方面还是选择了Android,我这个情
2022-01-29 19:31:32
153
原创 我的 5 年 Android 学习之路,那些年一起踩过的坑,flutter常见面试题
35 岁中年职业危机,很多职业都有,不仅仅局限于程序员。从本质上面说,自身竞争力下降占很大原因。毕竟,优秀的人才从来不缺少机会。既然选择了,便只顾风雨兼程。为了未来有更多的选择,从现在开始,朝着自己的目标努力奋斗吧,书写属于自己的人生。Android 学习路线============下面,说一下 Android 的学习路线,不会很具体,主要是从大的方面来说,感兴趣的可以看一下。搭建基本的开发环境,敲下 Hello world首先你配置好电脑开发环境。首先需要配置 Java,Androi
2022-01-29 19:30:07
163
原创 我把阿里、腾讯、字节跳动,2021Android开发社招面试解答之性能优化
启动速度与执行效率优化布局检测与优化内存优化耗电优化网络传输与数据存储优化APK大小优化一、启动速度与执行效率优化冷启动和热启动解析本节主要介绍启动方式、特点、应用启动的流程、测量应用启动的时间、什么才是应用的启动时间、降低应用启动时的耗时、优化应用启动时的体验。APP启动黑白屏解决办法解决方法1,把启动白屏的背景换成一张图片;解决方法2,把启动白屏背景变透明。APP卡顿问题分析及解决方案16ms原则;卡顿处理;Triple Buffe..
2022-01-29 19:28:43
851
原创 我们经常用的Loading动画居然还有这种姿势,android网络开发技术答案
但是,这种封装方式还是存在耦合:页面与它所使用的LoadingView仍然存在绑定关系。如果需要复用到其它App中,因为每个App的UI风格可能不同,对应的LoadingView布局也可能会不一样,要想复用必须先将页面与LoadingView解耦。如何解耦?1. 梳理一下我们需要实现的效果页面的LoadingView可切换,且不需要改动页面代码页面中可指定LoadingView的显示区域(例如导航栏Title不希望被LoadingView覆盖)支持在Fragment中使用支持加载失败页面中点
2022-01-29 19:25:53
991
原创 年龄越来越大,技术却提不上去?看看三十三岁老程序员怎么说
更可怕的是,会让你接触的人际关系非常单一,除了有限的技术人员之外你几乎见不到做其他行业工作和职位的人,你的朋友圈子小且单一,甚至破坏你原有的爱情(想象一下,你在外地做现场开发2个月以上,却从没跟女友见过一面的话,你的女友是不是会对你呲牙裂嘴)。也许你拿到了所谓的白领的工资,但你却从此失去享受生活的自由,如果你想做技术人员尤其是开发人员,我想你很快就会理解,你多么想在一个地方长期待一段时间,认识一些朋友,多一些生活时间的愿望。比之于我们的生活和人际关系及工作,那些从事售前和市场开发的朋友,却有比我们多得多
2022-01-28 20:01:08
150
原创 年底关于RXJava的种种第四弹-创建操作,android实战项目app
Integer[] items = { 0, 1, 2, 3, 4, 5 };Observable myObservable = Observable.from(items);myObservable.subscribe(new Action1() {@Overridepublic void call(Integer item) {System.out.println(item);}},new Action1() {@Overridepublic void call(Throwable
2022-01-28 19:58:18
138
原创 带着问题重学Android事件分发,android移动应用开发试题
//排序所有的子控件final ArrayList preorderedList = buildTouchDispatchChildList();for (int i = childrenCount - 1; i >= 0; i–) {//获取子控件的index下标final int childIndex = getAndVerifyPreorderedIndex(childrenCount, i, customOrder);//获取子控件对象final View child = get
2022-01-28 19:55:28
722
原创 尽快的学会某项技术,以应付面试遇到的问题,2021年GitHub上那些优秀Android开源库总结
4.加深对技术理解的深度每次回忆时,深入挖掘还不太懂的部分,尝试理解原理,更新到思维导图上,这样对于该技术的理解就会慢慢变深厚。多看源码。这一步也很重要,一直停留在表层技术并不能帮你拿到一个好的offer。5.出去面试,检验自己努力的结果都说实践是检验真理的唯一标准,切勿纸上谈兵。当自己觉得掌握些那些技术的时候,要实战检验,也要能举一反三,自己实践过后才知道哪里还可以在完善,面试过后才知道这个点还能这么做等你对思维导图了然于胸,并且有了一定深度之后,就去面试吧,很大可能会把面试官忽悠住,以为你是个
2022-01-28 19:52:39
103
原创 安卓技巧学习----关于APP列表的游标ListView,阿里巴巴二面被血虐
//这三个方法,实现了索引数据和列表数据的对应和定位public int getPositionForSection(int section) {}public int getSectionForPosition(int position) {}public Object[] getSections() {}3.游标Cursor的实现=======================================================================Cursor接口的实现
2022-01-28 19:49:49
85
原创 安卓开发者必备的42个链接,android移动开发基础答案
这里有200个视频教程,这些教程专注于安卓开发的各个方面,从下载和安装安卓SDK开始。大多数视频在5分钟左右,这使得你可以在任何小憩的时候看上一段。10、Derek Banas 安卓开发教程Derek 定期的上传关于各种主题的视频教程。目前共有五个关于安卓开发的视频。11、 “如何进行Android编程” — tgent07这里有10个简单的视频为你介绍安卓开发。有些视频是其它教程很少涉及到的内容。全部看完10个视频大概需要两个小时左右。12、安卓开发者如果你想紧跟安卓开发的
2022-01-28 19:48:24
159
原创 字节面试官:看了3000多份简历,面试1000场后,androidapp开发
最后问了一些职业规划第二面是笔试:java基础的比较多,两道算法题,然后是Android相关的题第三面是技术面试:面试官开始让介绍所做的一些项目,技术点之类的然后就逮着技术点进行深入挖掘设计模式六原则子线程怎么用handler问网页连接怎么启动本地app.android四大组件Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器。2 ANR(Acti.
2022-01-27 19:12:25
861
原创 字节跳动Android春招,三轮面试,夺命连环问,安卓驱动面试
Android1.说说service的两种启动方式和生命周期吧2.android热修复了解吗?3.kotlin有了解吗?4.你知道的IPC有哪些?Binder有了解过吗?5.事件分发机制了解吗?计算机网络1**.**五种状态码说一下。201是什么?302是什么?2.OSI七层模型介绍下吧其他的问题1.平时是怎么学习android的?2.项目中有没有遇到问题?怎么解决的?3.我看你项目中用到了okhttp,看过它的源码吗?面试感受面试官们都超级有耐心而且很和蔼,答错了面试官也会委婉
2022-01-27 19:08:11
269
原创 字节离你一步之遥:如何自学Android,网站,2021最新爱奇艺Android社招面试题目
作为一个Android开发者,官网的资料当然不可错过,从设计,培训,指南,文档,都不应该错过,在以后的学习过程中慢慢理解体会。2!. Android Guides – CodePathCodePath是国外一个技术培训机构,主要培训iOS 和Android开发,而CodePath将Android Guides放在Github,已经获得了4000+个赞,对于Android初学这特别适合,而且浅显易懂。3. Android tutorial – TutorialSpointTutorialSpoint
2022-01-27 19:06:45
148
原创 字节三面:ButterKnife为什么执行效率为什么比其他注入框架高?它的原理是什么
真正处理注解并生成代码的操作都在这里。 在写代码之前我们需要先导入两个重要的库,以及我们的注解模块:compile ‘com.google.auto.service:auto-service:1.0-rc4’compile ‘com.squareup:javapoet:1.9.0’implementation project(’:lib_annotations’)新建类RandomProcessor.java:@AutoService(Processor.class)public class R
2022-01-27 19:05:21
102
原创 抖音Android端“个人中心”页滑动冲突优化方案,android机器学习
根据分析就是在图中else中其实又触发了上下滑动逻辑,而外层的自定义LinearLayout布局没有跟随滑动导致的。那我们是不是可以在里面加个判断,除去真正的左右滑动逻辑(ViewPager事件),剩下的事件就是触发RecylcerView滑动的了(相当于过滤了横向的,留下的竖向的),我们再次判断外层的自定义LinearLayout布局是否需要联动,如果需要再次联动就好了。站在巨人肩膀上,系统控件的处理一般都可以借鉴,源码之下,一切清晰,横向的可以参考ViewPager的事件拦截,竖向的可以参考Recy.
2022-01-26 17:46:06
267
原创 技术生涯里,大厂履历意味着什么?,学android的入门基础知识
▼ 追求高薪资相对小厂而言,大厂的薪资水平会更高不少。具体数字区间就不细说了,但是大厂整体会大方很多,只要你能够通过面试,30%甚至更高的涨薪都有机会拿到,更何况,大厂的年终奖也不会被“无良”老板随意克扣。▼ 追求稳定去年整体大环境不行,很多公司裁员,尤其是不太盈利的中小厂,比如某团、某滴。而对于大厂而言,裁员的概率会小很多,毕竟裁员带来的收益远比不上因此带来的负面效应和股价下跌。▼ 追求职业发展近两年很多发展快的企业以 double 薪资去BAT挖人,比如头条、拼多多之类的。因此,从长远的职业发
2022-01-26 17:44:41
128
原创 手把手教你实现GridView中Checkbox全选,真服了
private Button bt_sumit;private int checkNum; // 记录选中的条目数量private TextView tv_show;// 用于显示选中的条目数量List selectID = new ArrayList(); //选中的ID@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R
2022-01-26 17:43:16
790
原创 我的Android-求职简历,二本渣校,靠这份简历拿下BATJ等15家大厂Offer
专业技能把你擅长的技能,用精简的语言,一点一点的罗列出来,优先把重点的放前面。如面试岗位对要求对Socket通信设计熟悉的,你也刚好擅长,那么可以放到前面优先描述。工作经历简单介绍自己工作过的公司,从什么时候工作到什么时候,什么职位,一般频繁跳槽的童鞋,这一部分可能会引起招聘方重点关注,这点大家都懂的,所以建议大家选择公司要慎重,尽量不要频繁跳槽。项目经历简单介绍自己的项目,并加上项目官网地址和下载地址,简明扼要的列出自己在项目中主要负责的工作,并取得的一些成绩。eView2/2/.
2022-01-26 17:41:51
189
原创 我的-Android-面试故事---13家面试记录,附面试答案,android星座查询源码
**总结:**这次问的问题我确实不怎么吃得住,深入一点可以,再深入一点可能就有点不行了,平时应该往更深的地方思考,就好比 Activity 生命周期大家都知道,但是为什么这么设计,这么设计的好处可能就不是都去思考过的了。7.汽车之家(offer)经过前六次的战役,现在的我面试的时候基本可以做到比较淡定了,由于不紧张,思路也慢慢变的清晰,反应也恢复到了平时的状态。**笔试:**汽车之家是必须笔试的,题目和两年前大同小异(我刚来北京的时候就去面过~),都是些 Java 基础和 Android 基础,Has
2022-01-26 17:40:27
887
原创 我想加入阿里,我该怎么做?,详细解说
专业能力解决问题的能力学习能力如果这几项能力达标或突出,我觉得就可以负责多个模块的开发工作了,也意味着进阿里,技术问题不大。那么我们能怎么去提升自己达到目标呢?限于篇幅,我着重讲怎么提升专业能力。专业能力的提升计算机专业要学习的内容非常多,专业能力包含很多,光Android还不够,还有比如数据结构、算法、Linux、网络编程、计算机原理等等等等等等,由于我做的是 Android,那么这里就偏向 Android 来讲解了。深入理解原理,不要只会使用由于开源的精神以及互联网的伟..
2022-01-26 17:39:01
994
原创 我学习Android的一些套路,flutter瀑布流自适应高度
除了编程基础,我们还需要补充哪些能力喜欢钻研的兴趣良好的英语理解能力善于思考和总结的习惯高效率的学习方法能够机智地利用Google搜索善于利用工具和现实事物关联类比的能力对待问题的态度1.喜欢钻研的兴趣,尽管高级编程语言的出现让我们将精力更多的放到业务上,而不是编程细节。正所谓知其然知其所以然,钻研细节可以更好地帮助我们实现业务,做到了然于胸。2.良好的英文理解能力。由于一些原因,我们接触到的一些技术的资料都是二手资料,而这些二手资料往往在知识传递的效果上有一些折扣,甚至是偏差。英语
2022-01-26 17:37:37
348
原创 多媒体系统之MediaMuxer和MediaExtractor(五),android计算器源码
1.//添加轨道addTrack2.写数据writeSampleData3.释放release注意点buffinfo 必须设置相应的有效值,不然会引发错误//写入数据大小bufferInfo.size = readSampleDataSize;//偏移量bufferInfo.offset = 0;//是否为关键帧bufferInfo.flags = mediaExtractor.getSampleFlags();//PTS 单位为微妙,必须为递增不然会报错bufferInfo.
2022-01-25 17:03:24
332
原创 基于Android的特征X射线谱识别系统的开发,2021年大厂Android面经
2.1开始界面APP的开始界面为一个弹出式对话框(Dialog),该对话框有两个选项,分别为X射线数据手册和特征X射线谱,选择选项,点击确定,即可进入相应功能界面——X射线数据手册或特征X射线数据列表。2.2 X射线数据手册该界面上方为文本输入区,下方为文本输出区。输入原子序数,可查询到对应原子不同轨道电子跃迁时发射的能量。2.3特征X射线数据列表当数据被导入该系统,会调用addList()函数并刷新界面,点击列表项,即可触发事件跳转至输入参数值的界面。该界面上方提醒用户道数与能量刻度的关系,下.
2022-01-25 16:57:44
338
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人