android框架

基于物联网平台开发手机混合 App

三世轮回 提交于 2019-12-05 23:44:01
摘要: 本节内容简单地介绍了如何结合现有的物联网平台去开发一个手机应用程序,在上面展示数据、控制设备,并且还介绍了怎样用蓝牙去和设备通信。 手机应用与Web应用开发有很多的相似之处,它们都是调用一些接口,然后渲染出页面。 原生应用。原生应用是指专为特定操作系统开发的应用。这些应用可以直接访问手机的所有功能,如摄像头、蓝牙、WiFi等。这些应用通常速度更快、性能更好。由于其直接访问系统的API,因此性能上与混合应用相比会更好。但是这里有一个问题—需要支持开发的设备太多,开发成本由此升了上去。 Web应用。Web应用是指运行于浏览器上的应用。Web应用就不存在开发成本高的问题,一次开发就可以在桌面、移动浏览器上运行。然而,Web应用对网速的要求比较高,并且与原生应用相比,用户体验不好。尽管HTML 5可以解决一些问题,但是这些问题还是很明显。 混合应用。混合应用是原生应用和Web应用的结合体。从技术的角度来说,混合应用就是调用浏览器,即WebView,来运行Web代码。而它不仅仅是Web应用的离线版,它还可以通过一些框架,如Cordova,直接调用系统的API。在一些框架中,它甚至可以用封装系统的UI组件,以Web常用的形式来提供API。而在混合应用框架中,可能并没有包含所有的功能,这时候就需要自己去实现。 选择哪种应用来作为用户界面,应该取决于是否有充足的时间、精力和人员

Android应用程序结构总结

落爺英雄遲暮 提交于 2019-12-05 23:35:38
Android 应用程序结构分析 由于是初学者,对于 Android 应用程序的结构的认识是一穷二白的,对于开发 Android 应用程序,必须先了解其程序的结构和作用。一下就用一个简单的例子来解剖: 从上图的程序来看,主要的文件有一下几个: HelloActitity.java HelloActitity. 是继承 Actitity 基类的,其主要功能就相当于界面文件,用来将数据和和界面显示给用户,是用户交互的第一入口。以下是其文件的代码结构: 从图中可以看出,它有两个方法, onCreate(Bundle saveInstanceState) 和 onCreateOptionsenu(Menu menu) 。 当 HelloActivity.java 文件加载的时候,首先是调用 onCreate(Bundle savedInstanceState) 方法。而其中 super.onCreate(saveInstanceState) 是调用父类 Activity 的 onCreate 方法;而 setContentView(R.layout.activity_hello) 是给 Activity 设置可视视图,视图由 R 类来寻找。 res 文件夹, laout 中的 activity_hello.xml , values 中的 string.xml,styles.xml

Android 程序开发的插件化 模块化方法 之一

馋奶兔 提交于 2019-12-05 21:50:58
在android的项目开发中,都会遇到后期功能拓展增强与主程序代码变更的现实矛盾,也就是程序的灵活度。 由于linux平台的安全机制,再加上dalvik的特殊机制,各种权限壁垒,使得开发一个灵活多变的程序,变得比较困难,不像pc平台下那么容易。 瞅瞅elipse的插件,瞅瞅360的插件,在android下,我们一开始很难写好一个主程序,然后通过插件机制来应对以后的功能拓展,于是程序变得不那么灵活多变了。 比如一款android下的安全软件,新版本增加了一个功能,如短信拦截,往往会因为一个模块的增加,而重新编译一个apk包,这样周而复始,哪怕只增加50kb的功能代码,用户也需要升级一个完整的apk,往往是5~6M的体积。 最近思来想去,想到一个方法,既然tencent qq在android下面可以以apk的形式来换皮肤,这资源文件的拓展都可以这样简便的搞,为何功能性的拓展就不可以? 想出来了两种解决方案。 先来说说第一种。 demo下载在最后 先说分析思路。 android下,默认的情况是,每个apk相互独立的,基本上每个应用都是一个dalvik虚拟机,都有一个uid,再配合上linux本身的权限机制,使得apk互通很难直接进行。但作为一个独立应用的集成,不管多少个apk,都可以并为一个单独的dalvik虚拟机,直观的反映给开发人员就是在shell下列出进程,那几个apk同时加载后

那些一口气那些数十个大厂offer的都是什么魔鬼操作

北城余情 提交于 2019-12-05 21:24:07
前段时间整理了一下手头的资料,收到了很多小伙伴的反馈,有说很全面的,又说太多了学不完,也有反馈有些图片不太清晰,有断层的现象,去看了一下好像是这样的,以前可不是这样的QAQ 那为了弥补今天填坑坑写总结了 o(╥﹏╥)o 首先把自己每天的时间安排分享一下,其次是题库分享(附带今天刚弄好的学习路线),最后分享经验( 个人想法分享不喜勿喷^_^ ) 每日.每周时间安排(如何合理有效的安排时间) 日常感悟和收获 题库大全 一. 每日.每周时间安排(如何合理有效的安排时间) 其实,学习这东西,是要多花心思和时间去学习,可是合理的安排学习时间,劳逸结合会让生活更加美好 二.日常感悟和收获 日常的与同事的沟通,老板的沟通和与陌生人的沟通,使我更加自信,交流能力得到了提升。也是一种格局放大、眼界放宽的成长 在公司的制度不断的完善,学习氛围浓厚的熏陶下.不进增加社会阅历.处事和技术也在不断的进步 每个周五都有下午茶,每个月都有相对应的活动组织,感觉团队的集体性更强,氛围更好,上班不进可以赚钱更是一种享受的过程 三. 自我反思与不足 经常的下班回家打游戏导致睡眠不足 偶尔吧当天的问题拖到了第二天 很多项目的实战属于纸上谈兵,却没有实际性的落到 经常制定的计划,因为懒而自动忽略 四.题库大全 我认为看面经主要是为了查缺补漏,自己也要不断的温习,所以的答案并不是只有绝对的一种,所以都是靠自我理解回答出来的

android无framework Java应用开发

烂漫一生 提交于 2019-12-05 21:15:17
在android下,其实有另外的一类应用程序,他们用Java开发,但却不使用android的应用框架,不包含android应用程序四大组件中的任何一个,几乎就与我们平常在PC机上开发的那些Java应用程序一样。这里,我们来看一下,这样的应用程序要如何实现。 最典型的无android framework的android Java程序就是两个我们经常会用到的工具,一个是monkey,另外一个是am。我们通常用前者来做monkey测试,而常常使用后者,来执行通过命令行启动Activity等操作。这里我们也会以这两个应用程序为例,来研究android下frameworkless Java应用程序的开发方法。 要了解这些app的结构和实现,最简单的方式则是直接来阅读code和Android.mk 文件了。我们来看一下monkey的code,在development/cmds/monkey/monkey下。首先,我们可以先来看一下这个project的目录结构: .. 01-Nov-2013 4 KiB Android.mk 01-Nov-2013 423 example_script.txt 01-Nov-2013 731 MODULE_LICENSE_APACHE2 01-Nov-2013 0 monkey 01-Nov-2013 217 NOTICE 01-Nov-2013 10.4

Android Application的作用

被刻印的时光 ゝ 提交于 2019-12-05 21:00:44
学习android挺长时间了,但是对于Appliction还不是很了解。今天花一些时间研究了一下Application。 What is Application Application和Actovotu,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 Application并在manifest的application标签中进行注册(只需要给Application标签增加个name属性把自己的 Application的名字定入即可)。 android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,所以Application可以说是单例 (singleton)模式的一个类.且application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局 的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象。所以通过Application来进行一些,数据传递,数据共享 等,数据缓存等操作。 Data passing between components using

android之environment的使用、获取存储卡信息

断了今生、忘了曾经 提交于 2019-12-05 20:04:47
Context常用方法目录: getFilesDir :返回通过Context.openFileOutput()创建和存储的文件系统的绝对路径,应用程序文件,这些文件会在程序被卸载的时候全部删掉。 /data/data/package_name/files getDir: 这是一个可以存放你自己应用程序自定义的文件,你可以通过该方法返回的File实例来创建或者访问这个目录,注意该目录下的文件只有你自己的程序可以访问。 getDir("test", Context.MODE_WORLD_WRITEABLE) /data/data/ package_name /app_test getCacheDir :返回应用程序指定的缓存目录,这些文件在设备内存不足时会优先被删除掉,所以存放在这里的文件是没有任何保障的,可能会随时丢掉。 /data/data/ package_name /cache getExternalFilesDir :使用这个方法需要写外部存储的权限“”,这个目录是与应用程序相关的外部文件系统,这些文件只属于你的应用,不能被其它人访问。同样,这个目录下的文件在程序被卸载时也会被一同删除。该方法也可以指定返回某一资源类型,这些类型可以是: Environment#DIRECTORY_MUSIC 音乐 Environment#DIRECTORY_PODCASTS 音频

后端spring boot+前端Android交互+mysql增删查改

只愿长相守 提交于 2019-12-05 18:27:50
1.概述 使用spring boot作为后端框架与Android端配合mysql进行基本的交互,包含了最基本的增删查改功能. 2.开发环境 win10 IDEA tomcat9.0.27 mysql8.0.17 spring boot 3.后端 (1)新建一个spring boot项目 可以看这里 (2)Entity 新建User类作为实体类: package com.test; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void

android databinding之include

蹲街弑〆低调 提交于 2019-12-05 15:46:01
由于前段时间了解到了google推出的数据绑定框架databinding,就使用它实现了一个简单的android的mvvm架构思想的demo。 使用过程之中很happy,按照其使用方式,框架会自动生成布局文件对应的XXXBinding类文件。再也不用findViewById了,也再也不用使用注解框架在Activity或者Fragment中写大量的控件属性了,哇,整个世界都清净了。。。。这感觉太爽了。。。 结果遇到问题了,也不知道怎么解决。。。。幸好有google老师带我们学习。 前面都是废话,下面就详细分析我遇到的问题吧! 使用一个Activity + 对应的布局文件举例: DemoActivity: public class DemoActivity extends BaseActivity<DemoVM, ActivityDemoBinding> { @Bind(R.id.linkTv) TextView linkTv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initWidget(); } @Override protected void initBinding() { setBinding

50 Android Hack 读书笔记

ⅰ亾dé卋堺 提交于 2019-12-05 13:14:34
1、可以指定android:weightSum属性 2、使用include标签来应对变化 3、使用ViewStub标签延迟加载有可能不需要加载的数据 标签中可以指定inflateId属性 4、使用自定义ViewGroup,重写onMeasure、onLayout 5、使用Android的PreferenceCategory 6、使用TextSwitcher、ImageSwitcher来制作过渡动画 7、使用LayoutAnimathionController,使用View#setLayoutAnimation 8、使用Canvas手动绘制一些动画 9、使用NineOldAndroids制作幻灯片播放动画 10、使用一个Editext样式的图片作为Button的背景来弹出DatePicker让用户选择正确的日期 11、使用TextView#setText(Html.fromHtml())来自定义样式,使用Spannable来自定义TextView的显示样式 12、使用TextView的shadowColor属性来定义发光字 13、使用xml定义圆角矩形 14、使用View#post()方法在activity的onCreate中获取view的大小 15、处理视屏播放横屏问题 16、移除activity的背景和title来加快启动速度 <?xml version="1.0"