自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Y敲键盘的地方

In Coding We Trust

  • 博客(307)
  • 资源 (15)
  • 收藏
  • 关注

原创 问一下ChatGPT如何学习开发iOS应用程序

Stanford CS193P iOS开发课程:https://cs193p.sites.stanford.edu/Apple官方开发者文档:https://developer.apple.com/documentation/学习基本的iOS应用程序框架和库,例如UIKit、Core Data和Foundation。学习Swift编程语言或Objective-C编程语言。开始编写简单的iOS应用程序,并逐渐提高难度。学习Xcode IDE和iOS开发工具。

2023-06-06 21:56:55 961

原创 问一下ChatGPT如何接手一个历史悠久的iOS 应用

接手一个历史悠久的 iOS 应用可能需要你面对大量复杂的代码和文档,下面是一些建议:

2023-06-06 21:52:31 131

原创 结合平时的使用经历,说说Edge浏览器的使用体验及优缺点

Microsoft Edge是一款现代化的浏览器,它拥有众多功能和强大的性能,为用户带来更加流畅的浏览体验。Edge最近推出了分屏功能,支持一个窗口同时显示两个选项卡,这可以大大提高生产力和多任务处理能力。欢迎大家使用分屏及其他新功能后分享自己的使用心得与建议。

2023-05-06 14:12:06 2809 2

原创 如何设计接口协议,实现一个优秀SDK

Software Development Kit,支付包 SDK,微博 SDK等,接口设计规范

2022-12-20 21:34:09 1597

原创 聊聊跨端技术

起初,移动互联网浪潮起来时候,iOS和Android智能手机普及,这两个平台上开发用到技术同一称为Native,就是通过平台提供的工具包进行应用的开发。我们知道,应用是需要更新才可以用到新功能,感谢产品经理没日没夜的加班,让我越来越觉得第一个版本是最好的。但是为了让最新的更新触达你手中的APP,技术人员被迫无所不用其极。然后就有了H5,weex,小程序,Flutter等等。这些技术的特点主要是磨平了平台属性,让你不管是Android或者iOS,技术人员写的代码都照样运行。总而言之,是技术人员为了偷懒觉卷出

2022-06-21 23:30:02 615

原创 Dart语言中有意思的地方

Hello worldvoid main() { print('Hello, World!');}变量Dart 是类型安全语言,支持类型推断,因此大多数变量不需要显式指定类型var name = 'This is a var';var year = 2022;var cost = 100.2;var fruits = ['apple', 'orange', 'mango', 'banana'];var image = { 'tags':'color', 'url'

2022-05-16 20:47:49 240

原创 当谈空安全的时候,我们在谈什么?

什么是空安全当你选择使用空安全时,代码中的类型将默认是非空的,意味着 除非你声明它们可空,它们的值都不能为空。有了空安全,原本处于你的 运行时 的空值引用错误将变为 编辑时 的分析错误。空安全有什么用没有空安全之前,想象自己写过多少形如 if(a != null) {} 的代码,又多少次因为忘记写而导致用户使用过程发生crash从而造成应用程序闪退,如果一个应用出现异常,可以快速对它进行处理而不被用户察觉,这种体验才是负责人的,用户不希望看到异常。看到程序崩溃,用户不开心,开发者也不会开心。而空安

2022-05-16 20:22:17 230

原创 Y的十年职业生涯小结(2012-2022)

Y的十年职业生涯小结(2012-2022)2012毕业至今,刚好十年。1. 移动互联网浪潮当时的我并不知道,这十年,移动互联网的十年,是这么一段波澜壮阔,荡气回肠的历史。很少人能想到,iPhone和Android的横空出世,能掀起这么巨大的移动互联网浪潮,能给人们生活方式和习惯带来如此翻天覆地的变化。2007年第一代iPhone发布。2008年,中国的互联网人口第一次超过了美国。这年10月,第一部Android手机发布。2009年夏天,魅族的第一款手机正式发布。同时,这款被称为“山寨iPho

2022-02-16 21:25:31 8544

原创 C#语言入门

C#语言入门C#基础语法C#类和对象C#类的定义C#访问修饰符C#方法的定义C# get和setC#构造函数C#析构函数C#方法重载C#方法的参数C# lambda表达式C#递归C#嵌套类C# partial部分类详解C# Console类:控制台输入输出C# Math类C# Random类C# DateTime类TODOMoreC#基础语法C#基本语法知识using System;namespace DemoCSharp{ class Program { sta

2021-12-28 21:32:21 325

原创 互联网公司中一个业务的衰落有哪些征兆

文章目录前言1.高管的频繁变动2.不断强调控制成本3.hr开始抓考勤4.盘点团队人员年龄分布5.年终奖打折6.发不出工资7.忽然很闲8.宣传狼性文化9.周围同事开始有离职10.办公室氛围不对总结前言相比起传统企业,互联网企业向来以“快”著称,天下武功,唯快不破。有一个构想,快速出Demo,快速验证,快速融资,快速招人,快速扩大规模,快速占有时长。但是不是每一次尝试都成功,于是乎,失败也快,快速控制成本,设置快速砍掉业务,快速精简人员,那么,一般在大的互联网公司里面,一个业务衰落都有哪些征兆呢1.

2021-11-22 22:16:16 356

原创 Kotlin入门

目录发展历程主营业务公司市值发展方向公司愿景发展历程2005年Roblox Beta版上线2009年Roblox开启商业化进程2013年Roblox允许作者参与平台分成2016年,50万创作者,500万款游戏作品,月活用户3000万,头部开发者月入5万美金。2017年,170万创作者,2200万款游戏作品,月活用户4800万,获9200万美元融资。2018年,400万创作者,4000万款游戏作品,月活用户7000万,获1.5亿美元融资,头部创造者年收入最高能超过300万美元。移动端累计收入

2021-11-16 23:12:44 1611

原创 关于开发语言个人随想

2012年毕业,当时银行的岗位是香饽饽,上来就是年薪十万,当时班上三分之一人进了银行,做开发或者干脆不做开发了。还有三分之一干脆不干这行了。剩下的三分之一,进入了IT行业。当时的我跟随大家,投了几个简历,当时市面上诺基亚还是如日中天,刚有智能手机,觉得新鲜,Google开源了Android系统,一下子大家在谈论智能手机这个新事物,并且这玩意学习门槛低。到金山WPS实习了三个月,回到广州一家做APP的公司上班,现在回头看,当时懵懵懂懂的,赶上的正式轰轰烈烈的移动互联网大潮。2022年...

2021-11-11 23:35:55 2537

原创 程序员的层级

一个合格的程序员:能理解需求能实现需求能修复验收需求过程中发现的BUG一个有专业素养的程序员:动手写代码前,花时间进行设计除了实现需求功能,能考虑到性能不满足于将代码写完,同时有文档和单元测试知道对上线业务进行多维度的监控以保证稳定性对线上异常进行及时处理并沉淀出更优方案一个优秀的程序员:动手前写代码前,花更多的时间设计同一个功能实现能想出上中下三种策略方案,进行推演并且因地制宜的选择最合适的方案执行能学习并且尝试运用新技术来提高工作效率不贰过,坑不重复踩能举一反

2021-11-09 20:58:02 3300

原创 牛逼公司系列——Netflix

前言Netflix是一家什么样的公司?为什么说是一个商业奇迹?Netflix用了22时间从一家传统的DVD租赁公司发展成为最成功的的全球化媒体公司,当前市值高达2944亿美元,不仅是过去十年全球商业上最成功的企业之一,也被评为改变人类影视消费模式的颠覆性企业。而这个过程当中,数据起到了最核心的作用,是Netflix最核心的竞争力之一。NetFlix的历史Netflix的名字来源于英文单词 Net 和 电影的俚语 Flicks 的缩写 Flix,加起来就是网络电影的意思。创始人 Marc Rand

2021-10-25 21:42:51 1160

转载 Google检索技巧大全

作者:谷峰一、GOOGLE简介Google是一个搜索引擎,由两个斯坦福大学博士生Larry Page与Sergey Brin于1998年9月发明,Google Inc. 于1999年创立。2000年7月份,Google替代Inktomi成为Yahoo公司的搜索引擎,同年9月份,Google成为中国网易公司的搜索引擎。98年至今,GOOGLE已经获得30多项业界大奖。二、GOOGLE特色GOOGLE支持多达132种语言,包括简体中文和繁体中文;GOOGLE网站只提供搜索引擎功能,没有花里胡哨的累赘

2021-08-31 11:03:51 704

原创 一切在于链接

一切在于触达用户,与用户建立链接,产生互动,链接越多,用户越依赖,产生的价值越大

2021-07-13 22:19:40 183

原创 妹子问,“你们工程是怎么跑起来的?”

经过两天文档和业务熟悉,妹子终于按捺不住寂寞,小心翼翼的问了一句,“你们工程是怎么跑起来的?”咋听起来,好像一下子新同学水平真的不怎么样,怎么连代码都跑不起来。但是细想一下,自己不也是这么过来的,所谓的团队文档,从写下那一刻起就已经是过时的了,加上研发人员对于文档的态度,基本上是能不写就不写。除了仓库地址(有些团队文档甚至连基本的信息,例如仓库地址都没有),现在国内稍微大一点的APP都分模块开发,多人协助情况下不同公司不同团队用的技术栈,协同方案不一样,国内技术团队特点就是永远有自己特色,拿And

2021-07-08 19:54:33 143

原创 研发团队终于来了一个妹子

研发团队来了一个妹子太阳没有从西边出来,研发团队终于招来一个人,这年头,招一个人不容易,更不容易的是,还是一个妹子。大周一的早上,一改以往昏沉的气氛,群里活跃至极。电话终于响了,来到公司楼下,好几个忍不住抢着下楼迎接。协助帮忙办理入职手续领电脑,现在新员工入职配置的都是Mac最新版了,羡慕新同事介绍。一说是妹子大家自我介绍都特别积极一点午饭时间,按惯例都请人家妹子到外面下馆子,第一顿就食堂就太没诚意了吃饭完午休时间已经过去了,回到工位上,告诉妹子wifi密码之类的信息每到一个新岗位,总有

2021-07-05 22:10:07 235

原创 移动DevOps思考

# 目标提高研发效率,保证质量# 未来规划产品化,商业化,服务更多App产品,更多研发团队

2021-06-05 16:34:23 308 2

原创 如何写好一篇技术文章

如何写好一篇技术文章为什么技术人需要写文章,写文章有什么好处能者为师,写文章是技术人员进阶的路径之一沉淀更多,做得多有更多的体会,写得多有更多沉淀锻炼自己抽象能力,结构化思维能力,系统思维能力提升自己影响力写文章方法和技巧文章是思维的表达,思维要能结构化,表达要有逻辑性;确定文章主旨,要讲什么,围绕中心来展开,尽量把内容写得深入浅出尽量引起读者共鸣,对读者有帮助或者能触动读者写作过程要清楚,文章除了给别人看,希望能帮到别人,更多是和自己对话的过程,期间要反复问自己:

2021-05-20 21:36:55 182

原创 Android注解处理器APT技术简介

Android注解处理器APT技术简介APT是什么例子APT有什么用 (好处)APT原理 (为什么)APT实践 (怎么做)参考APT是什么APT全称“Annotation Processing Tool”,即注解处理器,是javac的一种处理注释的工具,它对源代码文件进行检测找出其中的Annotation,并根据注解自动生成代码,帮助开发者减少了很多重复代码的编写。例子很多著名的框架用到APT的思想,通过注解编译期间自动生成代码,简化使用ButterknifeDraggerRoom另外,

2021-05-19 20:22:24 449

原创 Glide java.io.IOException(File unsuitable for memory mapping)

异常信息03-06 14:43:26.656 W/Glide ( 852): class com.bumptech.glide.load.engine.GlideException: Failed to load resource03-06 14:43:26.656 W/Glide ( 852): There were 2 causes:03-06 14:43:26.656 W/...

2020-03-10 23:16:00 4889 2

原创 Android图片内存优化-Android 8.0上通过HARDWARE模式加载图片

背景Android上内存优化可以做的有很多,其中图片的内存内存优化往往是最先考虑的几个方面之一,主要源于图片的内存占用多。分析一张Bitmap的内存占用大小跟什么有关系?图片在内存中的大小的计算方式是:图片长(px) x 图片宽(px) x 单位像素占用的字节数Android中不同的图片格式,他的单位像素占用的字节数不同。图片格式总共有四种:Bitmap.Config = ALPH...

2020-02-24 21:39:25 1478

转载 Android Adb 大全

Android Adb 大全转自:Awesome Adb ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。**注:**有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。Table of Contents基本用法命令语法为命令指定目标设备启动/停止...

2019-10-28 18:19:12 618

原创 Android磁盘空间优化

Android 磁盘空间优化背景磁盘空间占用过大会导致用户正常使用,卡顿,慢,系统卡死等优化步骤查看命令:du -h -d 2 | sort -n针对步骤1发现占用空间大的文件夹进行分析,找到产生了原因和优化的方法磁盘空间使用规范限制大小图片的缓存限制,例如使用Glide的必须自定义AppGlideModule,在applyOptions()里面指定缓存目录大小。目录存...

2019-10-16 19:53:35 792

原创 谈谈Andorid 内存

Linux内存基础Android 内存是如何统计的?Android系统基于Linux内核,而Linux中内存统计两个重要文件是/proc/meminfo 每个字段的含义可见 https://www.kernel.org/doc/Documentation/filesystems/proc.txt/proc/[pid]/smaps内存明细/proc/meminfo 每个字段的...

2019-10-09 20:51:55 334

原创 Android Studio Gradle Already disposed Module

Question:Failed to complete Gradle execution. Cause: Already disposed: Module: 'MYMODULENAME’Solution:注意,这是IDEA/AS导致的问题,不断地gradlew clean | Build > Clean | Build > Rebuild没有用,只会浪费时间根本原因在于部分...

2019-09-25 17:32:00 335

原创 Android架构设计思考

什么是架构设计“架构的本质就是对系统进行有序化重构,不断减少系统的“熵”,使系统不断进化。那架构是如何实现无序到有序的呢? 基本的手段就是分和合,先把系统打散,然后重新组合。”简而言之,动手前想好。架构设计的目的提高效率降低成本保证质量架构设计的能力我们要想做好一个架构的话需要哪些能力?我觉得最重要的是架构师一个最重要的能力就是你要有分解能力。第一,你必须要有抽象的能力,抽...

2019-09-25 12:54:44 174

原创 接口的设计实践

接口使用场景代码执行过程中,需要通过其他地方的代码或者服务来获取结果,例如网络请求,数据库查询等,一般是异步耗时的操作。接口设计思考从使用者角度来看,希望接口能通过传递的相关参数,得到想要结果外,还比较关心接口当前的请求状态,甚至对于多个请求,需要知道回调回来的接口里面有相关的参数告知当前这个返回时来源于哪个接口。所以,一个好的设计应该尽量让使用者能够使用方便同时,如果想进一步了解接口明细,...

2019-09-25 12:08:47 176

原创 一个Activity占用多少内存,一个Service占用多少内存

Android版本:8.0测试方法编写一个只有一个Activity和Service的App,启动后修改进程和启动条件,执行adb shell dumpsys meminfo。Activity里布局里面只要一个helloworld的TextView。测试场景和对应数据启动一个Activity查看PSS内存情况19,227K: com.yuan.emptyapp (pid 7544 /...

2019-09-25 11:13:48 1597 1

原创 Android 内存优化指南

内存查看和监控内存上涨产生的原因内存优化方案内存泄漏图片优化图片压缩缓存池大小内存抖动Android Studio Inspection Code工具使用LeakCanaryMAT使用指南Andorid Studio 自带的分析工具 Memory Profiler内存优化建议谨慎使用服务离开了 APP 还在运行服务是最糟...

2019-06-20 16:36:06 186

原创 Android 异常处理

Android 异常处理Android 捕获异常的原理Android 的异常分为两种,Java层的异常和Native层的异常Java层异常捕获Java层默认通过调用Thread.setDafaultUncaughtException 注册一个UncaughtExceptionHandler来捕获异常,这个Handler可以抓到所有线程的未处理异常。```javafinal Thre...

2019-06-17 21:33:16 297

原创 聊一聊我眼中的需求分析

聊一聊我眼中的需求分析作家通过文字来创作,程序员通过代码来实现功能,某种程度上,两者的本质都是创作。只不过是作家为了自身想法而创作,大部分的代码从业人员是为了实现产品经理的需求。职业生涯的初期,容易犯一个错误,那就是习惯于不假思索的听从产品经理的意愿。想法很简单,毕竟,人家是专业的,自己只需要想方法实现就可以了。但是,随着时间的推移,一个接一个需求的实现,上线,复盘,逐渐开始意识到,产品经理其...

2019-06-15 20:28:56 239

原创 Android JNI开发指南

Android JNI诞生背景解决的问题优点和缺点基础Java如何调用Native代码Native如何调用Java代码JNI 与 NDK关系JNI是Java中的接口,用于java与本地语言(例如C、C++)交互NDK是Android中工具开发包,用于快速开发C、C++的动态库,并自动将so和应用一起打包成APK两者之间的关系:JNI是实现的目的,NDK是实现的手段,可以理解...

2019-06-14 20:34:23 205

原创 团队Code Review(代码review注意点)

Code Review 代码review关注点内存性能可读性可维护性 SOLID原则工具安装自动检测插件,例如阿里巴巴集团规范静态检测每日常规集成,自动检测人为review关注点内存相关清理操作页面退出时,是否完成必要的清理操作是否调用Handler的removeCallbacksAndMessages(null)来清空Handler里的消息;是否取消了...

2019-06-12 19:37:21 856

原创 Android内存优化常规思路

背景App开发中随着业务迭代,功能的增加,内存逐步上涨,为了保证平稳运行,减少内存占用过多衍生的卡顿、响应慢等用户体验问题,甚至内存溢出、ANR等稳定性问题本文就内存优化实践过程,总结一下常规的优化手段。优化思路了解现状通过当前压测结果,切入业务进行了解,借助工具分析内存占用情况(MAT或Memory Profiler)注意,一定要运用数据来说明现状问题,后续也通过数据来验证优化效果。...

2019-03-15 17:17:26 240

原创 Andorid App启动速度问题和优化思路

背景App启动速度是衡量一个App性能是否优秀的必要指标,在CPU、内存以及IO的限制下,启动问题显得尤为严重。一般问题1.启动界面卡太久2.进入首页白屏实用工具TraceView分阶段排查,找出各个占用CPU的耗时点。注意点:整体的Trace,观察整个时间段情况。找出明显点耗时。分小段,多次。因为时间过长容易把耗时占比高的稀释掉。加上线程启动时间差等叠加原因都会对性能产生影...

2019-03-12 19:12:00 263

原创 Protocol Buffers

Protocol Buffershttps://developers.google.com/protocol-buffers/Protocol buffers是什么Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。想象一下XML,但更小,更快和更简单。Protocol b...

2018-06-07 20:55:58 574

原创 Android App Bundles

简而言之,可以理解Google 官方的动态发布方案WHAT好处Size更小 Google has claimed that it can reduce app sizes up to 50 percent Its own apps like YouTube and other apps like LinkedIn which saw a 23% file reductio...

2018-05-11 11:04:40 4600 1

转载 [广州] 阿里移动事业群(UC)-国际业务线 内推 前端/算法 大牛攻城狮!

[广州] 阿里移动事业群(UC)-国际业务线 内推 前端/算法 大牛攻城狮!前端大牛: 岗位描述: 1.参与项目的前端架构设计,编写合理的设计方案 2.参与项目的编码,按照产品需求和技术需求实现,保障产品高效稳定运行 岗位要求: 1. 精通 JavaScript 、 CSS 、 HTML 语义化标签 2. 熟练掌握 jQuery 、 lodash 等常用辅助库 3. 熟练

2016-12-13 01:57:40 960

Android基础教程扫描版.pdf

Android基础教程扫描版.pdf 适合入门

2012-03-04

几个html5网站代码

几个html5网站代码模板,仅供参考学习

2012-02-08

个人博客系统项目毕业设计(代码及论文)

利用java写的个人博客系统项目毕业设计(代码及论文)

2012-02-08

java的核心技术:面向对象编程

java的核心技术:面向对象编程 基础入门教程

2011-10-19

jdk1.5的泛型实现

关于泛型的理解,深入,有助于深入理解java

2011-10-19

关于Spring的一点资料

关于spring的基本书籍资料,希望有帮助

2011-10-19

JAVA 5.0 TIGER程序高手秘笈

java高手秘笈详细讲解了java底层的一点事 StringBuilder Generic的使用 Enum的创建,使用和如何用它来设计程序 enumerated类型牵涉到的三个基本组件 enum关键字 新类型的名称 此类型所允许的各个值 enum能够使你摆脱大部分的public static final变量声明 Autoboxing 和Unboxing vararge 可变参数 类型...数组名 Annotation @Override @Deprecated for/in 静态的import 格式化 Formatter Thread

2011-10-18

android开发使用例子

/** * 为程序创建桌面快捷方式 */ private void addShortcut(){ Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); //快捷方式的名称 shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name)); shortcut.putExtra("duplicate", false); //不允许重复创建 //指定当前的Activity为快捷方式启动的对象: 如 //com.everest.video.VideoPlayer //注意: ComponentName的第二个参数必须加上点号(.),否则快捷方式无法启动相应程序 ComponentName comp = new ComponentName(this.getPackageName(), "."+this.getLocalClassName()); shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp)); //快捷方式的图标 ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.icon); shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes); sendBroadcast(shortcut); } /** * 删除程序的快捷方式 */ private void delShortcut(){ Intent shortcut = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT"); //快捷方式的名称 shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name)); //指定当前的Activity为快捷方式启动的对象: 如 //com.everest.video.VideoPlayer //注意: ComponentName的第二个参数必须是完整的类名(包名+类名),否则无法删除快捷方式 String appClass = this.getPackageName() + "." +this.getLocalClassName(); ComponentName comp = new ComponentName(this.getPackageName(), appClass); shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp)); sendBroadcast(shortcut); } 全屏显示 this.requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 横竖屏显示 private void changedScreen(){ int request = this.getRequestedOrientation(); if(request == -1){ Toast.makeText(TaskRunActivity.this, "None 1", Toast.LENGTH_SHORT).show(); }else{ if(getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){ this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); }else if(getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){ this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } } } 获取手机分辩率 DisplayMetrics dm = new DisplayMetrics(); this.getWindowManager().getDefaultDisplay().getMetrics(dm); int width = dm.widthPixels; int height = dm.heightPixels; 图形用户界面 文本框(TextView) 列表(ListView) 卷轴视图(ScrollView) 编辑框(EditText) 按钮(Button) 下载列表(Spinner) 多项选择(CheckBok) 图形用户界面 菜单(Menu) 提示(toast) 对话框(Dialog) 日期(DatePicker) 时间(TimePicker) 单项选择(RadioGroup RadioButton) 图形用户界面 线性布局(LinearLayout) 相对布局(RelativeLayout) 绝对布局(AbsoluteLayout) 表格布局(TableLayout) 数据据存储 系统偏好 文件 网络 数据库 显示网页: 1. Uri uri = Uri.parse("http://www.google.com"); 2. Intent it = new Intent(Intent.ACTION_VIEW,uri); 3. startActivity(it); 显示地图: 1. Uri uri = Uri.parse("geo:38.899533,-77.036476"); 2. Intent it = new Intent(Intent.Action_VIEW,uri); 3. startActivity(it); 路径规划: 1. Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en"); 2. Intent it = new Intent(Intent.ACTION_VIEW,URI); 3. startActivity(it); 拨打电话: 调用拨号程序 1. Uri uri = Uri.parse("tel:xxxxxx"); 2. Intent it = new Intent(Intent.ACTION_DIAL, uri); 3. startActivity(it); 1. Uri uri = Uri.parse("tel.xxxxxx"); 2. Intent it =new Intent(Intent.ACTION_CALL,uri); 3. 要使用这个必须在配置文件中加入<uses-permission id="Android.permission.CALL_PHONE" /> 发送SMS/MMS 调用发送短信的程序 1. Intent it = new Intent(Intent.ACTION_VIEW); 2. it.putExtra("sms_body", "The SMS text"); 3. it.setType("vnd.android-dir/mms-sms"); 4. startActivity(it); 发送短信 1. Uri uri = Uri.parse("smsto:0800000123"); 2. Intent it = new Intent(Intent.ACTION_SENDTO, uri); 3. it.putExtra("sms_body", "The SMS text"); 4. startActivity(it); 发送彩信 1. Uri uri = Uri.parse("content://media/external/images/media/23"); 2. Intent it = new Intent(Intent.ACTION_SEND); 3. it.putExtra("sms_body", "some text"); 4. it.putExtra(Intent.EXTRA_STREAM, uri); 5. it.setType("image/png"); 6. startActivity(it); 发送Email 1. 2. Uri uri = Uri.parse("mailto:xxx@abc.com"); 3. Intent it = new Intent(Intent.ACTION_SENDTO, uri); 4. startActivity(it); 1. Intent it = new Intent(Intent.ACTION_SEND); 2. it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com"); 3. it.putExtra(Intent.EXTRA_TEXT, "The email body text"); 4. it.setType("text/plain"); 5. startActivity(Intent.createChooser(it, "Choose Email Client")); 1. Intent it=new Intent(Intent.ACTION_SEND); 2. String[] tos={"me@abc.com"}; 3. String[] ccs={"you@abc.com"}; 4. it.putExtra(Intent.EXTRA_EMAIL, tos); 5. it.putExtra(Intent.EXTRA_CC, ccs); 6. it.putExtra(Intent.EXTRA_TEXT, "The email body text"); 7. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text"); 8. it.setType("message/rfc822"); 9. startActivity(Intent.createChooser(it, "Choose Email Client")); 添加附件 1. Intent it = new Intent(Intent.ACTION_SEND); 2. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text"); 3. it.putExtra(Intent.EXTRA_STREAM, "[url=]file:///sdcard/mysong.mp3[/url]"); 4. sendIntent.setType("audio/mp3"); 5. startActivity(Intent.createChooser(it, "Choose Email Client")); 播放多媒体 1. 2. Intent it = new Intent(Intent.ACTION_VIEW); 3. Uri uri = Uri.parse("[url=]file:///sdcard/song.mp3[/url]"); 4. it.setDataAndType(uri, "audio/mp3"); 5. startActivity(it); 1. Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1"); 2. Intent it = new Intent(Intent.ACTION_VIEW, uri); 3. startActivity(it); Uninstall 程序 1. Uri uri = Uri.fromParts("package", strPackageName, null); 2. Intent it = new Intent(Intent.ACTION_DELETE, uri); 3. startActivity(it); //调用相册 public static final String MIME_TYPE_IMAGE_JPEG = "image/*"; public static final int ACTIVITY_GET_IMAGE = 0; Intent getImage = new Intent(Intent.ACTION_GET_CONTENT); getImage.addCategory(Intent.CATEGORY_OPENABLE); getImage.setType(MIME_TYPE_IMAGE_JPEG); startActivityForResult(getImage, ACTIVITY_GET_IMAGE); //调用系统相机应用程序,并存储拍下来的照片 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); time = Calendar.getInstance().getTimeInMillis(); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment .getExternalStorageDirectory().getAbsolutePath()+"/tucue", time + ".jpg"))); startActivityForResult(intent, ACTIVITY_GET_CAMERA_IMAGE); uninstall apk Uri uninstallUri = Uri.fromParts("package", "xxx", null); returnIt = new Intent(Intent.ACTION_DELETE, uninstallUri); install apk Uri installUri = Uri.fromParts("package", "xxx", null); returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri); play audio Uri playUri = Uri.parse("[url=]file:///sdcard/download/everything.mp3[/url]"); returnIt = new Intent(Intent.ACTION_VIEW, playUri); //发送附件 Intent it = new Intent(Intent.ACTION_SEND); it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text"); it.putExtra(Intent.EXTRA_STREAM, "[url=]file:///sdcard/eoe.mp3[/url]"); sendIntent.setType("audio/mp3"); startActivity(Intent.createChooser(it, "Choose Email Client")); //搜索应用 Uri uri = Uri.parse("market://search?q=pname:pkg_name"); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); //where pkg_name is the full package path for an application //进入联系人页面 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(People.CONTENT_URI); startActivity(intent); //查看指定联系人 Uri personUri = ContentUris.withAppendedId(People.CONTENT_URI, info.id);//info.id联系人ID Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(personUri); startActivity(intent); 在进行Android开发的过程中,免不了,要开发TCP/UDP通讯的程序,下面这两段代码,分别介绍了TCP/UCP通过的一个实例: 代码一: private void tcpdata() { try { Socket s = new Socket("192.168.0.25", 65500); // outgoing stream redirect to socket OutputStream out = s.getOutputStream(); // 注意第二个参数据为true将会自动flush,否则需要需要手动操作out.flush() PrintWriter output = new PrintWriter(out, true); output.println("Hello IdeasAndroid! 伪IP为:" + SIMCardToIP("13512345006")); InputStream inputStream = s.getInputStream(); DataInputStream input = new DataInputStream(inputStream); byte[] b = new byte[10000]; int length = input.read(b); inputReader = new InputStreamReader(inputStream); String Msg = new String(b, 0, length, "gb2312"); Toast.makeText(TcpTest.this, Msg, 1000).show(); Log.d("Tcp Demo", "message From Server:" + Msg); s.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } 下面的代码是UDP通讯的过程: public String send(String msg) { StringBuilder sb = new StringBuilder(); InetAddress local = null; try { local = InetAddress.getByName("192.168.0.25"); // 本机测试 } catch (UnknownHostException e) { e.printStackTrace(); } try { dSocket = new DatagramSocket(); // 注意此处要先在配置文件里设置权限,否则会抛权限不足的异常 } catch (SocketException e) { e.printStackTrace(); } int msg_len = msg == null ? 0 : msg.length(); DatagramPacket dPacket = new DatagramPacket(msg.getBytes(), msg_len, local, SERVER_PORT); try { dSocket.send(dPacket); } catch (IOException e) { e.printStackTrace(); } try { dSocket.receive(dPacket); sb.append(new String(dPacket.getData())); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } dSocket.close(); return sb.toString(); }

2011-08-29

Android学习讲义各大学全收录系列下载列表

Android学习讲义各大学全收录系列下载列表

2011-08-28

java网络编程入门书籍

关于java 方面 的网络编程,适合入门者

2011-08-24

EclipseMe中文文档

一本用于javaMe开发的实用手册,里边图文并茂介绍了不少实用性操作,适合新老开发者

2011-08-18

设计模式——java语言中的应用

关于设计模式的入门资料,java语言的通俗应用

2011-08-17

公司访客登记系统(JavaBean+Servlet+MySql)

题目:公司访客登记系统 1、系统介绍:公司访客登记系统可以用来随时记录来访者信息,并能进行查询和统计功能。 2、系统功能性需求: 系统要操作简单方便,让公司内部的所有人都可以使用。大致功能如下: 1) 添加客户信息 2) 修改客户信息 3) 删除客户信息 4) 检索查询客户信息 5) 具有分类统计功能。

2011-06-03

JuSNS聚网社区管理系统 v2.0.5 源码版

JuSNS聚网社区管理系统 v2.0.5 源码版

2010-12-04

c数据结构算法,含有基本的数据结构算法

有关c的多种算法 大部分是属于基础的数据结构 适合刚入门的菜鸟

2010-05-18

空空如也

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

TA关注的人

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