- 博客(206)
- 收藏
- 关注
原创 Android - LayoutParams,小火箭,高内聚低耦合,rxjava原理面试
}//将返回值设置为true,才能一直接收到事件return true;}});3.WindowManager.LayoutParams1.params.x和params.yView的X坐标和Y坐标2.params.gravityGravity.TOP //上对齐Gravity.BOTTOM //下对齐Gravity.LEFT //左对齐Gravity.RIGHT //
2022-03-02 19:03:37 415
原创 Activity页面的绘制流程,移动app开发公司
……ViewRootImpl root;View panelParentView = null;……1.创建ViewRootImpl对象root = new ViewRootImpl(view.getContext(), display);view.setLayoutParams(wparams);mViews.add(view);mRoots.add(root);mParams.add(wparams);// do this last because it fires off me
2022-03-02 18:59:22 619
原创 Activity显示界面——说说View的那些理不清的关系,总结2021年180道Android岗面试题
小爱是怎么诞生的呢?熟悉Activity启动流程的都知道,小爱的创建发生在performLaunchActivity中://ActivityThread.javaprivate Activity performLaunchActivity(ActivityClientRecord r, Intent customIntent) {//创建ContextImplContextImpl appContext = createBaseContextForActivity®;Activity activi
2022-03-02 18:56:31 331
原创 7年老Android收到阿里offer,跟领导提离职被怼:为年薪百万不做兄弟
我自己或许也算是个成功的例子,在4年的时间里从1-1做到了2-2,当然,这背后的“辛酸泪”就留到日后再说。总的来说,归功于自己不断地学习,复盘总结,提升技术!就快要到“金三银四”面试季了,给大家分享一份**《Android开发2020年度面试真题合集》**该面试宝典不仅收录了本人亲身面试遇到的问题,还收录了从一些朋友那里收集过来的问题。在以后的工作中本 人也会不断的更新和充实该面试宝典,当然也希望大家能够多多奉献比较优质的面试题。不仅展示了常见的面试问题以及回答技巧,还详细讲解了每一道题所包含的知识点
2022-03-02 18:52:16 391
原创 android 使用xstream解析xml,flutter跳转第三方应用
public List getLink() {return link;}public void setLink(List link) {this.link = link;}@XStreamAlias(“reported_devices”)public static class ReportedDevicesBean {@XStreamAlias(“reported_device”)private ReportedDeviceBean reported_device;public Repo
2022-03-01 20:07:23 331
原创 Android 仿知乎日报在切换Fragment页面,按back返回时,同步修改Toolbar的title
//Fragment的初始化mFm = getSupportFragmentManager();FragmentTransaction ft = mFm.beginTransaction();mCurrentFragment = mFm.findFragmentById(R.id.content_container);//如果为空 说明是初始化, 不为空说明可能是屏幕旋转等事件if (mCurrentFragment == null) {TipsUtils.LogI(TAG, " mCurren
2022-03-01 20:05:57 273
原创 android webView 的WebSettings说明,程序员的中年危机
是否允许访问文件,默认允许。注意,这里只是允许或禁止对文件系统的访问,Assets 和 resources 文件使用file:///android_asset和file:///android_res仍是可访问的。setAllowFileAccessFromFileURLs (boolean flag)是否允许运行在一个URL环境(the context of a file scheme URL)中的JavaScript访问来自其他URL环境的内容,为了保证安全,应该不允许。也请注意,这项设置只影响对
2022-03-01 20:04:32 450
原创 Android Webview upload 图片上传,移动智能终端开发报告
public static final int REQUEST_SELECT_FILE = 100;public final static int FILECHOOSER_RESULTCODE = 1;public ValueCallback<Uri[]> uploadMessage;public ValueCallback mUploadMessage;public ProgressBar mWebLoadingProgressBar;@SuppressLint(“NewApi”)
2022-03-01 20:03:07 296
原创 Android Studio项目用Git上传至码云(OSChina),可能是全网最细的Android-资源加载机制剖析
把Android Studio项目导入码云2.选择自己所创建的整个工程,点OK3.点过OK之后会发现,在Project下 部分文件变为红色4.点击Add5.目录下字体颜色变成绿色6.点击红色箭头指向的地方(可能会提示填写邮箱地址,即你注册OSChina填写的邮箱地址)7.main文件上的勾点掉,(部分情况名字不一样,位置一样),Message部分内容随便输入,然后点击Commit and Push8.接下来的提示窗口选择Commit9.点击Define remote
2022-03-01 20:00:17 301 1
原创 Android Studio自定义模板实现一键创建MVP结构,安卓rxjava获取网络时间
通过这种方式创建的 Activity 会自动在 AndroidManifest.xml 中完成注册,创建其他组件也可以通过这种方式。不过,如果你正在使用某种开发模式,譬如 MVP、MVVM 等,你每创建一个 Activity 就意味着需要同时创建一系列其他相关的类。为了避免这种毫无意义的重复性劳动,我们可以编写模板代码去实现一键创建重复代码。开始==下面我们就来开始模版的编写吧。首先,找到你的 Android Studio 的安装目录,然后根据这个目录找到 …\templates 目录:然后
2022-03-01 19:58:52 158
原创 Android Studio中的 Image Asset Studio(图标生成工具),kotlin常用高阶函数
Android Studio 包含一个名为 Image Asset Studio 的工具,它可以帮我们把自定义图像、系统图标素材、文本字符串自动生成适配系统的应用图标。它为你的应用程序支持的每个像素密度生成一组适当分辨率的图标。Image Asset Studio 将新生成的图标放置res/在项目目录下的特定文件夹中(例如 mipmap/ 或 drawable/)。在运行时,Android 根据运行应用的设备的屏幕密度使用适当的资源。Image Asset Studio 可帮助您生成以下图标类型:
2022-03-01 19:57:27 508
原创 Android Studio 的NotePad制作(日志本),android语言基础教程培训
builder.create().show();break;}case 2:{Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse(“smsto:”));if(!note.getNoteContent().equals(note.getNoteTitle())){intent.putExtra(“sms_body”,note.getNoteContent() + “\n” + note.getNoteTitle());}else
2022-03-01 19:56:02 338
原创 Android Studio aar包的使用,阿里架构师深入讲解Android开发
编译生成aar执行Build Project或者在右边的gradle栏中选中对应的library module然后执行对应的assemble命令即可。编译完成以后会在对应的module下面的/build/outputs/aar/下面生成aar包:如果你执行的是Build操作那可能生成的aar包只有debug包,如果你执行的是assemble操作,则对应目录下会生成debug和release包,其中release包也是可以配置混淆的(如果想要减少aar包的体积或者不想让别人看到源码)。使用aar包时
2022-03-01 19:54:37 812
原创 Android Studio 4,android移动开发项目化教程
新增了 viewBinding 指令,当我们开启设置为 true 的时候,编译器会为我们生成一个视图绑定类,即下图中的 ActivityMainBinding。viewBinding 的目的在于确保我们在代码中所使用的 View 是试图中确切存在的。防止使用findViewById 为空引起崩溃。(不过我在 4.0 canary 1 上面没有开启成功,应该是还有 bug )视图方面===========================================================.
2022-02-18 13:08:39 423
原创 Android Framework学习笔记(二)Zygote进程启动过程,万字总结
linux的根进程,android系统是基于linux系统的,因此可以算作是整个android操作系统的第一个进程;Zygote进程android系统的根进程,可以作用Zygote进程fork出SystemServer进程和各种应用进程;SystemService进程主要是在这个进程中启动系统的各项服务,比如ActivityManagerService,PackageManagerService,WindowManagerService服务等;各种应用进程启动自己编写的客户端应用时,一般都是重新
2022-02-18 13:00:09 367
原创 Android R DisplayManagerService模块(1) 启动,大专生三面蚂蚁金服
SystemServer中启动DMS后,并保留了DMS对象引用,因此除了执行正常启动方法之外,还进行了以下操作:// frameworks/base/services/java/com/android/server/SystemServer.javaprivate void startBootstrapServices() {…mDisplayManagerService.setupSchedulerPolicies();}private void startOtherServices() {
2022-02-17 18:11:15 301
原创 Android OpenGLES + Camera1 相机预览,android开发视频播放全屏选集
isCreate = true;}@Overridepublic void onChange(int width, int height) {if (isChange) {return;}onChangePre();setWidth(width);setHeight(height);onViewport();onInitFbo();onChangeAfter();isChange = true;}@Overridepublic void onDraw(int textureI
2022-02-17 18:08:25 1594
原创 Android MyCard支付,2018年安卓面试题
private class MyWebViewClient extends WebViewClient {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {if (url.startsWith(“http:”) || url.startsWith(“https:”)) {return false;} else {MLog.e(“shouldOverrideUrlLoading”);try {
2022-02-17 18:04:09 150
原创 android listview添加headview,2021年“金三银四”来袭
View headerView = getLayoutInflater().inflate(R.layout.listhead, null);Button btn = (Button) headerView.findViewById(R.id.button1);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Toast.makeText(MainActivity.thi..
2022-02-17 18:01:19 1675
原创 Android HTTP通信基础,安卓面试题2020对kotlin的要求
Host(发送请求时,该报头域是必需的):Host请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的。eg:我们在浏览器中输入:http://www.test.com/index.html。浏览器发送的请求消息中,就会包含Host请求报头域,如下:Host:www…test.com(使用缺省端口号80,若指定了端口号,则变成:Host:www…test.com:指定端口号)User-Agent:请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服
2022-02-17 17:59:54 2157
原创 Android Studio 配置Git,嵌入式应用开发工程师
点击test按钮如果出现 Git executed successfully 对话框说明配置成功,同时对话框会显示你安装的git版本号,如下图:四、点击按下图操作:点击“Generate…”在GitHub上输入自己的用户和密码点击“头像”——settings点击Developer settings点击Personal access tokens——Generate new token在“Note”上随便输入什么,最下面的点击“Generate token”复制这token.
2022-02-16 13:19:41 171
原创 Android ONE store支付,身为一个安卓程序员Context都没弄明白
4、实现应用内支付详情可通过VPN:https://dev.onestore.co.kr/devpoc/reference/view/IAP_v17_05_implementation_cn(已更新至v6版本文章最后有电梯)使用SDK实现应用内支付4-1、发起ONE store登录的请求调用 launchLoginFlowAsync,请求登录于ONE store。以参数传递的requestCode用于以后确认返回至onActivityResult的数据。/** PurchaseClient的
2022-02-16 13:16:51 473
原创 Android Okhttp3添加https自签名证书以及Glide4,成为一名合格Android架构师
二、自签名证书什么是自签名证书(self-signed certicates)?自签名证书就是没有通过受信任的证书颁发机构, 自己给自己颁发的证书.SSL 证书大致分三类:由安卓认可的证书颁发机构CA(Certificate Authority)(如: VeriSign、DigiCert), 或这些机构的下属机构颁发的证书.没有得到安卓认可的证书颁发机构颁发的证书.自己颁发的证书, 分临时性的(在开发阶段使用)或在发布的产品中永久性使用的两种.而只有An
2022-02-16 13:15:26 1751
原创 Activity快速转换为Diglog,搭建android开发环境实验报告
String pn = pinfo.get(i).packageName;if (pn.equals(“com.tencent.mobileqq”)) {return true;}}}}catch (Exception e){return false;}return false;}/**判断支付宝是否可用@param context@return*/public static boolean checkAliPayInstalled(Context conte
2022-02-15 12:59:20 1148
原创 @Android程序员:这-5-道刁钻的-Activity-生命周期面试题
mLayoutInflater.inflate(layoutResID, mContentParent);}然而这一步只是加载好了布局,生成一个 ViewTree , 具体怎么把 ViewTree 显示出来,答案就在下面:ActivityThread.javapublic void handleResumeActivity(…){// onResume 回调ActivityClientRecord r = performResumeActivity(…)final Activity a = r
2022-02-15 12:55:05 143
原创 Android Gallery2源码分析,安卓事件分发机制面试
为了给客户更好的用户体验,我们会先decode一张图片的thumbnail即缩略图, 当我们点击一张图片进来之后,我们首先看到的是这个图片的thumbnail,这样用户就知道图片有被显示但是,由于thumbnail的分辨率有限,贴到屏幕上之后就会比较模糊。这就是为什么一开始看到模糊的原因4. 这个时候,还是逃不掉decode整张图片的步骤,我们完全可以等整张图片decode完毕之后再更新到屏幕。但我们认为这种方式也不是太好,为什么不是decode出一部分就显示一部分呢?所以最终的方法是:我们将整
2022-02-06 12:43:15 275
原创 android ble 某些手机连接不上,又不知道什么原因,填坑吧
5… Read/Write Characteristic/Descriptor/RemoteRssi(),一般在不同的线程中回调。(除了onDescriptorWrite返回的线程与写入线程为同一个线程???)BluetoothDevice.conncectGatt(),BluetoothGatt.connect(),BluetoothGatt.disconnect(),BluetoothGatt.discoverServices()最好都在主线程,否则会遇到很多意想不到的麻烦。6… BLE的特
2022-02-06 12:40:25 1019
原创 Android Binder组合ContentProvider跨进程调用,html5移动端开发教程
接下来通过一个实例来看看怎么具体地借助 ContentProvider 和 Binder 来进行便捷的跨进程通信。Server进程服务端接口定义在服务端进程或者服务端 App 中,定义 AIDL 接口文件:interface IMyAidlInterface {int getCount();}make 之后实现接口:class CountServiceImpl : IMyAidlInterface.Stub() {override fun getCount(): Int {println
2022-02-06 12:39:00 2413
原创 Android AIDL 教程 (一)—,android开发模拟器推荐
服务端的实现服务端的实现,一般来说,需要以下步骤:将请求抽象成接口,并编写 aidl 文件;编写一个 Service,实现接口,处理客户端的请求,并将 binder 返回回去;在 AndroidManifet 配置 Service,将我们的 Service 暴露出去。将请求抽象成接口,编写 aidl 文件一般来说, AIDL 文件支持以下类型Java 编程语言中的所有原语类型(如 int、long、char、boolean 等等)StringCharSeque
2022-02-06 12:37:35 181
原创 Android 2020-2021年 最新面试题(附个人面试经历),Glide的缓存机制
4.Broadcast注册方式与区别(1)静态注册(minifest),(2)动态注册http://www.jianshu.com/p/ea5e233d9f43此处延伸:什么情况下用动态注册5.HttpClient与HttpUrlConnection的区别http://blog.csdn.net/guolin_blog/article/details/12452307此处延伸:Volley里用的哪种请求方式(2.3前HttpClient,2.3后HttpUrlConnection)6.http
2022-02-06 12:36:11 330
原创 Android 10(Q)_11(R) 分区存储适配,androidui图形化
需要申请READ_EXTERNAL_STORAGE 权限:通过 MediaStore API对所有的媒体集进行查询、修改、删除的操作。调用 Storage Access Framework API :会启动系统的文件选择器向用户申请操作指定的文件新的访问方式:Android 11 ®:Android 11 ® 在 Android 10 (Q) 中分区存储的基础上进行了调整1. 新增执行批量操作为实现各种设备之间的一致性并增加用户便利性,Android 11 向 MediaSt..
2022-02-06 12:34:46 166
原创 Android - MVC、MVP与MVVM架构,kotlin环境搭建
演示者(Presenter)演示者会根据模型和视图进行操作。 它从存储库(模型)检索数据,并将其格式化以显示在视图中。通常,视图实现实例化具体的Presenter对象,并为其提供引用。2.项目Github地址。https://github.com/mythmayor/MvpArchitecture三、MVVM1.MVVM(Model-View-ViewModel)介绍。MVVM即为模型-视图-视图模型,是一种软件架构模式,可促进将图形用户界面(视图)的开发(通过标记语言或GUI代码)与业务逻
2022-02-06 12:33:21 2592
原创 Andorid 开发艺术探索笔记(3),面试题解析已整理成文档
有两个部分组成,mimeType和URI。mimeType是指媒体类型,比如image/jepg等的图片,音频,视频等,媒体格式。而URI中包含的数据就比较多了,下面是其格式Scheme:URI模式,比如http、file、content等,如果没有指定Scheme,那么整个URI无效。Host:URI的主机名,比如www.baidu.com,如果没有指定host,则整个URI无效。Port:URI的端口号,比如80,仅当scheme和host指定了才有效Path、PathPrefix、PathP
2022-02-06 12:31:56 86
原创 Andorid 开发艺术探索笔记(2),高级UI都没弄明白凭什么拿高薪
(以上均在singTask模式下进行)singleInstance:单实例模式。是一种加强的singleTask模式,所以它具有singleTask模式的功能,还加强了一点,就是此种模式的Activity只能单独的位于一个任务栈。Activity A这种模式下只能单独的位于栈S1中,Activity B只能单独的位于栈S2中。<关于TaskAffinity>它标志了一个Activity所需要任务栈的名字。默认情况下都是Activity应用的包名。所以它和singleTask配对使用。
2022-02-06 12:30:31 112
原创 Android TCP传输自定义格式数据帧,【性能优化实战】
使用地址和端口登录到服务器:InetAddress address = InetAddress.getByName(Constant.Server.NAME);socket = new Socket(address, Constant.Server.PORT);常用的数据类型转换:1.int > byte[]public static byte[] intToBytes(int value, ByteOrder mode) {byte[] src = new byte[4];if(mod
2022-02-05 10:10:57 266
原创 Android Studio记录在使用过程遇到的各种问题及解决,安卓手机内存优化
}(2) apt插件问题: android-apt plugin is incompatible with the Android Gradle plugin.Please use 'annotationProcessor'解决方法:在project的build.gradle中删除classpath ‘com.neenbedankt.gradle.plugins:android-apt:x.x’classpath ‘me.tatarka:gradle-retrolambda:x.x.x’在mod
2022-02-05 10:09:33 331
原创 Android studio权限使用相关相关,BAT等大厂必问技术面试题
package com.ldw.test;import androidx.appcompat.app.AppCompatActivity;import androidx.core.app.ActivityCompat;import android.Manifest;import android.app.Activity;import android.content.Intent;import android.content.pm.PackageManager;import android.ne
2022-02-05 10:06:42 970
原创 Android Studio之Gradle多渠道打包,android面试2020
友盟多渠道打包===========废话不多说,以友盟统计为例,在AndroidManifest.xml里面会有这么一段:<meta-dataandroid:name=“UMENG_CHANNEL”android:value=“Channel_ID” />里面的 Channel_ID 就是渠道标示。我们的目标就是在编译的时候这个值能够自动变化。第一步 在 AndroidManifest.xml 里配置 PlaceHolder<meta-data
2022-02-05 10:05:17 438
原创 Android R WindowManagerService模块(1) WMS整体架构及启动过程
DisplayArea是Android R上新添加的容器,目的就是将复杂的窗口层级管理简单化、低耦合。而在树结构中,各个容器结构如下:可以看到,在树结构中,根节点为RootWindowContainer,叶子节点为WindowState。 正是通过这种结构,WMS中将系统中所有的窗口显示管理得井井有条,并将所有窗口以Surface的形式送到SurfacaFlinger中进行合成和显示。2.WMS启动流程接下来我们看下WMS的启动过程。WindowManagerService没有继承与Syste.
2022-02-05 10:02:27 1907
原创 Android PackageInstaller:安装应用的应用,android综合面试
mAppInfo = null;}} catch (NameNotFoundException e) {mAppInfo = null;}mInstallFlowAnalytics.setReplace(mAppInfo != null);mInstallFlowAnalytics.setSystemApp((mAppInfo != null) && ((mAppInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0));star
2022-02-05 10:01:02 556
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人