自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android OpenCV(三十六),移动应用开发课程设计报告

轮廓面积和轮廓周长都是轮廓的重要统计特征。轮廓面积是指每个轮廓中所有像素点围成区域的面积,单位为像素。轮廓周长是指每个轮廓中所有像素点围成区域的周长,单位同样为像素。通过分析轮廓面积和轮廓周长,我们可以区分物体的大小,识别物体的不同,同时还能分析出一些其他内容,例如,正方形区域的周长和面积是有固定关系的,圆形区域的周长和面积是有固定关系的。通过计算轮廓面积和周长,再结合这些固定关系,我们是可以得到一些结论的。API轮廓面积public static double contourArea(Mat con

2021-12-30 11:51:16 655

原创 Android Native Crash 收集,谷歌flutter应用

第二个参数 sigaction 结构体指针,用于声明当某个特定信号发生的时候,应该如何处理。第三个参数也是 sigaction 结构体指针,他表示的是默认处理方式,当我们自定义了信号量处理的时候,用他存储之前默认的处理方式。这也是指针与引用的区别,指针操作操作的都是变量本身,所以给新指针赋值了以后,需要另一个指针来记录封装了默认处理方式的变量在内存中的位置。所以,要订阅异常发生的信号,最简单的做法就是直接用一个循环遍历所有要订阅的信号,对每个信号调用sigaction()void init() {

2021-12-30 11:50:21 319 2

原创 android mmap的使用,ndk开发教程

static char CLASS_NAME[] = “com/sailor/ShareMem”;static shared_use_st *use_st = NULL;static jint throwException(JNIEnv* env, jobject clazz, const char *clsname, const char *msg){jclass cls;cls = ( *env)->FindClass(env, clsname);if(cls == NULL){re

2021-12-30 11:49:25 359

原创 Android mk 引用 jar 包、so 库、aar 包,移动互联网app开发实例

第一种方法,指定 LOCAL_MODULE_PATH ,在上面的讲解中,我们已经知道 $(TARGET_OUT) 代表 /system,那么生成的 apk 想放到 system/priv-app,我们可以这样配置。LOCAL_MODULE_PATH := $(TARGET_OUT)/priv-app第二种方法,我们也可以直接这样配置,这样生成的 apk 也会放到 system/priv-appLOCAL_PRIVILEGED_MODULE := true假如我们想让我们生成的 apk 放到 data

2021-12-30 11:48:30 1715

原创 Android Gson使用详解,android开发基础书

Gson 的 GitHub 主页点击这里:Gson一、Gson的基本用法1.1、Gson对象在进行序列化与反序列操作前,需要先实例化一个 com .google.gson.Gson 对象,获取 Gson 对象的方法有两种//通过构造函数来获取Gson gson = new Gson();//通过 GsonBuilder 来获取,可以进行多项特殊配置Gson gson = new GsonBuilder().create();1.2、生成 Json利用 Gson 可以很方便地生成 Json

2021-12-30 11:44:49 196

原创 Android Framework原理,android快速开发模板

这个入口的函数是start_kernel函数start_kernel函数执行到最后调用了reset_init函数进行后续的初始化start_kernel最终启动用户空间的init程序启动Android当初始化内核之后,init进程负责解析init.rc配置文件, 就会启动一个相当重要的祖先进程,也就是init进程,在Linux中所有的进程都是由init进程直接或间接fork出来的/system/bin/app_process_Zygote服务启动的进程名–start-system-ser

2021-12-29 12:46:33 104

原创 Android Dialer,Mms,Android开发指南

long contactId = Long.parseLong(str);//Toast.makeText(this, “contactId:”+contactId, 2).show();Intent intent = new Intent(Intent.ACTION_EDIT);intent.setData(ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,contactId));startActivity(inten

2021-12-29 12:45:34 1370

原创 Android Dialer,Mms(1),高并发系统基础篇

33.使用ComponentName启动另一个应用的Activity时出现java.lang.SecurityException: Permission Denial的解决方案:原因分析:在SDK版本eclair中(Level 5-7?),如果activity没有设定intent-filter则无法被外部程序启动!解决办法:给对应的activity添加intent-filter字段,且必须带上action,即使为空也行:总结到这里的时候,由于另外两个同事有其他的事情要忙,我接手了联系人模块和

2021-12-29 12:44:11 2578

原创 Android Camera2 API,flutter热更新方案

0、相关文章:1、简介2、Camera2 中主要的API类2.1、CameraManager类2.2、CameraCharacteristics类2.2.1、LENS_FACING:获取摄像头方向2.2.2、SCALER_STREAM_CONFIGURATION_MAP:2.2.3、SENSOR_ORIENTATION2.2.4、FLASH_INFO_AVAILABLE2.2.5、SCALER_AVAILABLE_MAX_DIGITAL_ZOOM2.2.6、LENS_INFO_MINIM

2021-12-29 12:43:10 187

原创 Android ANR日志分析指南,android模拟器中文输入法

一、 查看events_log查看mobilelog文件夹下的events_log,从日志中搜索关键字:am_anr,找到出现ANR的时间点、进程PID、ANR类型。如日志:07-20 15:36:36.472 1000 1520 1597 I am_anr : [0,1480,com.xxxx.moblie,952680005,Input dispatching timed out (AppWindowToken{da8f666 token=Token{5501f51 ActivityRec

2021-12-29 12:41:59 521

原创 Android 9,三年经验月薪50k我是怎么做到的

java.net.UnknownServiceException: CLEARTEXT communication to xxxx not permitted by network security policy解决方法是需要我们添加网络安全配置。首先在 res 目录下新建xml文件夹,添加`network_security_co《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

2021-12-29 12:40:52 885

原创 Android 3年外包工面试笔记,有机会还是要去大厂学习提升

基础方面Android四大组件一一介绍activity 生命周期以及每个周期的使用场景service的起动方式以及区别和各自的使用场景broadcast注册方式及为什么会有这两种方式各自存在的意义及使用场景是什么contentprovider理解,能做什么。项目方面2D绘图原理(这个是个人项目里使用的 )自定义View过程(当场给一个需求,说出实现过程)蓝牙通讯 解码包分包机制(传输数据过大)如何处理的第二面第二次面试就比较简单了,面试官就是和你

2021-12-29 12:38:22 72

原创 Andoird中LiveEventBus的使用—,androidwebview增强

3、autoClear配置在没有Observer关联的时候是否自动清除LiveEvent以释放内存(默认值false)*/LiveEventBus.config().supportBroadcast(this).lifecycleObserverAlwaysActive(true).autoClear(false);二、使用方法1、发送消息在需要发送消息的地方1)、//发送一条即时消息LiveEventBus.get(“key”).post(“value”);2)..

2021-12-29 12:36:17 470

原创 Android 118道基础面试题,面试途中不卡题,写给正在求职的Android开发

19、activity的startActivity和context的startActivity区别?20、怎么在Service中创建Dialog对话框?21、Asset目录与res目录的区别?22、Android怎么加速启动Activity?23、Handler机制24、程序A能否接收到程序B的广播?25、数据加载更多涉及到分页,你是怎么实现的?26、通过google提供的Gson解析json时,定义JavaBean的规则是什么?27、json解析方式的两种区别?28、线程池的相关知识。

2021-12-28 11:20:29 423 1

原创 A020-列表容器之ListView,Github标星5.3K

layout/layout_list_item.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”android:layout_width=“match_parent”android:layout_height=“match_parent”<ImageViewandroid:id="@+id/

2021-12-28 11:13:17 120

原创 android -- NDK 编译环境搭建,看完直接跪服

四、使用 ecclipse 编辑代码与编译1、设定字体及颜色:windows->Prefrence点击Genral->Appearance->Colors and Fonts2、导入工程代码1.File->new->other…->Android->Android Project,next2.可选择新建,也可以选择create project from existing example3.选择后者,选择build target为Android 2.34.

2021-12-27 10:59:59 505

原创 Android - 定位方式,火星坐标系统,一键锁屏,嵌入式android开发

PointDouble result = mo.s2c(new PointDouble(113.9083f, 22.5854f));5.获取手机位置功能所需知识点1.获取手机经纬度2.转化为火星坐标3.由于获取经纬度是耗时任务,在Service中来获取6.在服务中停掉自己1.调用stopSelf()方法7.创建设备管理员的步骤1.新建一个类,继承DeviceAdminReceiverpublic class MyAdmin extends DeviceAdminReceiver {}2

2021-12-27 10:57:36 265

原创 Android Path菜单的简单实现,掌握这6大技能体系

</declare-styleable></resources>第三步:新建一个PathMenuView.java这个就是我们自定义的Path菜单控件,代码如下:[java]  view plain copypackage com.tutor.path;import android.content.Context;import android.content.res.TypedArray;import&..

2021-12-27 10:56:25 256

原创 Andorid性能优化之traceview的使用(不懂揍我),互联网寒冬公司倒闭后

步骤1: 比如我们知道在点击一个按钮的时候,会有卡顿,那么就可以用//可以用以下代码测试你的代码。//开始埋点,“app”是最后生成的性能分析文件Debug.startMethodTracing(“App”);//埋点结束,期间start 到 stop 之间的代码,就是你要测试的代码范围Debug.stopMethodTracing();步骤2: 运行完测试代码后,我们点开studio右下角的Device Explorer,在下图的“第一步”,打开之后我们要找到我们生成的trace文件,路径在s

2021-12-27 10:53:49 94

原创 AIDL入门学习二,android组件化

public Person(String name, int age) {this.name = name;this.age = age;}protected Person(Parcel in) {name = in.readString();age = in.readInt();}public static final Creator CREATOR = new Creator() {@Overridepublic Person createFromParcel(Parcel in)

2021-12-27 10:52:44 339

原创 Activity布局流程+资源加载过程+插件化换肤思路,android开发文档规范

1.1 generateDecor里就是直接return了new DecorViewonResourcesLoaded加载资源3.1 onResourcesLoaded()方法里,其实调用了inflater.inflate()来生成View,然后addView添加到父布局下面mLayoutInflater.inflate() - LayoutInflater.javaLayoutInflater.inflate()就是用来加载xml的View inflate(XmlPullPa.

2021-12-27 10:51:40 269

原创 Activity 的启动模式,Android内存泄漏总结

bind.btnStartSingleInstanceActivity.setOnClickListener {startActivity(SingleInstanceActivity::class.java)}log(“onCreate”)}override fun onNewIntent(intent: Intent?) {super.onNewIntent(intent)log(“onNewIntent”)}override fun onDestroy() {super.onDes

2021-12-27 10:50:39 437

原创 Android AsyncTask原理解析,Android最新大厂面试真题总结

可以看出,FutureTask是实现了RunnableFuture接口,而这个接口继承了Runnable、以及Future。通过上面两个类,发现其实FutureTask中的get方法实现了Runnable的阻塞和返回执行完毕的数据(泛型V)。我们再来看FutureTask的run方法,豁然开朗,原来WorkerRunnable中的回调方法call果然是在这里调用的。结论:WorkerRunnable中的回调方法call()是在执行FutureTask的run方法后回调的。当WorkerRunna

2021-12-26 11:50:12 611

原创 Android Architecture Components ——LiveData使用,Android面试题整理

public MutableLiveData getLiveData() {if (mLiveData == null) {mLiveData = new MutableLiveData<>();}return mLiveData;}public void onNormalSetUse() {getLiveData().setValue(“hahahhahaha===>set”);}public void onNormalPostUse() {new Thread(ne

2021-12-26 11:48:46 130

原创 Android AIDL 教程 (一)—,android基础面试题

有人可能会这样想,既然 inout 表示客户端和服务端都可以修改该类型,那我们平时在写 aidl 文件的时候,直接在方法参数前面加上 inout 修饰就 OK了,省得去区分。这样做法当然不行,既然双方都可以修改,那系统的开销肯定会比较大。就好比管道一样。说了这么多,接下来让我们一起来看一下例子 IEasyService.aidlpackage xj.musicserver.easy;// Declare any non-default types here with import statement

2021-12-26 11:45:56 1255

原创 Android 9(1),android实战mysql

SlicesSlices 能够有效帮助用户节省操作时间,不需要通过全屏体验就能够使用应用的部分功能。借助配套的 UI 模板,Slices 能够将应用内容以高动态、富交互的形式插入到多个使用场景中,比如 Google Search 和 Assistant。请进一步了解如何在应用中构建 Slices。>> 构建 Sliceshttps://developer.android.google.cn/guide/slices/App ActionsApp Actions 是一种全新.

2021-12-26 11:41:40 173

原创 Android - 在线浏览源码,电话短信相关,文本变化监听器

unregisterReceiver(receiver);receiver = null;5.导入已存在的数据库//assert资产目录里面的文件会原封不动的打包到apk里,不生成id/**拷贝归属地的数据库*/private void copyAddressDB() {File file = new File(getFilesDir(), “address.db”);//判断数据库文件是否存在if (file.exists() && file.length() &g

2021-12-26 11:37:24 68

原创 Android ORM 框架 GreenDao 使用详解,快手安卓面试题

greenDAO 的引入非常简单,我们只要按照 github 文档 上去做就可以了,具体如下所示:5.1.2、创建实体类@Entitypublic class GoodsModel implements Parcelable {@Id(autoincrement = true)private Long id;@Index(unique = true)private Integer goodsId;private String name;private String icon;priva

2021-12-25 11:29:16 121

原创 Android OpenCV(四十二),精通android游戏开发

参数二:markers,输入/输出32位单通道图像的标记结果。必须与image大小相同。 在将图像传递给第二个参数之前,必须使用大于0的整数索引在图像中粗略标记出所需分割的区域。 因此,每个标记区域表示一个或多个连接分量,像素值分别用1、2、3等来表示。 我们可以通过使用findContours和drawContours从二值掩码中检索此类标记。 标记是图像处理过程中的“种子”。标记图像中所有没有被标记的像素值为0。在输出图像中,两个区域之间的分割线用-1表示。操作/**图像分割–分水岭法au.

2021-12-25 11:27:58 3124

原创 Android Module依赖关系的可视化实现,kotlin标准库

该两个方法中都有Context对应的上下文,在构造函数中惊奇的发现Project这个属性。open class Context(main: Project?,project: Project?,val file: File,private var contents: CharSequence? = null)是不是感觉和gradle中的project很像?通过debug发现,该project确实包含了build.gradle中的depedency信息,那么基于Lint方案的思路就肯定可以落地了

2021-12-25 11:25:48 154

原创 Android lifecycle 使用详解,2021年百度Android面试真题

class MyActivity extends AppCompatActivity {private MyPresenter presenter;public void onCreate(…) {presenter= new MyPresenter ();presenter.create();}public void onDestroy() {super.onDestroy();presenter.destory();}}当然我们也可以定义一些 IBasePresenter 的接口,

2021-12-25 11:24:41 310

原创 Android JetPack架构——结合记事本Demo一篇打通对Sqlite的增删改查结合常用jetpack架构应用

static class DeleteAsyncTask extends AsyncTask<Note, Void, Void>{private NoteDao noteDao;DeleteAsyncTask(NoteDao noteDao) {this.noteDao = noteDao;}@Overrideprotected Void doInBackground(Note… notes) {noteDao.deleteNotes(notes);return null;}

2021-12-25 11:23:23 690

原创 Android Hook 机制之简单实战,kotlin编程实战

第一步:获取 ListenerInfo 对象从 View 的源代码,我们可以知道我们可以通过 getListenerInfo 方法获取,于是,我们利用反射得到 ListenerInfo 对象第二步:获取原始的 OnClickListener事件方法从上面的分析,我们知道 OnClickListener 事件被保存在 ListenerInfo 里面,同理我们利用反射获取第三步:偷梁换柱,用 Hook代理类 替换原始的 OnClickListenerpublic static void h.

2021-12-25 11:21:06 436

原创 Android ConstraintLayout 约束布局,移动端h5开发调试

app:layout_constraintRight_toLeftOf="parent垂直居中app:layout_constraintTop_toBottompOf=“parent”app:layout_constraintBottom_toTopOf=“parent”例子:水平垂直居中:<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:androi

2021-12-25 11:20:07 201

原创 Android 9,idea开发工具

StorageManager storageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE);try {Method method_volumeList = StorageManager.class.getMethod(“getVolumeList”);method_volumeList.setAccessible(true);Object[] volumeList = (Object[]) me

2021-12-24 11:28:38 106

原创 Android 12 启动画面-SplashScreen,android组件化开发依赖

???? 设置图标的背景颜色设置了紫色的图标背景颜色。如果图标背景不透明,会被遮挡效果无法看出。效果图:代码如下:???? 画面底部的图片(尺寸比例需要为 2.5:1《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享,谷歌不推荐用)效果图:这里使用的尺寸是500:200。代码如下:???? 最终效果效果:代码如下:???? 让其在屏幕上显示

2021-12-24 11:25:07 1008

原创 Android 10手势导航的侧滑返回效果优化策略,中高级工程师Android开发

国内各大厂商也都对此做了优化,那么我们也来优化一下吧,效果如下:![](https://img-blog.csdnimg.cn/img_convert/934《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享200a5fef0109f149de66605c7b613.gif)1,找到地方说的够通俗易懂了吧,要改它,就要先找到它在哪里实现的。说实话这个还真不好找,网上有说:

2021-12-24 11:23:55 229

原创 AGP 升级问题续集来了,不看血亏,真是骚,在线app开发平台

public final class R {private R() {}//来自子模块cn.yan.libr.R$id.class下的属性public static final class id {public static final int test_layout = 2130837504;private id() {}}…//主module和子module的各自属性合并public static final class string {public static final i

2021-12-24 11:22:48 815

原创 Activity页面的绘制流程,android开发框架控件主题

View decor = r.window.getDecorView();decor.setVisibility(View.INVISIBLE);2.获取WindowManagerImpl对象ViewManager wm = a.getWindowManager();WindowManager.LayoutParams l = r.window.getAttributes();a.mDecor = decor;l.type = WindowManager.LayoutParams.TYPE_BA

2021-12-24 11:21:30 309

原创 Activity详解与实现,超全Android中高级面试复习大纲

三、Activity生命周期1、Activity生命周期运行过程2、Activity生命周期中方法调用四、Activity的跳转和数据传递1、显式跳转和隐式跳转1.1 显式跳转1.2 隐式跳转2、Activity之间的数据传递五、Activity启动模式1、standard:2、singleTop3、singleTask4、singleInstance一、Activity介绍=================..

2021-12-24 11:20:21 297

空空如也

空空如也

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

TA关注的人

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