自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android slidingmenu详解 优化侧滑,android进程清理

(二) 导入项目将actionbarsherlock 和 slidingmenu 导入项目里工程名为:ExampleListActivityactionbarsherlocklibrary项目的结构层次ExampleListActvity||----------Library||-------------actionbarsherlock(三) 导包项目 与 排错(1)导入项目后  打开 ExampleListActivity  的 propert

2021-12-31 10:50:31 528

原创 Android P 网络请求相关总结,移动端内嵌h5页面

No Network Security Config specified, using platform default后来通过查阅官网,发现Google在Android P上面禁止了明文http传输,也就是默认的是使用https而不是http。而且官方也是给出了解决方案。可以参考官方详情,我在这里简单总结一下1. 添加安全配置文件首先在res/xml文件夹下创建文件network_security_config.xml文件,然后添加可以信任的域名或者ip。<?xml version="1.0

2021-12-31 10:45:33 410

原创 Android MTK 设置默认启动 Launcher,字节跳动学习笔记

/**mtk addset default launcher*/ComponentName DefaultLauncher=newComponentName(“com.android.launcher3”,“com.android.launcher3.Launcher”); //此处设置默认Launcher的包类名//Slog.d(TAG,“set default launcher”);final PackageManager mPm = mContext.getPackageM

2021-12-31 10:43:31 1759

原创 Android JNI QQ 搞怪语音实战 (含完整 Demo),android工程师要求

继承 C++库配置Fmod 在 Android 中的 C++环境QQ 语音实战思路其他文章:Android JNI 入门(含完整Demo)Android JNI 进阶(含完整 Demo)继承 C++库想改变 语音音频,那么就得调用 C++的音频库 FmodFmod 打开界面是这样的:\然后注册,下载即可:红框:下载的时候我是 mac 所以下载 mac,这个是 Fmod 自带的音频调节软件绿框:是Android 平台的.so 文件等等红框下载后是这个样子:\然后打开即可.

2021-12-31 10:40:59 183

原创 AndroidX,安卓开发指南

at android.view.LayoutInflater.inflate(LayoutInflater.java:414)at android.view.LayoutInflater.inflate(LayoutInflater.java:365)at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)at androidx.appcompat.app.AppComp

2021-12-30 12:32:05 309

原创 Android-高级-UI-进阶之路(四)-Paint-渲染-滤镜-xfermode-使用

// 设置绘制路径的效果,如点画线等PathEffect setPathEffect(PathEffect effect);// 设置MaskFilter,可以用不同的MaskFilter实现滤镜的效果,如滤化,立体等MaskFilter setMaskFilter(MaskFilter maskfilter);// 设置Typeface对象,即字体风格,包括粗体,斜体以及衬线体,非衬线体等Typeface setTypeface(Typeface typeface);// 设置光栅化Rast

2021-12-30 12:31:10 1953

原创 Android-设置PullToRefresh下拉刷新样式,androidsdk开发文档

2021-12-30 12:30:15 1045

原创 android 快速开发(三,android开发基础

}<RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”xmlns:tools=“http://schemas.android.com/tools”android:layout_width=“match_parent”android:layout_height=“match_parent”android:paddingBottom="@dimen/activity_vertical_margin"

2021-12-29 13:36:29 92

原创 android 快速开发工具类,难道Android真的凉了

androidmanifest.xml 的 application 添加android:name=“cn.hotapk.fastandrutils.utils.FApplication”或者public class 你的 application extends FApplication {…}或者 在你的 application 添加FUtils.init(this);类说明类 | 描述 — | — FActivityLifecycleCallbacks.java&nbsp.

2021-12-29 13:35:28 80

原创 Android 录制视频添加时间水印,Android开发教程入门

static const int64_t kMax32BitFileSize = 0x3800000;//0x00ffffffffLL; // 2^32-1 : max FAT32static const int64_t kMax32BitDuration = 0x007fffffffLL;然后追踪到VideoActor的处理。有一个思路,就是..

2021-12-29 13:34:03 1273

原创 Android 开发行业真的不行了嘛?,flutter通知栏提醒

身处在Android开发行业的我就有深体会过,在18年时,我刚从学校毕业出来参加工作,找到第一份工作就是Android 开发相关的,当时的技术很菜,就是只会一些学校所教的简单技术,自然薪资也很低。偶尔闲逛博客等一些自媒体平台时,就看见了Android 开发已凉相关的传言,当时引起了我想换行的想法。但最后还是想了想,市场这么多人在用Android 机器,难道就没有我的容身之处没,于是坚持到了现在。说到底,是Android凉了吗?其实并没有!只是市场对于Android 开发者们的技术要求越来越高了,说到.

2021-12-29 13:31:51 988

原创 Android 开发艺术探索笔记(5,我的头条面试经历分享

public Messenger(Handler target){mTarget = target.getIMessenger();}public Messenger(IBinder target){mTarget = IMessenger.Stub.asInterface(target);}得到的mTarget是AIDL类的~ Messenger对AIDL进行了封装,使得我们可以便捷的使用。实现一个Messenger由以下步骤,分为服务端和客户端。- 服务端进程在服务端创建一个Servic

2021-12-29 13:30:28 237

原创 Android 开发的前景如何?,flutter人脸识别

this(context, attrs, 0);}public XXXView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);initView;}private void initView {LayoutInflater.from(getContext).inflate(R.layout.xxxlayout, this, true);…

2021-12-29 13:27:16 949

原创 Android 组件化面试必备,安卓面试问题和答案

通过ARouter在module间共享对象,实现module间通信。比如:我们有一个账号模块 business:account ,提供了登录、登出、用户信息查询等业务。同级的其他模块,如何跟账号模块通信?获取用户的登录状态以及用户相关信息?public class AccountBean {private String name;private int age;//…}public interface IAccountService extends IProvider {void

2021-12-28 12:11:19 639

原创 Android 笔记:2015,android简易计算器代码

onRestart()方法则是只在activity从stopped状态恢复时才会被调用,因此我们可以使用它来执行一些特殊的恢复(restoration)工作,请注意之前是被stopped而不是destrory。使用onRestart()来恢复activity状态是不太常见的,因此对于这个方法如何使用没有任何的guidelines。然而,因为onStop()方法应该做清除所有activity资源的操作,我们需要在重启activtiy时重新实例化那些被清除的资源,同样, 我们也需要在activ...

2021-12-28 12:10:18 194

原创 Android 摄像头调用(不含拍照),Android面试基础知识

Camera.CameraInfo info = new Camera.CameraInfo();Camera.getCameraInfo(cameraId,info);//获得旋转角度int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();int degrees = 0;switch (rotation) {case Surface.ROTATION_0: //没有旋转degr

2021-12-28 12:08:54 165

原创 Android 指纹解锁和MD5加密密码,音视频编解码原理

KeyguardManager keyguardManager = getSystemService(KeyguardManager.class);if (!keyguardManager.isKeyguardSecure()) {// Show a message that the user hasn’t set up a fingerprint or lock screen.Toast.makeText(this, getResources().getString(R.string.not_set

2021-12-28 12:07:57 175

原创 Android 打包AAB+PAD(java篇),2020年android面试题

packName = “asset-pack-name” // Directory name for the asset packdynamicDelivery {deliveryType = “[ install-time | fast-follow | on-demand ]”}}5、在项目的应用 build.gr

2021-12-28 12:06:41 507

原创 android 快速开发(三)巧用公共标题栏,原生Android开发的路该怎么走

package com.yqy.yqy_commontitlebar;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android.view.KeyEvent;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.wi

2021-12-28 12:05:18 144

原创 Android 开发面试题集合整理(内含答案),android网络开发技术实战详解

1. DataBinding作用,实现一个MVVM2. DataBinding使用的主要技术点,Java APT,观察者,注解等3. DataBinding关键类ActivityMainBindingImpl 具体实现了绑定ViewDataBinding 持有activity或者fragment和View的引用,主要作用一次遍历View,实例化所有子View,并存储在数组中,这里解决了findviewbyid性能问题,同时为我们省去了findviewbyid的操作BR 类似Android R文件

2021-12-28 12:03:16 190

原创 Android 开发面试题集合整理(内含答案)(1),优秀Android程序员必知必会的网络基础

1. DataBinding作用,实现一个MVVM2. DataBinding使用的主要技术点,Java APT,观察者,注解等3. DataBinding关键类ActivityMainBindingImpl 具体实现了绑定ViewDataBinding 持有activity或者fragment和View的引用,主要作用一次遍历View,实例化所有子View,并存储在数组中,这里解决了findviewbyid性能问题,同时为我们省去了findviewbyid的操作BR 类似Android R文件

2021-12-28 12:02:07 169

原创 Android 开发面试心得:BAT大厂Android面试题整理,面试8家大厂后终于拿到Offer

封装view的时候怎么知道view的大小arraylist和linkedlist的区别,以及应用场景怎么启动service,service和activity怎么进行数据交互下拉状态栏是不是影响activity的生命周期,如果在onStop的时候做了* 网络请求,onResume的时候怎么恢复view渲染爱奇艺RxJava的功能与原理实现RecycleView的使用,原理,RecycleView优化ANR的原因四大组件Service的开启方式..

2021-12-28 12:00:45 297

原创 Android(java)回调函数经典示例,Android开发必须会的技能

public static void testMethod(){for ( int i= 0 ; i< 100000000 ; i++){}}/**一个简单的测试方法执行时间的方法*/public void testTime(){long begin = System.currentTimeMillis(); //测试起始时间testMethod(); //测试方法long end = System.currentTimeMillis(); //测试结束时间System.ou

2021-12-27 11:49:50 312

原创 Android 面试必备 - JVM 及 类加载机制,安卓开发语言kotlin

参考博客JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。![image.png](《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8

2021-12-27 11:48:26 145

原创 Android 阿里推送正常推送以及辅助通道走过的坑,android开发笔试题

dependencies {......compile ('com.google.firebase:firebase-messaging:17.6.0')}3.4 Huawei依赖如需配置华为通道还需要添加华为推送SDK依赖:dependencies {......compile 'com.aliyun.ams:huawei-push:2.6.3.305'compile 'com.aliyun.ams:h..

2021-12-27 11:47:29 375

原创 Android 适配Dark Theme(暗黑模式),Android高级工程师必备知识

Android 10 提供 Force Dark 功能。此功能可让开发者快速实现深色主题背景,只需要在 style.xml 中的应用主题中添加这一行代码android:forceDarkAllowed=“true” ,就可以完成自动适配。效果对比如下图所示。从结果来看,整体的界面风格好像确实变成了暗黑模式,但是菜单栏并未适配,所以这里我并不推荐你使用这种自动化的方式来实现深色主题,而是应该使用更加复杂一点的实现方式——自定义适配。图1 正常情况图2 Force Dark适配自定义适配将App

2021-12-27 11:46:13 1141

原创 Android 解决65536,flutter开源项目商业化

…minSdkVersion 15targetSdkVersion 30multiDexEnabled true}…}dependencies {implementation “androidx.multidex:multidex:2.0.1”}不使用AndroidX(已弃用)android {defaultConfig {…minSdkVersion 15targetSdkVersion&nb

2021-12-27 11:43:48 208

原创 Android 网络性能优化(4)弱网优化,Android小程序开发实例

中间的网络节点挂了…既然没有明确的定义,那我们只能通过各种工具和手段来判断当前是否为弱网环境了。对于丢包率和网络延时,都是可以使用数据来进行衡量的,下面来介绍更细化的指标。2.2 弱网指标如下图所示:httprtt(Http Round-Tip Time)又称TTFB(Time to first byte),指从客户端请求的第一个字节开始发送到接收到http header的第一个字节的时间差。即 httprtt = 接收第一个字节的时间 - 发送第一个字节的时间。如果http..

2021-12-27 11:42:48 2602

原创 android 界面布局-各个布局的属性介绍,移动应用开发的前景

附加几类 RelativeLayout 的属性供大家参考:第一类 : 属性值为 true 或 falseandroid:layout_centerHrizontal                   水平居中android:layout_centerVertical    &nbsp

2021-12-27 11:41:39 241

原创 Android-Studio-4-1-发布啦,别再说自己不会了

本机内存探查器Android Studio Memory Profiler 现在包括一个本机内存 Profiler,Profiler 支持用于将Android 10或更高版本的物理设备。使用本机内存探查器可以记录本机代码中的内存分配和释放,并检查有关本机对象的累积统计信息。要了解有关本机内存探查器的更多信息,请参阅:developer.android.com/studio/prof…已知问题和解决方法Android Studio 4.1中的本机内存探查器不适用于Android 11设备,4.2

2021-12-26 13:07:49 356

原创 Android-MotionLayout动画:续写ConstraintLayout新篇章

因为id为start的ConstraintSet标签关联到Transition标签的constraintSetStart属性,所以它作为动画(目前只有一个动画)的起始状态。而id为end的ConstraintSet标签关联到Transition标签的constraintSetEnd属性,所以它将作为动画的结束状态。结束状态我们将正方形设置水平居中,距离底部50dp。设置Constraint标签时记得设置layout_width与layout_height,不然是看不到正方形的。到这一步,Tra

2021-12-26 13:06:24 296

原创 Android-JVM面试专题:阿里100%会问到的JVM,Android培训那里好

JVM 分为堆区和栈区,还有方法区,初始化的对象放在堆里面,引用放在栈里面,class 类信息常量池(static 常量和 static 变量)等放在方法区new:**方法区:**主要是存储类信息,常量池(static 常量和 static 变量),编译后的代码(字节码)等数据**堆:**初始化的对象,成员变量 (那种非 static 的变量),所有的对象实例和数组都要在堆上分配**栈:**栈的结构是栈帧组成的,调用一个方法就压入一帧,帧上面存储局部变量表,操作数栈,方法出口等信息,局部变量表存放的

2021-12-26 13:04:59 80

原创 Android-Framework:Handler全解析,看完这篇还不懂请给我寄刀片

这就是小伙伴们一般常用的两个用法。大家注意到了在第二个用法中出现了一个Looper.getMainLooper(),使用它作为参数,即使MyHandler是在子线程中定义的,但是它的handleMessage方法依然运行在主线程。我们看一下这个参数究竟是什么东东~public Handler(@NonNull Looper looper) {this(looper, null, false);}可以看到这个Looper就是我们上面传入的参数Looper.getMainLooper(),也就说明了ha

2021-12-26 13:03:33 200

转载 Android 高频面试必问之Java基础,价值2000元的Android学习资源泄露

4.4 Java堆Java堆是虚拟机所管理的内存中最大的一块,Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。 此内存区域的唯一目的就是存放对象实例,java中“几乎”所有的对象实例都在这里分配内存。这里使用“几乎”是因为java语言的发展,及时编译的技术发展,逃逸分析技术的日渐强大,栈上分配、标量替换等优化手段,使java对象实例都分配在堆上变得不那么绝对。 Java堆是垃圾收集器管理的主要区域,因此很多时候也被称做“GC堆”。从内存回收的角度来看,由于现在收集器基本都采用分代收集算法(G

2021-12-26 13:02:08 133

原创 Android 面试必备 - JVM 及 类加载机制,移动端开发工程师面试

Java虚拟机栈(Java Virtual Machine Stacks)该区域也是线程私有的,它的生命周期也与线程相同。虚拟机栈描述的是Java方法执行的内存模型:每个方法被执行的时候都会同时创建一个栈帧,栈它是用于支持续虚拟机进行方法调用和方法执行的数据结构。对于执行引擎来讲,活动线程中,只有栈顶的栈帧是有效的,称为当前栈帧,这个栈帧所关联的方法称为当前方法,执行引擎所运行的所有字节码指令都只针对当前栈帧进行操作。栈帧用于存储局部变量表、操作数栈、动态链接、方法返回地址和一些额外的附加信息。在编译程序

2021-12-26 12:59:18 94

原创 Android 面试之—— ViewModel 总结篇,fluttertextfield赋值

再看看刚刚的 ViewModelProvider 构造方法里调用了 this(ViewModelStore, Factory),将 ComponentActivity#getViewModelStore 返回的 ViewModelStore 实例传了进去,并缓存到 ViewModelProvider 中public ViewModelProvider(@NonNull ViewModelStore store, @NonNull Factory factory) {mFactory = factory;

2021-12-26 12:57:52 595

原创 android 获取 imei号码,大厂内部资料

tm.getCellLocation();//CellLocation/** 唯一的设备ID:* GSM手机的 IMEI 和 CDMA手机的 MEID.* Return null if device ID is not available.*/tm.getDeviceId();//String/** 设备的软..

2021-12-26 12:56:27 141

原创 Android 自定义View之展开收起的Layout,kotlinalso函数

分析=============================================================效果图来看,点击事件触发view的展开收起,并在收起状态下保留了第一个子view显示,这个展开收起其实就是view的高度变化,所以只要控制好高度,就能很简单的实现这个效果。步骤=============================================================1.初始化参数 设置方向等2.根据动画执行进度计算高度初始化.

2021-12-26 12:55:02 174

原创 Android初识贝塞尔曲线,安卓移动开发实验报告

private Paint getPaintByColor(int color) {Paint paint = new Paint();paint.setAntiAlias(true);paint.setDither(true);paint.setColor(color);paint.setStyle(Paint.Style.STROKE);return paint;}@Overrideprotected void onMeasure(int widthMeasureSpec, int h

2021-12-25 12:45:34 123

原创 Android全面解析之Handler机制:常见问题汇总,android开发入门教程电子书

while (p != null && p.when <= when) {prev = p;p = p.next;}}// 插入同步屏障if (prev != null) { // invariant: p == prev.nextmsg.next = p;prev.next = msg;} else {msg.next = p;mMessages = msg;}return token;}}可以看到同步屏障就是一个特殊的target,哪里特殊呢?tar

2021-12-25 12:44:26 106

空空如也

空空如也

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

TA关注的人

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