自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

汤坤

微笑人生~

  • 博客(75)
  • 收藏
  • 关注

原创 1. 泛型

【代码】1. 泛型。

2023-05-12 17:59:38 1737

原创 四. AMS源码分析

AMS类中包含一个管理进程的变量mProcessList,ProcessList是用来管理手机中所有的App进程的,每一个App进程就是一个ProcessRecord,而ProcessRecord中包含一个变量(IApplicationThread)thread,IApplicationThread相当于是一个Server端的IBinder对象,我们将这个IBinder对象注册到AMS中去;)即可与App进程实现跨进程通信,从而实现AMS对每一个App进程的管理.个进程,不同的进程进间采取了。

2023-05-12 17:55:31 1768

原创 三.Android系统的启动流程

扩展:Android.mk(旧)->Android.bp(新) 脚本文案,用于代码编译;启动init进程的init文件,也就是手机系统system/bin/init文件,是通过Android.bp编译init/main.cpp文件生成的,所以我们可以通过init/main.cpp文件去研究init进程的启动流程.首先,init进程是由idle进程启动的,而idle进程是属于kernel层的,所以我们从kernel层去寻找启动init进程的地方.),通过执行这个命令就会去启动zygote进程;

2023-05-12 12:20:54 1258

原创 二.Binder原理分析

在android中我们所使用的Activity、Service等组件都需要和AMS(SystemServer进程)通信,这种跨进程的通信都是通过Binder完成.Binder驱动是在Zygote进程创建后创建的,每一个进程创建的同时都会创建Binder驱动,用于与别的进程实现跨进程通信.虚拟机分配给每个进程的资源是有限的,LMK(Low Memory Killer)优先回收系统资源占用多的进程.ServiceManager是一个Native层的进程,由init进程创建,早于zygote进程启动.

2023-05-12 11:55:15 378

原创 一.Handler消息机制原理分析

注意:在View绘制流程中,也就是ViewRootImpl的scheduleTraversals()方法中,会先发送屏障消息,然后发送异步消息,这两条消息获取的时间是当前时间戳,所以在添加到消息队列中,屏障消息先添加,会插入到消息队列的头部;处理,这样处理的目的是为了保证添加消息和取消息的互斥性,保证了添加消息和取消息不能同时进行;从消息队列中取消息过程中,消息队列中没有消息时,从消息队列中取消息的过程就会进入到休眠状态.方法不停轮询消息时,从消息队列中取出消息在处理完后,会将这个消息中的数据清空。

2023-05-12 11:32:06 1638

原创 Android studio中快速查看代码所在的方法和类

即可在代码编辑区域底部展示光标所在代码执行的类和方法层级结构.

2023-04-08 18:12:39 1285

原创 Java中>>和>>>的区别?

易混淆Java语法

2023-02-18 16:08:52 192

原创 Harmony mac在DevEco-Studio终端中输入hdc shell命令报错,找不到文件或路径处理方式

鸿蒙Harmony开发环境终端Terminal中输入命令hdc shell,报错文件或者路径找不到问题,zsh: no such file or directory: ./hdc

2022-08-04 16:28:22 4824

原创 Mac HarmonyOS Failure[INSTALL_PARSE_FAILED_USESDK_ERROR]

鸿蒙开发中碰到的问题:Mac HarmonyOS Failure[INSTALL_PARSE_FAILED_USESDK_ERROR]

2022-07-26 14:51:38 3948 1

原创 执行./gradlew命令,提示No such file or directory解决方案

在mac电脑的Android studio中执行如下命令时候(windows系统AS上去掉./即可),有时候会提示找不到路径,./gradlew: No such file or directory,大部分原因是由于没有配置gradle环境变量导致,按照网上说的配置完成环境变量之后即可执行如下命令:./gradlew processDebugManifest --stacktrace./...

2019-12-12 15:59:20 16126

原创 Android上使用阿里路由Arouter启动的Activity页面,该Activity页面启动模式未生效

重现场景A页面启动B页面,B页面在AndroidManefest.xml中设置启动模式为SingleTop,此时在A页面中通过Arouter重复启动B页面,此时会启动多个B页面,而不是只启动一次B页面;如果不使用Arouter,而使用startActivity这种方式则只会启动一次B页面,而不会启动多个.解决方式此时的Activity启动启动模式需要放在路由跳转中去才回生效,代码如...

2019-08-20 15:43:54 3753 1

原创 Charles抓Android手机https链接包注意事项(Ps:特别是乱码问题)

Charles和手机的一些基础配置help–>SSL Proxying–> Install Charles Root Ceriticate,找到Charles Proxy CA(xxx)——>打开——>选择信任——>始终信任help–>SSL Proxying–> Install Charles Root Ceriticate on a Mobile...

2019-06-21 11:37:53 1632

原创 SDK版本对应Level,Android不同mipmap如何放对应应用图标大小分辨率图标,libs下.so包文件夹目录介绍

平台版本 targetSdkVersion 版本名称(甜点)10.0 Q9.0 Pie (Android P)8.1 27 ...

2019-04-18 10:18:24 1033

原创 mac android studio运行提示Manifest merger failed with multiple errors, see logs

mac电脑android studio应该在Terminal输入如下命令(记住mac系统需要在最前面加"./",windows系统的Android studio不用加"./",被这个问题折磨两次了,之前处理过,后面又处理过一次,关键是第一次处理了后还记录过都忘记了,所以在博客中记录一下):./gradlew processDebugManifest --stacktrace然后在Termin...

2019-03-18 14:27:40 869

原创 Android studio底部Logcat模块不见了以及Locat日志中包含了很多无用的错误日志筛选方法

1.底部显示日志模块Logcat不见了,如何显示出来?依次点击顶部View —— Tool Windows—— Logcat底部就显示出来Logcat模块了2.app报错,底部日志老是显示很多无关报错日志,导致筛选出来我们自己的报错日志很麻烦,或者使用show only selected application也无法显示,或者报错日志随着app奔溃一闪而过,应该如何处理?点击底部...

2019-03-04 17:42:40 17923

原创 android studio快捷键(Eclipse模式下的,android studio模式不知道通用否)

感觉自己记性不如以前了,很多东西用完了也就忘完了,特此记录一些容易忘记的快捷键,长期更新。android studio快捷键(Eclipse模式下的,android studio模式不知道通用否)1.for循环快捷键:输入fori按enter或者tab就行了,如果要带变量,比如aaaList,就用aaaList.fori然后按enter或者tab就可以了。

2017-07-20 18:51:27 419

原创 Git在Android Studio上的使用

1.Android studio关联git参考博客:http://blog.csdn.net/gao_chun/article/details/498172672.从git上拉取代码(启动android studio时)3.切换分支或master   4.测试在AS中利用Git插件提交并推送代码,Ps:现在是测试在远程分支上提交

2017-03-17 17:23:54 8804

原创 cmd命令安装和卸载android手机apk

1.卸载手机引用win+R→cmd→输入以下命令adb uninstall 包名(如:cn.com.wishcloud.edu.parent510001)2.安装apk:win+R→cmd→输入以下命令adb install 把电脑上你的应用拖到这里来日记说说事情的经过吧,首先是很感谢爱哥(csdn:AigeStudio),感谢他

2016-09-09 11:41:23 14330

原创 Android不同drawable目录下对应图片分辨率

不同drawable目录下对应图片分辨率:drawable-ldpi:240x320(低分辨率的图片)drawable-mdpi:320x480(中等分辨率的图片)drawable-hdpi:480x800、480x854(高分辨率的图片)drawable-xhdpi:至少960*720(高分辨率的图片)drawable-xxhdpi:1280×720(

2016-08-08 10:42:40 4321

原创 常用的一些东西(方便查阅)

1.加粗(xml文件里):android:textStyle="bold"

2016-07-04 16:56:28 610

转载 Android项目重构之路:实现篇

前两篇文章Android项目重构之路:架构篇和Android项目重构之路:界面篇已经讲了我的项目开始搭建时的架构设计和界面设计,这篇就讲讲具体怎么实现的,以实现最小化可用产品(MVP)的目标,用最简单的方式来搭建架构和实现代码。IDE采用Android Studio,Demo实现的功能为用户注册、登录和展示一个券列表,数据采用我们现有项目的测试数据,接口也是我们项目中的测试接口。项

2016-05-13 16:03:50 1085

转载 Android项目重构之路:界面篇

在前一篇文章《Android项目重构之路:架构篇》中已经简单说明了项目的架构,将项目分为了四个层级:模型层、接口层、核心层、界面层。其中,最上层的界面,是变化最频繁的一个层面,也是最复杂最容易出问题的一个层面,如果规划不好,很容易做着做着,又乱成一团了。要规划好界面层,至少应该遵循几条基本的原则:保持规范性:定义好开发规范,包括书写规范、命名规范、注释规范等,并按照规范严格执行;保持单

2016-05-13 15:38:05 625

转载 Android项目重构之路:架构篇

去年10月底换到了新公司,做移动研发组的负责人,刚开始接手android项目时,发现该项目真的是一团糟。首先是其架构,是按功能模块进行划分的,本来按模块划分也挺好的,可是,他却分得太细,总共分为了17个模块,而好几个模块也就只有两三个类而已。但应用本身其实比较简单,要按功能模块来分的话,最多五个模块就够了。另外,有好多模块划分也很模糊,也有很多类按其功能其实可以属于多个模块的,也有些类定义不明确,

2016-05-13 15:24:56 468

原创 朋友说这些都是干货,快收藏起来吧,嘿嘿!

干货地址

2016-05-13 11:59:58 475

转载 Android 错误提示:Conversion to Dalvik format failed with error 1 解决办法

Android出现“Conversion to Dalvik format failed with error 1”的几种情况及解决办法: 原因一:由于引用的Jars不正确导致的1、右键项目 -> Properties -> Java Build Path -> Libraries -> 移除所有Jar文件,然后点确定2、右键项目 -> Fix Project Pr

2016-05-13 11:51:29 705

原创 解决Eclipse打开图片乱码问题

Eclipse环境下Window→Preferences→File Associations 1.File type中点击Add添加   *.jpg和*.png2.Associated editors中点击Add添加 PhotoViewer.FileAssoc.Tiff

2016-05-12 17:00:39 3343

原创 之前同时从git上拉下来的Android Studio代码无法运行

1.可能是由于sdk版本不对导致的,可能是由于我提交到Git的Android studio代码里的那个sdk同时Android  studio里没有这个sdk;此时可以选择File→Project Structure→SDK Location,看右边的Android SDK location里的sdk路径,拷贝到文件浏览器中去,查看这个目录下的platforms目录下有没有需要的那个sdk版本

2016-05-11 14:11:57 4134

转载 实现简易秒表功能

今天为了给师弟们讲安卓,花了10分钟写了一个简易的秒表app,现贴出代码,供各位刚入门以及还未入门的同胞们参考第一步:布局activity_main.xml:[html] view plain copy RelativeLayout xmlns:android="http://schemas.android.com/apk/res/a

2016-04-29 14:37:10 2797

原创 Eclipse中引用了lint工具,打包时报错

Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead出现该问题原因:由于Eclipse中引入了lint优化工具,在打包的时候报了这个错。解决方案:使用Window→PreferencesAndroi

2016-04-21 16:35:47 1384

原创 [ddmlib] 您的主机中的软件中止了一个已建立的连接。 java.io.IOException: 您的主机中的软件中止了一个已建立的连接。

今天想通过断点调试,却找不到那个应用的包名了,变成了问号,后来才发现这是由于同时开着Eclipse和Android Studio导致的,关掉Android Studio问题就解决了。

2016-04-18 15:18:31 5849

原创 公司Git使用方式

(不一定是最合理的git使用方式)先从Git master拉下来代码,然后创建自己的dev分支;然后大家开发都是在自己的不同的dev上面去做开发,而不是在同一个dev上去开发;接下来当自己完成部分功能要提交到远程时执行的步骤:1、先将自己的工作内容commit到自己的dev分支上去;2、然后切换到master分支上去(Team→switch to→master);3、然后合

2016-03-31 16:44:50 6860 2

原创 git基础命令案例

克隆:git clone ssh://tangkun@192.168.253.241:29418/education_android.git进入项目master目录:cd education_android创建分支:git branch dev切换分支:git checkout dev添加:git add --all提

2016-03-16 17:05:14 585

原创 git强制添加(add)文件

有时候在使用git  add命令时候会出现如下问题:如:git add SharedActivity.java  出现了如下问题The following paths are ignored by one of your .gitignore files:Use -f if you really want to add them.fatal: no files added

2016-03-16 16:52:51 20536

原创 在Eclipse中设置自动生成注释

windows-->preferenceJava-->Code Style-->Code Templatescode-->Files-->Edit-->Pattern/** * @ClassName:     ${file_name} * @Description:   ${todo}(用一句话描述该文件做什么)  * @author         TangKun(这里改

2016-03-15 09:59:47 440

转载 转自“展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告”

展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得没道理的,你就抛弃,以下是我发自内心的,给大家的忠告,特别是针对那些小弟弟妹妹们。01. 自己的户口档案、养老保险

2015-10-15 15:52:30 613

空空如也

空空如也

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

TA关注的人

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