- 博客(118)
- 资源 (13)
- 收藏
- 关注
原创 Android组件化架构学习笔记——组件化分发1
一.Activity分发:在Android开发中,Activity是Android的四大组件之一,作为页面呈现容器,起到与用户交互的关键功能。一个Activity可以看作一个独立的容器,可以容纳非常多的业务。Activity的生命周期:onCreate():在创建启动时调用; onStart():处于可见状态时调用; onResume():Activity显示在UI顶层时被调用;...
2019-09-28 11:31:32 410 1
原创 Android组件化架构学习笔记——组件化编译
Gradle本质上是一个Android Studio的自动化编译工具,每个module中的Project对象在编译时会运行内部所有的构建Task。Gradle就如工厂合成的工具一样,很大程度上已经制定了基本流程,但生产时总会有不同的问题,如需要配置不同的原料(Gradle参数),加入特定的工序(加入Task任务)。一.Android基础编译流程:官方提供的构建流程,介绍了编译打包的四个流程...
2019-09-16 21:40:10 591
原创 Android组件化架构学习笔记——Gradle优化
Gradle是Android项目开发环境的一部分,Android Studio每次配置编译时都需要使用Gradle。一.Gradle基础:Gradle本质上时一个自动构建工具,使用基于Groovy的特定领域语言(DSL)来声明项目设置。使用Groovy最大哦的原因就是Groovy基本语法和Java一样,最大程度适应Java开发。当利用Groovy编写自定义插件时,语法并没有太大差异,仅仅是...
2019-09-14 22:05:58 765 1
原创 Android组件化架构学习笔记——组件化编程之静态变量/资源/混淆/多渠道打包
一.组件化的静态变量:R.java的生成:各个module会生成aar文件,并且被引用到Application module中,最终合并为apk文件。当各个次级module在Application module中被解压后,在编译时资源R.java会被重新解压到build/generated/source/r/debug(release)/包名/R.java中。当每个组件中的aar文件汇总...
2019-09-13 10:48:47 711
原创 Android组件化架构学习笔记——组件化编程之权限管理
权限设立的目的是保护安全。一.权限机制:Android底层是基于Linux系统的,而Linux权限访问由进程和文件两个部分组成。系统权限分为三种类型:Android所有者权限,相当于拥有Android Rom开发权限,可以获取所有的权限; Android Root权限,相当于取得Linux系统中的最高用户权限,可以任意对文件进行修改; Android应用程序权限,获取只能通过A...
2019-08-30 22:48:27 516
原创 Android组件化架构学习笔记——组件化编程之数据存储
Android中的五种存储方式:SharePreferences,File I/O,SQLite,ContentPreferences,网络。网络存储:一定固定的路径可以获取到相关信息; File I/O(文件存储):便于携带和分享; SQLite(数据库):通过事前管理的机制,数据处理高效; ContentPreferences(内容提供者):跨app传输数据,速度取决于存储数据的获取...
2019-08-25 19:49:09 780
原创 Android组件化架构学习笔记——组件化编程之动态创建
组件化中使用动态创建的作用是解耦一.反射基础:反射机制是在运行状态中,对于任意一个类,能够知道这个类的所有属性和方法。反射是可以在一个类运行的时候获取类的信息的机制,可以获取在编译期不可能获取类的信息。对于任何一个对象,能够调用它的任意一个方法和属性。因为类的信息是保存在Class对象中的,而这个Class对象是在程序运行时被类加载(ClassLoader)动态加载的。当类加载器装载运行了...
2019-08-25 12:46:24 343
原创 Android组件化架构学习笔记——组件化编程之通信机制
一个项目的开启时,需要深入评估工具在编程中的代价和实现成效。工具直接影响着工作效率,首先要知道有什么工具(工具类及库)?怎么选择这些工具?怎么使用这些工具?使用这些工具有什么好处?怎么做才能做到更加高效,以减少工具消耗和人力消耗的计量?时间维度:沟通时间,决策时间,编码时间,维护时间;空间维度:产生工程包大小,运行内存,方法量。一.本地广播:LocalBroadcastManage...
2019-08-11 12:10:57 334
原创 Android关于虚拟控件、全面屏及悬浮球机型适配时遇到的问题
现在市面上全面屏的手机,有些机型存在悬浮球的设置。在界面设计的时候就要考虑如全面屏/虚拟键/悬浮球三种情形的关于控件适配的问题。当遇到一些视频显示及图片显示时,全面屏/虚拟控件/悬浮球状态时会对控件进行缩放。这样就使得原本按比例显示的视频和图片出现拉伸的情况出现。这时我们要设定比例的控件不受全面屏/虚拟控件的显示及隐藏/悬浮球显示与否的影响。1、全面屏:2、虚拟控件隐藏:3、悬浮球...
2019-07-18 21:49:44 760
原创 Android组件化架构学习——组件化基础
一.组件化/模块化及插件化概念:多module划分业务和基础功能,这概念作为组件化的基础。组件:指的是单一的功能组件,如视频组件(VideoSDK)/支付组件(PaySDK)/路由组件(Router)等,每个组件都能单独抽出来制作成SDK。 模块:指的是独立的业务模块,如直播模块(LiveModule)/首页模块(HomeModule)/即时通讯模块(IMModule)等,模块相对于组件...
2019-07-09 22:20:39 362
原创 iOS基础界面编程———UIView和UIWindow
首要的第一步是了解iPhone应用程序的声明周期和它的界面分布情况,UIApplication和UIView相关知识是iPhone应用程序开发基础。 1.UIWindow和UIView:在iOS平台上运行的程序都有一个UIApplication类的对象,UIApplication类继承于UIResponder类,它是iOS应用程序的起点,负责初始化和显示UIWindow,还接...
2019-07-01 22:07:12 331
原创 iOS开发常用设计模式
在开发中很好的利用某种特定的开发模式,则能对编写的程序起到画龙点睛的作用。 1.协议代理设计模式: 协议(protocol)类似于Java中的接口,但与接口不同的是,协议没有父类,也不能定义实例变量,在协议中定义相应的方法,在其他的类中进行实现。因此,协议也是iOS开发中比较特殊的一种设计结构。 协议有两种方法,一种是必须实现的方法,也就是require方法;...
2019-06-25 20:50:46 1015
原创 Android开发对于iOS基础的对比学习
Android开发使用的是Java语言进行编写,当然最近Google的kotlin逐渐变成Android的官方认可的语言。虽然kotlin的语法模式跟Java有些区别但对于一个多年Android开发经验的开发者来说上手比较快,Java和kotlin在Android开发中很多相关的知识点多能套用。出于对移动端开发的热爱,要了解两大移动系统的开发,iOS开发还是挺吸引人的。 大学时的C基础基...
2019-06-14 21:39:14 683
原创 Android开发中优化分析及总结笔记
一、奔溃的原因及优化: 1、Android的奔溃分为Java奔溃和Native奔溃。 Java奔溃就是在Java代码中,出现了未捕获异常,导致程序异常退出。Native奔溃是因为Native代码中访问非法地址,也可能是地址对齐出现了问题,或者发生了程序主动abort,这些都会产生响应的signal信号,导致程序异常退出。 2、Native奔...
2019-02-28 18:10:38 767 2
原创 数据结构与算法之“串”学习笔记
在较早的程序设计语言中,字符串是作为输入和输出的常量出现的。随着语言加工程序的发展,产生了字符串处理。这样,字符串也就作为一种变量类型出现在越来越多的程序设计语言中,同事也产生了一系列字符串的操作。字符串一般称为串,在汇编和语言的编译程序中,源程序和目标程序都是字符串数据。在事务处理程序中,顾客的姓名和地址以及货物的名称、产地和规格等一般也是作为字符串处理的。又如信息检索...
2018-12-31 15:45:15 600
原创 数据结构与算法之“线性结构”学习笔记
线性结构的特点是: 在数据元素的非空有限集中,1).存在唯一的一个被称做“第一个”的数据元素;2).存在唯一的一个被称做“最后一个”的数据元素;3).除了第一个之外,集合中的每个数据元素均只有一个前驱;4).除了最后一个之外,集合中每个数据元素均只有一个后继。 线性表中的数据元素可以是各种各样的,但统一线性表中的元素必定具有相同的特征,即属同一数据对象,相邻数据元素之间...
2018-12-07 17:32:54 314
原创 数据结构与算法之“概念及复杂度分析”学习笔记
一、数据结构与算法的概述: 什么数据结构: 一般说来,计算机解决一个具体的问题时,大致需要经过下列几个步骤: 首先,从具体的问题抽象出一个适当的数学模型; 然后,设计一个解此数学模型的算法; 最后。编出程序,进行测试调整直至得到最终解答。 寻求数据模型的实质是分析问题,从中提取操作的对象。并...
2018-12-06 15:14:09 286
原创 Android下自动连接指定SSID的WIFI的简单实现
一、关于WiFi模块的概述: 1.在Android developer的文档中WiFi模块的信息: 首先,登记广播的监听;其次,请求扫描wifi信号;最后获取扫描到的wifi信息。 2.在广播监听到结果后,创建出WifiManager的对象之后通过getScanResults()方法获取到扫描wifi的对象信息。 二、指定SSID和密码进行wifi的自动连接:...
2018-10-31 16:01:05 10926 1
原创 亚马逊Alexa Auto SDK示例SampleApp的集成开发
从这个月十号起亚马逊关于车载语音的开源项目Alexa Auto SDK正式在Github推出,其中Alexa Auto SDK引擎、 核心模块、Alexa模块、导航模块、手机控制模块五大模块几近涵盖了车载导航方面的所有功能示例。一、整体模块的功能: Alexa Auto SDK包含将Alexa集成到汽车中所需的基本客户端软件。Alexa Auto SDK提...
2018-08-21 18:46:58 5207 5
原创 android Gradle例如:“style attribute 'android:attr/keyboardNavigationCluster' not found.”报错的处理
1、在Github中clone下来到本地编译时一般出现Gradle配置与本地Gradle不同的问题,这样的话就需要去修改Gradle里面的配置项。例如:C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\design-26.1.0.aar\5ba96bfecef770e540dd547a1303d7a1\res\val...
2018-08-16 11:04:05 6841 1
原创 GamepadView、JostickView仿创客工场中的遥感的自定义View
一、游戏操纵杆的展示: 小时候必定玩过小霸王类的手柄游戏,很怀念小时候。无意间看见创客工场里控制机器人的View中有一个类似操纵杆的控件。所以很感兴趣的仿造做了一个玩玩,效果如下:二、实现的思想步骤: 1、首先自定义View的三大步骤 onMeasure()、onDraw()、onLayout(),在此控件中放置对应的图片即可实现。onLayout的放置似乎没有什...
2018-08-04 11:29:29 985
原创 亚马逊Alexa技能的创建流程
1.Alexa技能的开发首先需要一个亚马逊的开发者账号https://developer.amazon.com 如下进入Amazon Alexa: 2.在账号的控制台上“Your Alexa Consoles” --> Skills3.进入Alexa技能的创建界面 --> "Craete Skills"创建自己的技能:4.Alexa技能中的Bulid: ...
2018-05-22 19:12:38 5518
原创 亚马逊语言识别Alexa之AlexaAndroid的接入及AlexaAndroid的源码解析(二)
上一篇文章介绍了验证api_key.txt的流程,这首先是开发AlexaAndroid的第一步。在基于AlexaAndroid项目的基础上要分析项目的源码之后,根据的需求去进行下一步的开发。这样就要看懂AlexaAndroid关于语音识别的整个流程。 其实语音识别是亚马逊后台Alexa Service后台在做的,我们只要接入: 1、登录亚马逊的模块; 2、语音收集的模块;...
2018-05-12 16:50:26 1869
原创 亚马逊语言识别Alexa之AlexaAndroid的接入及AlexaAndroid的源码解析(一)
一、用于国外关于语音识别的产品,现在亚马逊开发了Alexa给开发者使用。国内的话语言识别当然就科大讯飞莫属了,最近在接入亚马逊Alexa语音识别遇到很多在Stack Overflow中都没人解答的坑坑。在此以博客的形式记录自己深陷的坑和相应的解决办法。整个接入的流程如图:二、先把https://developer.amazon.com/zh/docs/login-with-amazon/insta...
2018-05-05 15:38:24 7511 21
原创 Java设计模式学习笔记之操作型模式
一、操作型模式介绍: 在编写一个Java方法时,你完成的是整个工作中级别高于单行代码的一个基本单元。这些牵方法涉到整体设计、架构以及测试以及测试计划。编写方法时面向对象编程的中心环节。但反过来说,尽管方法时软件设计的核心,我们还是难以解释方法到底是什么,方法又是如歌工作的,追本溯源,还是因为许多开发人员常常混淆了方法与操作的含义。进一步讲,算法和多态的概念比方法更加抽象,但最...
2018-02-09 15:55:52 308
原创 Java设计模式学习笔记之构造型模式
一、构造型模式概念介绍: 1、构造函数: 若要创建一个Java类,通常会提供多个构造函数。构造函数是有用的,尽管只有客户类知道该使用哪个构造函数以及传递什么参数来创建类。 初始化对象的常见方法是调用new操作符,也可以使用反射。反射提供了能将类型与类型成员像对象一样操作的能力。 一般情况下,你需要为自己开发的类提供构造函数使其能够被初始化。这些构造函数可能相互调用协作,并且类中的每个构造函...
2018-02-09 15:51:32 837
原创 Java设计模式学习笔记之职责型模式
一、职责型模式介绍: 1.普通的对象需要一些独立操作的信息和方法。然而,有时却需要将对象从一般的独立性操作中分离出来,以便集中职责。很多设计模式都能满足这一需求。有的模式则通过引入对象来封装这些请求,并将该对象从依赖于它的其他对象中分离出来。面向职责的模式提供了用于集中、加强以及限制普通对象责任的技术。 2.常规的职责型模式: 一个易于使用的类的特征在于,它的方法名是有意义的,并能准确地表述方法要...
2018-02-08 17:30:57 278
原创 Java设计模式学习笔记之接口型模式
一.接口型模式的介绍:类的接口是类允许其他类对象访问的方法与字段集,接口代表一种承诺,即方法需要实现接口方法名表示的操作,类的实现就是位于方法体中的代码。接口与抽象类的关键区别:虽然类只能声明扩展一个类,却可以声明实现多个接口。接口在不同场景下的使用模式: 适配器模式:适配类的接口以匹配客户端期待的接口;外观模式:为一组类提供一个简单接口;合成模式:为单个对
2018-02-06 17:09:55 333
原创 Android关于Blockly对Workspace中的block数据保存及读取的流程,及改造原生代码实现Trash垃圾桶中的block保存及读取
一.Blockly对Workspace中的block数据保存及读取的流程源码分析: 1.Workspace的自动保存:在AbstractBlocklyActivity中有onAutosave()的方法用于对Workspace的block数据进行保存。保存的流程如下 1).在AbstractBlocklyActivity的onAutosave(),获取自动保存的路径:/**
2018-01-31 18:23:45 1602 2
原创 Android在RecyclerView中嵌套ScrollView,解决两者间的滑动冲突
在RecyclerView中的item中嵌套一些布局如TextView,在这种情况下如TextView的字数很多超过所设定的布局大小。这样就需要在item中加一个ScrollView可以用于用户的滑动。1.RecyclerView的item布局如:xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android
2018-01-11 16:26:16 4081
原创 Blockly之工具Block模块的加入流程
一.Block小模块的加入过程:在Blockly中侧边栏中的ToolBox是的加入经过assets目录下的json文件数据进行转化成Block的小模块。json中的数据标签通过BlockDefinition类解析一个个的具有属性Block模块,之后把Block模块加入到BlockFactory的工厂中。在需要的地方绘制到Fragment中去。二.添加自定义的模块的流程:
2017-11-04 17:58:17 5561 3
原创 关于"app:transformClassesWithDexForDebug"报错的问题解决
在项目开发中出现:Error:Execution failed for task ':app:transformClassesWithDexForDebug'.> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.con
2017-10-14 14:12:43 6004
原创 Android中的IPC机制
一.IPC是Inter-Process Communication的缩写,含义为进程间通信。是指两个进程之间进行数据交换的过程。Android中会为每一个应用分配一个独立的虚拟机,或者说为每个进程都分配一个独立的虚拟机,不同的虚拟机在内存分配上有不同的地址空间,这就导致在不同的虚拟机中访问同一个类的对象会产生多分副本。使用多线程会造成的问题:1.静态成员和单例模式完全失效;2.线程
2017-09-30 08:59:41 354
原创 Android中的Window和WindowManger
Window是一个抽象类,具体实现是PhoneWindon。创建Window是通过WindowManger完成的。WindowManger是外界访问Window的入口,Window的具体实现位于WindowMangerService中,WindowManger和WindowMangerService的交互是一个IPC过程。Android中的所有视图都是通过Window来呈现的,不管是Actvivt
2017-09-17 16:35:56 318
原创 Android中获取view的宽高的几种方法
很多自定义的view中需要在某个方法中获取一个View的宽高之后再进行相应的操作,但activity中的onCreate、onStart、onResume的方法中是无法正确的获取到某个想要获取View的宽高信息的。这是因为View的measure过程和activity的生命周期方法不是同步执行的,因此无法保证activity执行了onCreate、onStart、onResume时View已经测量
2017-09-17 09:13:32 441
原创 Android中类似于IOS的CoverFlow效果实现源码分析
一、Android中的coverflow1.在onLayout()方法中对item的放置从中间位置开始对adapter设置进来的item数量进行放置。之后在方法refillRight()和refillLeft()左右填充之后实现了item的循环显示。2.在dispathDraw()方法进行item的绘制算出了中间位置信息。3.事件的处理得dispathTouchEvent()对触摸的处理的分发,重要的是获取item的绘制顺序之后每个item算出了滑动的范围。在滑动时可对每个item进行平移的滑动的设置
2017-09-02 15:53:38 1900
原创 android跟App相关的辅助类
代码:public class AppUtils { private static BluetoothManager bluetoothManger; private AppUtils() { /* cannot be instantiated */ throw new UnsupportedOperationException("cannot
2017-08-29 15:49:09 328
原创 Android中的view的体系总结
一.View基础知识:1.View的位置参数:View的位置主要是由四个顶点来决定的,分别是top、left、right、bottom。top是左上角从坐标、left是右下角横坐标、right是右下角横坐标、bottom是右下角纵坐标。这里的坐标都是相对于View的父容器来说的。获取方式:getLeft()、getRight()、getTop()、getBottom()。2.Mot
2017-08-27 23:15:04 318
Android下自动连接指定SSID的WIFI的简单实现的demo
2018-10-31
GamepadView、JostickView仿创客工场中的遥感的自定义View
2018-08-04
Android Blockly积木编程源码对Workspace中的block数据保存及读取的流程,及改造原生代码实现Trash垃圾桶中的block保存及读取
2018-01-31
Android 画布Canvas之控件连线操作Demo
2017-07-24
Android自定义万能Canvas画布Demo
2017-07-17
Android自定义画布及环形菜单
2017-07-02
Android中RecyclerView的item运用覆盖view的方法实现item的动画效果1
2017-04-04
Android中RecyclerView的item运用覆盖view的方法实现item的动画效果
2017-04-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人