自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android 组件化架构概要,kotlin带参数的单例模式

3.自定义Gradle我们在Project的根目录创建一个config.gradle来统筹我们的依赖和版本信息里面比较关键的还是我们配置的 IS_BUILD_MODULE 变量,如果可以设置当为true的时候,Module可以单独运行,即Application,如果为false,那么我们就只能让Module作为Library来执行,至于其他的,都是一些普通的配置。IS_BUILD_MODULE 这个开关还可以放在gradle.properties中,实际上我觉得放在gradle.properties

2022-02-18 13:42:21 811

原创 Android 深入Http(4)从OkHttp源码来看Http,移动应用开发就业方向

也就是说,RealCall是Call的一个实现我们点进RealCall:RealCall(OkHttpClient client, Request originalRequest, boolean forWebSocket){…this.eventListener = eventListenerFactory.create(this);}分析下构造参数OkHttpClient client大总管,先不管Request originalRequest这里的Request是我们通过B

2022-02-18 13:38:06 2413

原创 Android使用SharedPreferences存储数据,kotlin数组的问题

Android官方api:SharedPreferences类提供了一个通用框架,以便您能够保存和检索原始数据类型的永久性键值对。您可以使用SharedPreferences来保存任何原始数据:布尔值,浮点值,整型值,长整型和字符串。此数据将跨多个用户会话永久保留(即使您的应用已终止亦如此)。详解:SharedPreferences使用xml格式为Android应用提供一种永久数据存贮方式,并且使用键值对的方式来存储数据的。相对于一个Android应用而言,目录/data/data/your_app_pa

2022-02-17 19:28:49 496

原创 Android低版本上APP首次启动时间减少80%(二,androidstudio社区

#00 pc 00016db4 /system/lib/libc.so (write+12) [armeabi-v7a]#01 pc 000884a5 /system/lib/libdvm.so (sysWriteFully(int, void const*, unsigned int, char const*)+28) [armeabi-v7a]#02 pc 00088587 /system/lib/libdvm.so (sysCopyFileToFile(int, int, unsigned int

2022-02-17 19:27:24 161

原创 Android互动直播APP开发入门笔记,吐血整理

(6)B帧:前向后向双向预测编码帧(7)GOP(Group of Picture):两个I帧之间的图像组,CDN缓存GOP做到直播秒开常见的音频编码器:AAC、PCM、WAV、OGG常见的封装格式:FLV、TS、AVI等直播的推流与优化推流协议:(1)RTMP协议:CDN支持良好、协议简单容易实现、数据包封装简单;缺点:基础TCP,传输成本高、Adobe私有协议(2)WebRTC协议:W3C标准、基于UDP;缺点:CDN支持较差(3)UDP自定义协议:定制化空间大;缺点:开发成本高、CDN不

2022-02-17 19:25:59 587

原创 Android之使用Assets目录中的xml布局、网页、音乐等资源,全世界都在问Android开发凉了吗

View.inflate(Context context, @LayoutRes int resource, ViewGroup root)LayoutInflater.from(Context context).inflate(@LayoutRes int resource, @Nullable ViewGroup root)LayoutInflater.from(Context context).inflate(XmlPullParser parser, @Nullable ViewGroup ro

2022-02-17 19:21:44 497

原创 Android中怎么启动关闭Service及功能解释 ,吊打面试官系列

}else if(v==buttonStop){Intent intent=new Intent();intent.setAction(“AAAAA”);intent.putExtra(“cmd”,CMD_STOP_SERVICE);sendBroadcast(intent);}}};private class DataReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, In

2022-02-17 19:20:19 522

原创 Android开发-软件版本升级与黑暗模式的适配【Android 10】

android:id="@+id/tv_text"android:layout_width=“190dp”android:layout_height=“40dp”android:layout_marginStart=“10dp”android:layout_marginTop=“5dp”android:gravity=“start”android:text="@string/tv_text"android:textColor="@color/colorUnitText"android:tex

2022-02-16 14:50:01 143

原创 Android应用程序反编译,面试安卓

dex2jar classes.dex**生成classes.dex.dex2jar.jar3.运行JD-GUI工具(绿色无须安装的)打开上面的jar文件,即可看到源代码**---------------------------------------------------------------------------------二.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件。工具下载:在http://code.google.com/p/android-apktool/

2022-02-16 14:48:36 119

原创 Android常见问题及开发经验总结(四),android开发技术论文

常用的一般是 pulltorefresh   goole官方推出的是SwipeRefreshLayout  但是这个不能下拉加载  我觉得这个就是硬伤。 推荐还是pulltorefresh.android做适配时,会将不同大小的图片放在不同的目录,为什么不直接将一张最大的图片放在drawable-xxhdpi目录下?因为程序会自动对图片进行缩放呀,没有必要做小图片了,是不是很省事,还是其他原因?答:1)有些情况压缩会失真2)有些设备 分辨率比较特殊但是我个人建议 用一套

2022-02-16 14:47:11 202

原创 Android字体概述,android开发学习

staticTypeface createFromFile(File path)//静态方法,从文件系统构造一个字体,这里参数可以是sdcard中的某个字体文件staticTypeface createFromFile(String path) //静态方法,从指定路径中构造字体staticTypeface defaultFromStyle(int style) //静态方法,返回默认的字体风格intgetStyle() //获取当前字体风格finalboolean isBold() //判断当前是

2022-02-16 14:38:41 288

原创 Android自定义动态布局 — 多图片上传,2021最新阿里Android面经

android:background="#cbcbcb"android:orientation=“vertical”android:padding=“0.2px” /><TextViewandroid:id="@+id/text_no_data"android:layout_width=“wrap_content”android:layout_height=“wrap_content”android:layout_margin=“20dp”android:text="@strin

2022-02-05 12:28:27 2906

原创 Android自定义View之游戏摇杆键盘实现(一),值得推荐

} else {//范围内触摸smallCircleX = (int) event.getX();smallCircleY = (int) event.getY();}} else if (event.getAction() == MotionEvent.ACTION_UP) {smallCircleX = bigCircleX;smallCircleY = bigCircleY;}return true;}弧度计算通过 event.getX(), event.getY()获得当前的触

2022-02-05 12:27:03 412

原创 Android背景颜色滑动渐变效果(上下滑动,左右滑动,安卓面试项目经验

5.获取控件与屏幕高度(宽度)的比例,根据比例设置颜色个数java代码如下:public class BaseActivity extends Activity {private LinearLayout ll_base;private int heights;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layo

2022-02-05 12:25:38 3086

原创 Android网络框架-OkHttp,关于Flutter文本组件Widget的全面解读

}@Overridepublic void onResponse(Response response) throws IOException{L.e(“onResponse:”);/*获得回调的一些字符串/String res = response.body().string();/*注意这里的onResponse仍然是在子线程中进行的,如果要在UI线程中修改某项的值,需要用以下方法/runOnUiThread(new Runnable(){@Overridepublic void ru

2022-02-05 12:22:48 143

原创 Android网络收集和ping封装库,flutter开发的app案例

比如,可以在开始请求记录时间,记录connectStart,connectEnd等方法时间,则可以计算出connect连接时间。04.如何使用如下所示new OkHttpClient.Builder()//配置工厂监听器。主要是计算网络过程消耗时间.eventListenerFactory(NetworkListener.get())//主要是处理拦截请求,响应等信息.addNetworkInterceptor(new StethoInterceptor()).build()该库.

2022-02-05 12:21:23 539

原创 Android编译打包的过程,flutter安装

编译打包的整体流程aapt(Android Asset Packaging Tool)编译和打包资源的工具将资源文件编译成二进制文件使用方法F:\AndroidStudio\sdk\build-tools\30.0.2添加到path环境变量下载openhub的apk,修改apk文件(aapt l)执行aapt list -v -a base.apk打印和apk相关的所有详细信息-a:会详细输出所有目录的内容-v:会以table的形式输出目录,table的表目有

2022-02-05 12:19:58 2406

原创 Android系统服务一览,教育移动互联网应用程序app

Native服务SurfaceFlinger这是framebuffer合成的服务,将各个应用程序及应用程序中的逻辑窗口图像数据(surface)合成到一个物理窗口中显示(framebuffer)的服务程序Java服务:这部分的服务大部分都有一个供应用进程使用的manager类,这就是一个RPC调用,用户通过调用xxxManager的方法,实际上被Binder给迁移到system_server进程中对应的xxxManagerService中对应的方法,并将结果再通过binder带回。1. 

2022-02-05 12:15:43 245

原创 Android控制之垂直滚动广告条ViewFLipper解析,安卓rxjava获取网络时间

android:toYDelta=“0”android:duration=“1000”/>然后是anim_out.xml,同样的,出动画。从0位置移动到-100%的位置,动画持续1s 接下来看一下我们的ViewFlipper的子项布局<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android=“http://schemas.andro

2022-02-04 13:16:41 106

原创 Android拍照并保存(对图片进行压缩,分解,flutter教程pdf

具体功能:将拍摄的照片保存到SDcard中具体需求:1.图片名保存格式:图片名称_手机型号_随机4位数.jpg2.将图片分解,压缩,显示3.写入SDCard卡保存具体实现:1.定义布局文件2.编写业务代码这里只对调用相机拍照、图片显示、保存  做介绍   并提供源码下载点击按钮后:@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_getphoto:mPhotoName

2022-02-04 13:15:16 405

原创 Android性能优化 _ 把构建布局耗时缩短 20 倍(上),5G音视频时代还不学NDK开发吗

throw e;}…}}onCreateView()的具体实现在AppCompatDelegateImpl中:class AppCompatDelegateImpl{@Overridepublic final View onCreateView(View parent, String name, Context context, AttributeSet attrs) {return createView(parent, name, context, attrs);}@Override

2022-02-04 13:08:11 124

原创 Android快速开发工具集合——YUtils,OMG,学它

校验手机号String MD5(String data)MD5加密void copyToClipboard(String text)复制文本到粘贴板View Foreground(View view, int color, int start, int end)字体高亮(TextView、EditText、Button)like this —》 YUtils.Foreground(mEditText, Color.RED,1,2);void showSoftKeyboard(Vi

2022-02-04 13:06:47 187

原创 Android微信分享图片按质量压缩的解决方案,androidndk开发教程

三、将io流转为byte数组public static byte[] inputStreamToByte(InputStream is) {try {ByteArrayOutputStream bytestream = new ByteArrayOutputStream();int ch;while ((ch = is.read()) != -1) {bytestream.write(ch);}byte imgdata[] = bytestream.toByteArray();bytest

2022-02-04 13:05:22 543

原创 Android开发:90%-成功率的BAT-Offer-收割机是怎样练成的

10、对Android插件化、热修复等有比较深入的研究11、熟悉常用设计模式,并能去设计出良好的代码12、对TCP/IP、Http、Https等有一定的了解13、了解Android FrameWork及其部分流程与实现原理14、对Android逆向有一定的了解,有一定的脱壳能力15、有一定的架构能力和极强的解决问题的能力再加上笔者在过去的一年,一直在做基础架构相关的工作,因此,简历方面会有不错的吸引力。面试前的准备工欲善其事必先利其器,要想拿到满意的offer,必须有一定的准备。以下列出来

2022-02-04 13:03:57 101

原创 Android网络优化攻略,简单了解一下?,一文详解

作者:究极逮虾户转载地址:https://juejin.cn/post/6896302142542315533面试官:小虾啊,我好想你啊,你都好久没来找我面试了呀。小虾:emmmmmmm,这不是怕被你打击吗。面试官:ok,看来是有备而来,那么我们今天聊聊网络优化咋做吧。小虾:我大意了,没有闪。老头子,你不讲武德,我奉劝你耗子尾汁。1. 如何优化一个网络请求呢?相信大家在面试的时候可能会被问到这个问题。今天我其实就是讲述下我知道的一些简单的优化方式,可以帮助大家在面试的过程中得到点基础.

2022-02-03 16:35:30 228

原创 Android组件化:我们到底该怎样学习和运用组件化?,android移动应用开发答案第二版

我觉得这位朋友说的很有道理,今天在这里就想和大家好好探讨一下“组件化”这个知识点。为什么要进行组件化开发?这里推荐一篇文章:为什么要进行组件化开发?这里给怕麻烦的朋友简单的说一下吧,单一工程开发模式有很多弊端,经常会遇到以下痛点:对工程的任意修改调试都要编译整个工程,效率十分低下不利于多人团队协同开发无法做到功能复用业务模块间耦合严重不利于后期项目功能维护以及迭代开发以上问题已经严重影响了我们团队的开发效率以及质量,所以作者极力推崇组件化开发方式。本文描述了单一

2022-02-03 16:34:06 1029

原创 Android组件化和插件化的概念,android快速开发框架

开发单个模块时可以共享资源和工具类。可以针对单个模块测试, 开发调试时不需要对整个项目进行编译。多人合作时可以只关注自己的业务模块,把某一业务当成单一项目来开发。可以灵活的对业务模块进行组装和拆分。4、组件化开发的主要思路就是将一个Module拆分成若干个Module,由主App提供统一的入口,每个拆分后的Module都依赖共享的Common依赖库,通过相关配置,各个Module可以独立运行调试,也可以供主App依赖使用。5、组件化开发的步骤:新建一个lib组件,New..

2022-02-03 16:32:41 324

原创 Android程序媛:文科转码,记录我在字节跳动这一年,fluttertextfield高度

在将近第二年的时候,我愈发觉得现在的工作不是我想要的,也不想回过头继续去做产品。当时之所以一心想做产品,是因为我很喜欢创造一些新东西。后来在工作中经常找开发解决问题,总觉得不得劲儿,很想自己去做那个解决问题的人。经过一番思索,我选择转行设计。没错,我想当一个香喷喷的设计师,做一个时尚的都市丽人。于是我辗转于某乎、招聘软件,总结出一份包含设计师分类、职业前景、薪资水平、日常工作情况等的表格,最终决定做 UI 设计师,还非常详细地制订了一份学习路线。或许是这份学习路线里的进阶阶段包含了一些Android

2022-02-03 16:28:26 6425 1

原创 Android程序员35岁之后还在招聘网站上投简历找工作丢人吗?

5.没啥明显长处,但做事踏踏实实,交给你的事情不会出漏子,和你工作过的人觉得和你搭档舒心。6.虽然有个性,但也有创意,能做别人想不出来的好策划,好设计。7.要么擅长娱乐酒席,要么擅长活动组织,最好长得体面。如果你一条都不符合,你作为一个35岁的程序员,哎,不是我说…1.做事呢你不如年轻人能拼,落地呢你不如年轻人听话,成长呢你以为自己够资格倚老卖老,你真的觉得你很职业么?2.就算你职业,孩子要接吧,家务要分担吧,老人也是年龄大了要管吧,和单身没牵挂的人比,你的优势啊,很难说随意发挥。3.就算你家里

2022-02-03 16:25:36 145

原创 Android面试中多说这么一句话,薪水直接涨5k,flutter面试题2021

在回答HR提出的薪资问题时,往往同学们都倾向于一个固定数字,比如说10K。那么恭喜你!你已经被HR成功套路!遇到这种情况,如果你去直接报价,如果报低了,那HR做梦都会笑醒。如果没有报低,HR也会顺着这个价格往下砍,你最终得到的薪资绝对会低于10K。**拿到Offer时你心里肯定会嘀咕:我要是当时在多加5K该有多好…**所以最佳方法就是要引导HR先说,比如询问一下公司的工资结构是怎么样的?有没有任务绩效,五险一金的比例,年终奖的构成等等。这样得到HR的回答了之后,就会对自己的薪资有一个更好的预估了。三

2022-02-02 15:07:37 160

原创 Android面经:我的阿里春招之路分享,五面后终拿到Offer

大概问题如下:android中的dp、px、dip相关概念handler机制,四个组成部分及源码解析布局相关的、控件作用及实现原理android中的布局优化relativelayout和LinearLayout在实现效果同等情况下选择使用哪个?为什么?view的工作原理及measure、layout、draw流程,要求了解源码怎样自定义一个弹幕控件?如果控件内部卡顿你如何去解决并优化?listview的缓存机制Invalidate、postInvalidate、requestLayou

2022-02-02 15:06:12 282

原创 Android面经:如此行情下失业数月,怎么顶住压力拿到理想offer

手写单例模式算法删除链表中一个节点爱奇艺三面 40min自我介绍项目有没有特别擅长的Javapublic作用?.java文件名怎么确定?外部类最多有几个?内部类最多有几个?内部类支持嵌套么?线程池怎么给新建的线程设置名字?线程池种类?注解的使用?AndroidActivity的启动模式下生命周期Activity A->B的生命周期Handler中怎么实现Looper和线程绑定?一个线程最多有几个Looper?多个Looper报的异常?消息阻.

2022-02-02 15:04:48 627

原创 Android隐藏系统状态栏(沉浸式状态栏)和设置状态栏颜色

2. 重新设置你的TitleBar这个解决方法更简单,就是改变TitleBar的高度和paddingTop,看下面示例就会豁然开朗:if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {ViewGroup.LayoutParams params = view.getLayoutParams();int topMargin = getStatusBarHeight(view.getContext());params.height =

2022-02-02 15:03:23 958

原创 Android设计模式系列--模板方法模式,android自定义view面试

定义了几个步骤1,2,3等,在模板方法中按照一定的结构顺序执行这些步骤。父类的方法可以有缺省实现,也可以是一个空实现,即所谓的钩子操作。结合实际情况,我们画出View中draw方法涉及到的几个步骤方法如下:学习模板方法对于我们了解框架的基类实现,生命周期和流程控制非常有帮助,我觉得是务必要掌握的一个模式。3.代码public class View{/**钩子操作,空实现*/protected void onDraw(Canvas canvas) {}/***钩子操作,空实现*/

2022-02-02 15:01:58 109

原创 android设计模式—原型设计模式,面试中Handler这些必备知识点你都知道吗

public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic CompanyOrder1 clone() {try {CompanyOrder1 order = new CompanyOrder1();order.setName(this.name);order.setOderNumber(this.oderNumber);return

2022-02-02 15:00:33 101

原创 Android记录2--制作表格样式+由下往上动画弹出效果实现

/Demo1/res/layout/business_list.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”android:id="@+id/ll_popupLayout"android:layout_width=“match_parent”android:layout_height=“match_p

2022-02-02 14:59:08 212

原创 Android自定义控件开发入门与实战(12)Canvas,app开发入门教程

比如我们自己 构造了一个Canvas为bmpCanvas(mBitmap),然后在onDraw中我们在这个bmpCanvas上进行绘制,但是应用最后却没有将该bmpCanvas上的东西显示出来!?这就说明,其实我们没有最终将自己新建的画布 画在 最终的画布上。 我们给bmpCanvas进行的绘制,绘制的内容只是在mBitmap上而已。方法三、调用SurfaceHolder.lockCanvas()函数在使用SurfaceView时,当调用SurfaceHolder.lockCanvas()函数时,也会

2022-02-02 14:56:18 215

原创 android自定义控件——深入篇,一线互联网移动架构师设计思想解读开源框架

import android.R.integer;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Paint.Style;import android.util.Attribut

2022-02-02 14:54:53 97

原创 Flutter Android 端 FlutterInjector 及依赖流程源码分析

}//步骤4、获取DeferredComponentManager实例,不分析,该特性在配合GP市场使用。public DeferredComponentManager deferredComponentManager() {return deferredComponentManager;}//步骤5、常规的构造器模式。public static final class Builder {private FlutterLoader flutterLoader;private Deferred

2022-01-31 14:50:55 198

原创 Eclipse的快捷键汇总,kotlin教程协程使用

【F3】快速定位光标位置的某个类、方法和属性。【F4】显示类的继承关系,并打开类继承视图。调试快捷键Eclipse中有如下一些和运行调试相关的快捷键。【Ctrl+Shift+B】:在当前行设置断点或取消设置的断点。【F11】:调试最后一次执行的程序。【Ctrl+F11】:运行最后一次执行的程序。【F5】:跟踪到方法中,当程序执行到某方法时,可以按【F5】键跟踪到方法中。【F6】:单步执行程序。【F7】:执行完方法,返回到调用此方法的后一条语句。【F.

2022-01-31 14:49:30 243

空空如也

空空如也

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

TA关注的人

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