自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android 利用ViewPager+GridView,仿美团首页导航栏分类布局界面

第一个界面是自己重写的ListVIew实现的下拉刷新,第二界面使用SwipeRefreshLayout这个控件套的ListVIew实现的下拉刷新。====优雅分割线=【思路】:之所以使用GridView作为每个ViewPager的页面,是考虑到,当这些分类条目的数据集变化时,比较好动态的更新。(通过SDK工具查看美团的View层级,发现其也是使用ViewPager里放入两个GridView实现。)假设(模拟)数据有20条,即20个类目,先考虑一下每个GridView页面有几条几列,这里我们暂定为每.

2022-03-07 19:40:22 710

原创 Android 使用百度LBS SDK(五),2021Android者未来的出路在哪里

break;case 4:// textHint.setText(“正在检测SD卡是否有离线地图”);break;}super.handleMessage(msg);}};public class CopyThread implements Runnable {@Overridepublic void run() {for (int i = 0; i < pathFrom.length; i++) {if (!copyFolder(pathFrom[i], Constant.P

2022-03-07 19:38:57 3249

原创 Android Studio 的NotePad制作(日志本),androidstudio基础

此为点击设置之后的界面设置颜色的代码如下:themeList = (ListPreference) findPreference(“themelist”);themeList.setSummary(PrefVO.themeListValue);themeList.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {@Overridepublic boolean onPreferenceChange

2022-03-05 17:14:29 602

原创 Android Studio 无法使用 Profile,Android源码剖析之Framwork层消息传递

I/tpc.imon.rddan: at void com.loc.e$a.handleMessage(android.os.Message) (AmapLocationManager.java:-1)I/tpc.imon.rddan: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:112)I/tpc.imon.rddan: at void android.os.Loope

2022-03-05 17:13:03 476

原创 Android Module依赖关系的可视化实现,kotlinlambda表达式

这里不多介绍Lint开发环境的搭建,可以直接参考官方demo:github.com/googlesampl… 。 具体效果可以参考ToastDetector:提醒Toast增加show()方法。关键方法:Detector中有两个和project相关的方法:beforeCheckRootProject(context: Context),遍历根module之前的回调,即项目中最顶层app modulebeforeCheckEachProject(context: Context)

2022-03-05 17:08:48 125

原创 Android Camera2 API,Android面试题中高级

2.2.3、SENSOR_ORIENTATION2.2.4、FLASH_INFO_AVAILABLE2.2.5、SCALER_AVAILABLE_MAX_DIGITAL_ZOOM2.2.6、LENS_INFO_MINIMUM_FOCUS_DISTANCE2.2.7、INFO_SUPPORTED_HARDWARE_LEVEL2.3、CameraDevice类2.4、CameraCaptureSession类2.5、CameraRequest类0、相关文章:=======Android C

2022-03-05 17:05:57 668

原创 Android Service与Activity之间的通信(bindService启动方式)

}public class BasisBind extends Binder {public void realize() {show();}}}相对于上文Android Service的基本用法添加了一个 onUnbind方法,以及一些操作下面开始介绍下bindService启动方式可以看到其中有三个参数,第二个参数如下Java文件如下public class StartSevice extends AppCompatActivity implements View.OnClic

2022-03-04 16:13:39 902

原创 Android PowerManager,从三流Android外包到秒杀阿里P7

wakeLock.acquire(90 * 1000);}private void acquireWakeLock2() {if(wakeLock == null){wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,this.getClass().getCanonicalName());}wakeLock.acquire(90 * 1000);}方法1和方法2在如下情形下加锁时间的长短不同:时间acqui

2022-03-04 16:12:14 189

原创 android opencv NDK人脸识别和对比,移动app定制开发

Sets the library as a shared library.SHAREDProvides a relative path to your source file(s).hxgopencv-lib.cpp)Searches for a specified prebuilt library and stores the path as avariable. Because CMake includes system libraries in the search path bydefa

2022-03-04 16:10:52 497

原创 Kotlin 操作符:run、with,html5移动端开发2020

『 this 』为『 this @ MyClass 』, this 是 MyClass 的实例,因为 test() 是 MyClass 的一个方法。而如果 test() 是一个空函数(Free function —— 不附加到任何类),将会出现一个编译错误。『 it 』为原字符串本身『 Boss 』『 result 』是数字 69,我们已经从区间返回赋值我们用表格更直观的作显示:操作符接收者(this)传参(it)返回值(result)letthis@MyclassS.

2022-03-03 16:23:12 158

原创 Kotlin 和 Flutter 对于开发者究竟意味着什么?(1),PopupWindow和Dialog区别

Kotlin First 对于 Android 开发者究竟意味着什么?======================================================================================================首先对于 Google 来说,应该意味着更进一步地放弃 Java。这会导致更多的 Android 库出现对应的 Kotlin 实现,甚至可能是只有 Kotlin 版本,Android Studio IDE 也会出现更多的倾向于 Kot

2022-03-03 16:20:22 174

原创 Android 组件化场景下多module依赖优雅实践方案,醍醐灌顶

compileOnlyruntimeOnlyruntimeOnly对应以前的apk方式声明依赖,我们直接忽略掉,测试一下生成的pom文件。dependencies {api “org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version”implementation ‘androidx.core:core-ktx:1.3.2’compileOnly ‘androidx.appcompat:appcompat:1.2.0’compileOnly..

2022-03-02 19:54:28 224

原创 Android 开发艺术探索笔记(9),送大厂面经一份

改变布局参数使用LayoutParams来改变view的布局,通过view的getLayoutParams来得参数,然后设置就行了。下面是一个用法三种方法的特点scrollTo/scrollBy:操作简单,适合对View内容的滑动动画:操作简单,主要用于没有交互需求的View改变参数布局:操作复杂,使用于所有要求交互的View弹性滑动弹性滑动View的共同思想是将一次大的滑动划分为若干个小的滑动,并在一个时间段内完成。使用Scroller下面是Scroller的源码

2022-03-02 19:50:13 72

原创 Android 开发艺术探索笔记(23),头条android面试

NDK的开发流程NDK的开发是基于JNI的,主要有以下几个步骤:下载并配置NDK设置完变量后,ndk-build命令就可以使用了,可以通过它来编译so库创建一个Android项目,并声明所需的native方法实现Android项目中所声明的native方法在外部创建一个名为jni的目录,然后在jni的目录下创建3个文件:test.cpp、Android.mk和Application.mk在Android.mk中LOCAL_MODUEL表示模块的名称,LOCAL_SRC_FIL

2022-03-02 19:48:48 142

原创 Android 开发网易面试凉凉经,面试官:基础不牢,2021Android春招面试经历

平时怎么学习的?平时有看什么书?(我说最近有看 《Android进阶解密》)这本书的章节是怎么安排的?它有什么特点?如果要你写每一章的 topic 你会怎么写?提问环节:应届生进入公司能接触到哪些业务?如何看待“程序员是吃年轻饭的”这一观点?网易四面(总监面 25 min)自我介绍大学学过哪些课程?然后问了某些课程的分数一个无序数组建堆的时间复杂度是多少?死锁是什么?如何产生的(产生死锁的条件)?TCP 中的滑动窗口看过《算法..

2022-03-02 19:47:23 261

原创 Android 布局异步加载中的pools对象缓存池源码分析(1),安卓面试题app

使用方法,如下:public class MyPooledClass {private static final SynchronizedPool sPool =new SynchronizedPool(10);public static MyPooledClass obtain() {MyPooledClass instance = sPool.acquire();return (instance != null) ? instance : new MyPooledClass();}pub

2022-03-02 19:44:32 88

原创 Android 嵌套滑动总结,Android高级架构进阶之数据传输与序列化

NestedScrollView 是唯一同时实现两个接口的 View,这意味着它可以用作中介来实现多级嵌套滑动,后面会说到。从上面可以看到,实际上,之前提到的 CoordinatorLayout 实现的嵌套滑动,本质上也是通过这套 NestedScrolling 接口来实现的。但是由于它封装得太好,我们没办法做过多定制。而直接使用这套接口,就可以根据自己的需求做定制。大部分的场景中,我们不需要去实现 NestedScrollingChild 接口,因为 RecyclerView 已经做了这个实现,而.

2022-03-02 19:41:43 121

原创 Framework学习(四)Launcher启动过程,android地图开发面试

}return true;}注释1处的mFactoryTest代表系统的运行模式,系统的运行模式分为三种,分别是非工厂模式、低级工厂模式和高级工厂模式,mTopAction则用来描述第一个被启动Activity组件的Action,它的值为Intent.ACTION_MAIN。因此注释1的代码意思就是mFactoryTest为FactoryTest.FACTORY_TEST_LOW_LEVEL(低级工厂模式)并且mTopAction=null时,直接返回false。注释2处的getHomeIntent

2022-03-01 21:47:54 209

原创 ForkJoinPool使用以及原理解读,详解Android架构进阶面试题

final int doExec() {int s; boolean completed;if ((s = status) >= 0) {try {completed = exec();} catch (Throwable rex) {return setExceptionalCompletion(rex);}if (completed)s = setCompletion(NORMAL);}return s;}也即是,现有ForkJoinTask的子类exec方法,均是返回t

2022-03-01 21:45:04 277

原创 Flutter插件(Plugin)开发 - Android视角,flutter安装视频

// 上报播放器的状态的EventChannelEventChannel status_channel = new EventChannel(registrar.messenger(), “flutter_music_plugin.event.status”);status_channel.setStreamHandler(new EventChannel.StreamHandler() {@Overridepublic void onListen(Object o, EventChannel.Ev

2022-03-01 21:43:39 360

原创 Flutter之撸一个漂亮的登录界面的总结,帮你快速拿Offer

}2.根据布局编写代码这部分没什么好说的,主要是要熟悉一些控件的使用,根据UI稿一步一步写出布局就可以了。例如,输入账号和密码的TextForm的实现/**创建登录界面的TextForm/Widget buildSignInTextForm() {return new Container(decoration:new BoxDecoration(borderRadius: BorderRadius.all(Radius.circular(8)), color: Colors.whi

2022-03-01 21:42:14 165

原创 Flutter 扩展的联动Tabs,android面试题2021高级

bool _canlinkeWithAncestorScroll(bool onLeftEdge) {//return false;if (_ancestor == null) return false;return (onLeftEdge &&_ancestor._pageController.offset !=_ancestor._pageController.position.minScrollExtent) ||((!onLeftEdge &&_ance

2022-03-01 21:39:24 149

原创 Flutter 中的同步与异步,我的Android美团求职之路

Future.error创建一个执行结果为error的futurefactory Future.error(Object error, [StackTrace? stackTrace]) {/// …return new _Future.immediateError(error, stackTrace);}_Future.immediateError(var error, StackTrace stackTrace)_zone = Zone._current {_asyncComplet

2022-03-01 21:37:59 2058

原创 Github标星5-3K原来还有如此丧心病狂的Android混淆文件生成器?,“金三银四”春招指南

----------------------------------------------------------------------------混淆的压缩比例,0-7-optimizationpasses 5指定不去忽略非公共的库的类的成员-dontskipnonpubliclibraryclassmembers指定混淆是采用的算法-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field

2022-02-17 21:47:26 119

原创 Github 的搭建和配置github中的SSH key值,android学习视频

$ cd ~/.ssh$ ls这两个命令就是检查是否已经存在 id_rsa.pub 或 id_dsa.pub 文件,如果文件已经存在,那么你可以跳过步骤2,直接进入步骤3。2、创建一个 SSH key$ ssh-keygen -t rsa -C “your_email@example.com”代码参数含义:-t 指定密钥类型,默认是 rsa ,可以省略。-C 设置注释文字,比如邮箱。-f 指定密钥文件存储文件名。以上代码省略了 -f 参数,因此,运行上面那条命令后会让你输入一个文件名,用于

2022-02-17 21:46:01 180

原创 Fragment切换效果,大厂Android高级多套面试专题整理集合

package com.wust.myanimation;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import androidx.annotation.NonNull;import androidx.annotation.Nullable;import androidx.fragment.app.Fragm

2022-02-17 21:44:35 72

原创 Flutter开发之——showAboutDialog,华为移动应用开发平台

context: context,applicationIcon: Image.asset(‘images/flutter.png’,height: 60,width: 60,),applicationName: ‘应用程序’,applicationVersion: ‘1.0.0’,applicationLegalese: ‘copyright© 测试示例’,children: [],);})效果图2.4 国际化说明VIEW LICENSES 和COLSE是showAbo

2022-02-17 21:41:46 165

原创 Flutter如何实现下拉刷新和上拉加载更多,Android开发基础面试题

class MovieListState extends State {String movieType;String typeName;List movieList = new List();int currentPage = 0; //第一页int pageSize = 10; //页容量int totalSize = 0; //总条数String loadMoreText = “没有更多数据”;TextStyle loadMoreTextStyle =new TextStyle(co

2022-02-17 21:38:56 152

原创 FlutterDojo设计之道—状态管理之路(七,flutter插件播放音乐

class ItemModel {String title;bool isCheck;int likeCount;ItemModel(this.title, this.isCheck, this.likeCount);}class DataModel with ChangeNotifier {List dataList = List();int checkedCount = 0;bool shouldListRebuild = true;getData(int pageIndex) as

2022-02-17 21:36:06 100

原创 Jetpact Compose状态管理简单理解,flutter推流

onValueChange = {value=it//每次输入内容的时候,都回调这个更新状态,从而刷新重组ui},label = { Text(“Name”) })}}状态管理的常用方法remember 重组中保存状态组合函数可以通过remember记住单个对象,系统会在初始化期间将remember初始的值存储在组合中。重组的时候可以返回对象值,remember既可以用来存储可变对象又可以存储不可变的对象当可组合项被移除后,会忘记 remember 存储的对象。mutableStat

2022-02-16 17:17:13 1749

原创 Jetpack学习之 LiveData,android直播原理

将更新界面的LiveData对象存储在ViewModel中,而不是将其存储在Activity或Fragment中:(1)避免Activity或Fragment过于庞大,分离 ui 和数据(2)将LiveData实例与特定Activity实例分离开,使LiveData对象在配置更改后继续存在在onCreate方法中开始观察LiveData对象不要在onResume方法中进行调用 observe() ,因为会出现多次调用的问题。确保Activity或Fragment变为活跃状态后具有可以立即显.

2022-02-16 17:15:48 126

原创 IT圈的“年龄歧视”,android模拟器中文输入法

根据权威数据显示,国内IT程序员鼎盛时期是在25-30岁左右,35岁对于程序员而言完全是一个38线,接着就是转业转岗的事情,这一点在业界也算是一个共识了。大学毕业步入IT行业普遍年龄也是在22岁左右,然而22-30岁之间也就是8年左右的时间,那么27岁也就是职业生涯“中年”的开始,那么作为程序员的你有准备好如何度过“中年危机”吗?当程序猿到了28岁左右的“中年危机”就不一样了,这个年纪也是程序猿们工作积累的高峰期,有的程序猿已经换了好几份工作,也有的程序猿们一直在一家企业做了好几个大型项目,甚至有些程序

2022-02-16 17:11:33 83

原创 HTTPS 为什么是安全的 _ (下),flutter登录注册

Android面试官:任务栈?返回栈?启动模式?傻傻分不清楚?面试官:唠唠 Activity 的生命周期面试官: 说一说 Context面试官:为什么不能使用 Application Context 显示 Dialog?面试官:OutOfMemoryError 可以被 try catch 吗 ?面试官:为什么 Activity.finish() 之后 10s 才 onDestroy ?面试官:如何监测应用的 FPS ?面试官:为什么 View.post 可以获取到视图宽高?在上篇文.

2022-02-16 17:07:19 2349

原创 httpd的安装的启动脚本的制作,2021Android面试笔试总结

把下载下来的包放在 /usr/local/src 下,使用 tar zxvf httpd-NN.tar.gz解压,cd httpd-NN./configure --prefix=/usr/local/httpdmakemake install现在你发现在/usr/local下面多出了一个httpd的目录我们可以利用 /usr/local/httpd/bin/apachectl -k start|stop|restart 来管理httpd服务。如果要随系统启动,我们必须在 /etc/rc.d/i

2022-02-16 17:05:54 139

原创 Flutter开发之——网络请求-JsonToDart插件解析,AnyChat音视频互动开发平台

在创建文件的位置,右键:New—>JsonToDart将Json结果填入文本框中,输入类名,点击Generate生成此类三 旧类替换并显示3.1 代码Future futureArticle3;@overridevoid initState() {super.initState();futureArticle3=_httpGet2();}//显示FutureBuilder(future: futureArticle3,builder: (context, sna.

2022-02-15 17:16:05 320

原创 Flutter开发之——下拉刷新,鸿蒙教程来袭

| backgroundColor | 指示器的背景颜色 | Color |2.3 示例代码List _list =[1, 2, 3,];body: RefreshIndicator(color: Colors.red,backgroundColor: Colors.lightBlue,onRefresh: () {setState(() {_list.add(_list.length+1);});return Future.delayed(Duration(seconds:1));

2022-02-15 17:14:40 648

原创 Flutter图表库fl_chart的使用解析(二)-折线图,金九银十

MacBook-Pro:~ xun$ flutter doctorDoctor summary (to see all details, run flutter doctor -v):[✓] Flutter (Channel stable, 2.0.3, on macOS 11.2.3 20D91 darwin-x64, localezh-Hans)[✓] Android toolchain - develop for Android devices (Android SDK version 30.

2022-02-15 17:10:26 2084

原创 ubuntu软件更新源,更改,可提高更新的速度,移动端app开发

6. 安装系统更新打开“系统->系统管理->更新管理器”,安装更新。完成后若系统提示重新启动,请重新启动系统。如果你是校园网用户,请查看:Ubuntu11.04教育网源下面是Ubuntu 11.04一些常见的源#Ubuntu官方源deb http://cn.archive.Ubuntu.com/ubuntu/ natty multiversedeb-src http://cn.archive.Ubuntu.com/ubuntu/ natty multiversedeb http:/

2022-02-05 15:01:15 301 1

原创 Ubuntu18,字节跳动内部学习资料泄露

dpkg: 警告: 无法找到软件包 libboost-filesystem-dev:amd64 的文件名列表文件,现假定该软件包目前没有任何文件被安装在系统里。dpkg: 警告: 无法找到软件包 libboost-exception1.65-dev:amd64 的文件名列表文件,现假定该软件包目前没有任何文件被安装在系统里。dpkg: 警告: 无法找到软件包 libboost-signals1.65.1:amd64 的文件名列表文件,现假定该软件包目前没有任何文件被安装在系统里。dpkg: 警告: 无

2022-02-05 14:58:25 258

原创 Toolbar在Android中的使用,移动端开发工程师岗位职责

第三步:设置 Toolbarpackage com.wust.selftoolbar;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.widget.Toolbar;public class MainActivity extends AppCompatActivity {private Toolbar tb_self_tool_bar;@Override.

2022-02-05 14:57:01 300

空空如也

空空如也

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

TA关注的人

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