- 博客(231)
- 收藏
- 关注
原创 【ChatGPT】通过 ChatGPT 用文字描述来绘制插画
点击上方“独立开发者杂谈”喜欢本文,请置顶或星标使用文字描述绘制插画具有以下好处无需绘画技巧,体验与AI结合,创意灵活性,节省时间。使用 Figma 工具Figma(https://www.figma.com)是一款流行的设计工具。只需要添加 Dall-E Mini 插件,输入关键词就能绘制图片。Dall-E Mini是一个 Figma 插件,它允许你通过描述文本直接在 Figma 中生成插画。...
2023-03-30 21:18:02
5984
原创 【杂谈第38期】独立开发者是否需要写产品文档
点击上方“独立开发者杂谈”喜欢本文,请置顶或星标独立开发者是否需要写产品文档在 《【杂谈第37期】用三句话了解BRD、MRD和PRD文档》这篇文章中已经介绍过,从市场到产品需要建立文档规...
2021-03-26 09:00:00
361
2
原创 【杂谈第37期】用三句话了解BRD、MRD和PRD文档
点击上方“独立开发者杂谈”喜欢本文,请置顶或星标为什么要谈BRD、MRD和PRD文档一般来说做成一个产品需要经过BRD、MRD和PRD三个文档,它们被认为是从市场到产品需要建立的文档规范。...
2021-03-24 08:00:00
531
原创 独立开发者如何快速从 0 到 1 设计一款 App 的 Logo
点击上方“独立开发者杂谈”喜欢本文,请置顶或星标,点个赞只需要以下三步和简单的 Sketch 制作,就可以很快速的完成从 0 到 1 设计一款 App 的 Logo 。联想一些描述 App...
2021-03-20 11:39:46
282
原创 【Flutter】Github 时断时续 Flutter 开发如何设置镜像
点击上方“独立开发者杂谈”喜欢本文,请置顶或星标最近一些国外的资源网站又开始时断时续,例如Github,甚至在海外搭建的个人 VPN 服务器都无法使用。这篇文章就介绍在这种情况下如何保证...
2021-03-19 21:06:23
983
原创 独立开发者如何快速从 0 到 1 设计一款 App 的 Logo —— 绘制图形
点击上方“独立开发者杂谈”喜欢本文,请置顶或星标快速制作简单的 IconIcon 通常就是一些图形和颜色组成。这篇文章介绍 Sketch 中重点的绘制图形的方法,只要掌握了,就能快速的制...
2021-03-18 15:47:19
230
原创 【工具】免费的 Mac 电脑录屏方式(支持 M1 芯片)
点击上方“独立开发者杂谈”喜欢本文,请置顶或星标QuickTime+BlackHole方式录屏Mac 电脑可以直接使用内置的 QuickTime 进行屏幕录制,如果需要录制带声音的视...
2021-03-16 15:00:35
2707
2
原创 独立开发者如何快速从 0 到 1 设计一款 App 的 Logo —— 配置 Sketch 工具
点击上方“独立开发者杂谈”喜欢本文,请置顶或星标安装 Sketch简单的设计一款 App 的 Logo 或者 Icon 只需要使用一个 Sketch 工具就够了。破解版网站地址:https...
2021-03-13 16:36:37
365
转载 Android 文本编辑中基准线的详细解释
1.基准点是baseline 2.ascent:是baseline之上至字符最高处的距离 3.descent:是baseline之下至字符最低处的距离 4.leading:是上一行字符的descent到下一行的ascent之间的距离,也就是相邻行间的空白距离 5.top:是指的是最高字符到baseline的值,即ascent的最大值 6.bottom:是指最低字符到baseline的值,即
2015-12-04 15:12:18
2231
转载 视频流传输协议RTP/RTCP/RTSP/HTTP的区别
用一句简单的话总结:RTSP发起/终结流媒体、RTP传输流媒体数据 、RTCP对RTP进行控制,同步。 之所以以前对这几个有点分不清,是因为CTC标准里没有对RTCP进行要求,因此在标准RTSP的代码中没有看到相关的部分。而在私有RTSP的代码中,有关控制、同步等,是在RTP Header中做扩展定义实现的。 另外,RFC3550可以看作是RFC1889的升级文档,只看RFC3550即可。 R
2015-08-22 16:01:51
4705
转载 10个学习Android开发的网站推荐
1. Android Developers作为一个Android开发者,官网的资料当然不可错过,从设计,培训,指南,文档,都不应该错过,在以后的学习过程中慢慢理解体会。2. Android Guides - CodePathCodePath是国外一个技术培训机构,主要培训iOS 和Android开发,而CodePath将Android Guides放在Githu
2015-02-26 10:29:17
11850
6
转载 Android性能优化典范
2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个方面展开,Android的渲染机制,内存与GC,电量优化。下面是对这些问题和建议的总结梳理。
2015-01-31 14:02:14
1076
转载 Android 手动显示和隐藏软键盘
1、方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示)InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
2014-11-30 13:37:01
938
转载 Android搜索框架
Android是google的产品,所以自然是少不了搜索。先看看Android一些应用中的搜索对话框。 图1 Android中的全局搜索 图2 联系人搜索 图3 音乐搜索以上都是通过按下实体键盘上的搜索按钮弹出的一个搜索对话框,当然搜索关键词提示是少不了的。如何实现呢?慢慢来!呵呵。一、配置搜索描述文件在res中的xml文件加创建srea
2014-11-29 14:11:07
1315
转载 Android 4.0源码目录结构
Android 4.0|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build (存放系统编译规则及generic等基础开发包配置)|-- cts (Android兼容性测试套件标准)|-- dalvik (dalvik JAVA虚拟机)|-- development (应用程序开发相关)|
2014-10-29 11:26:21
2177
转载 android xml 解析 修改
解析在Android中提供了三种解析XML的方式:SAX(Simple API XML),DOM(Document Objrect Model),以及Android推荐的Pull解析方式.下面就对三种解析方式一一详细阐述。假设要要解析person.xml文档 zhangsan 21 lisi 22
2014-09-22 14:29:12
9379
转载 Android 计算控件尺寸
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final ImageView imageView = (ImageView) findV
2014-08-19 14:57:53
2839
原创 透明背景dialog
Dialog alertDialog = new Dialog(this); alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); alertDialog.setContentView(R.layout.tabs); alertDialog.getWindow().setBackgrou
2014-08-14 10:37:56
884
转载 中文拼音简单排序
// 数字和字母 class sortNumAndChar implements Comparator { public int compare(Object o1, Object o2) { // TODO Auto-generated method stub String ostr1 = "
2014-07-18 00:41:20
980
翻译 HTTP长连接
What is HTTP Persistent Connections?HTTP persistent connections, also called HTTP keep-alive, or HTTP connection reuse, is the idea of using the same TCP connection to send and receive multiple HTTP
2014-07-07 22:35:13
1299
转载 Android中利用ant进行多渠道循环批量打包
目前国内的安卓渠道有几百家,我们要根据不同的渠道打不同渠道的apk来统计每个渠道带来的用户数,统计每个渠道用户的存活率和活跃度等等信息,但是手动对每个渠道的APK进行签名打包实在是让人感到厌烦且低效,这时我们需要一个全自动化的打包工具----ant。Android SDK的tools中已经包括了ant的打包工具,那么我们该如何运用它达到我们的要求呢?之前卤煮做这块的时候也参考了很多前辈的文章,首先
2014-06-28 23:34:51
3950
1
转载 两种简单的方式快速实现hashCode 和 equals方法
我们在写domain model类, 有时候需要重写hashCode和equals,以便可以把这个类当成List或者Map的Key来用。 有两种方法可以很方便地去帮我们实现:1. 使用eclipse工具。右击代码->Source->Generate hashCode and equals()... eclispe会根据你的model类里面的属性,帮你生成hash
2014-06-11 22:14:48
4282
1
转载 greenDAO简单使用经验
最近在对开发项目的性能进行优化。由于项目里涉及了大量的缓存处理和数据库运用,需要对数据库进行频繁的读写、查询等操作。因此首先想到了对整个项目的数据库框架进行优化。原先使用android本身内置的sqllite,也就是用的最基本的SQLiteOpenHelper方法,这种方法对自己来说比较方便易懂。但是在使用过程中感觉很繁琐,从建表到对表的增删改查等操作,如果表对象的属性很多,就需要使用大量的代
2014-06-11 22:14:22
38956
8
转载 Lock和Synchronized简介
1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断 如果 使用ReentrantLock,如果A不释放,可以使B在等待了足够长的时间
2014-06-06 15:55:47
852
转载 android-包签名
android-包签名应用能在Android 系统上安装必须是经过有私有key的证书数据签名。Android系统通过证书确定应用的作者,和与应用建立信任关系。证书不会用于控制应用的安装。证书不需要权威机构签名:它是非常完美和标准。关于签名的一些重要点:所有的应用必须签名(android 有默认签名)。测试和调试应用,构建工具用指定的调试密钥(an
2014-06-01 23:32:58
1323
转载 android ant多渠道混淆打包
一,运行环境win7+ant+eclipse+jdk1.6ant打包可以直接在eclipse中直接右键build.xml文件运行,也可以在控制台切换到项目所在目录,执行命令ant。两个的效果是一样的。但是在调试时,推荐使用eclipse右键运行。因为可以查看到完整日志,控制台下看不到完成日志,不利于错误的查找。稳定后可以使用控制台方式。如果eclipse看不到完整日志的时候,可以调
2014-05-31 23:55:09
2645
转载 adb常用命令教程
1.Android Debug Bridge1.1简介Android Debug Bridge,我们一般简称为adb,主要存放在sdk安装目录下的platform-tools文件夹中,它是一个非常强大的命令行工具,通过这个工具你能够与你的android设备进行交互。同时这是一个包含了以下三部分的cs模式的程序:1) adb client 从图中,我们知道c
2014-05-20 00:04:57
15187
转载 使用Ant制作发布版本
2 android2.1 查看机器上所有已经安装的Android版本和AVD设备2.1.1查看机器上已经安装的AVD(Android Virtual Device)设备通过下面的命令我们可以查看机器上安装了的所有的AVD:android list avd终端执行结果:从图中我们可以看到,在我的机器上总共建立了两个avd,其中一个是2.3.
2014-05-20 00:00:01
887
转载 Android ant 自动打包脚本:自动替换友盟渠道、版本号、包名
Ant程序的开发中,ant格式的文件作为其运行的脚本,xml脚本文件中的每个元素都代表一个动作,ant脚本文件,ant项目的来源,某个下午,公司经过两个月的bug都已经处理,版本的发布也到了最后期限,在查看了所有已经修改的bug中的最新内容复制到发布分支中(关于svn的使用,以后会写出来)。程序打包前的准备工作已经完毕,作者向技术总监提出,可以制作发布版本了。技术总监便开始打包,下面是打包的步骤:
2014-05-19 23:47:31
3098
1
转载 实现一个基于优先级的Executor类
实现一个基于优先级的Executor类在Java并发API的第一个版本中,你必须创建和运行应用程序中的所有线程。在Java版本5中,随着执行者框架(Executor framework)的出现,对于并发任务的执行,一个新的机制被引进。使用执行者框架(Executor framework),你只要实现你的任务并把它们提交给执行者。这个执行者负责执行你的任务的线程的创建和执行。
2014-05-18 13:59:33
907
转载 BlockingQueue、PriorityBlockingQueue
一、概述:BlockingQueue作为线程容器,可以为线程同步提供有力的保障。二、BlockingQueue定义的常用方法1.BlockingQueue定义的常用方法如下: 抛出异常特殊值阻塞超时插入add(e)offer(e)put(e)offer(e, time, unit)
2014-05-18 13:58:47
13546
转载 Eclipse中设置方法注释模板并使用方法注释
设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。现就每一个元素逐一介绍:文件(Files)注释标签:/** * @Title: ${file_name} * @Package ${package_name} * @Description:
2014-05-16 15:07:06
15389
转载 Android 资源文件中@、@android:type、@*、?、@+含义和区别
Android 资源文件中@、@android:type、@*、?、@+含义和区别一.@代表引用资源1.引用自定义资源。格式:@[package:]type/nameandroid:text="@string/hello" 2.引用系统资源。格式:@android:type/name android:textColor="@android:c
2014-04-01 15:13:45
1119
转载 手动利用ant打包android项目
方法1:大家好,今天来分享一下如何使用ANT打包Android应用。通常我们习惯用eclipse来开发Android程序,它会自动帮我们打包当前的应用程序。如果在Navigator视图下,我们可以看到以下几个文件:在上图中,com包放置的是我们的class文件,classes.dex是class文件经过转换后的可以在dalvik上跑的精简类文件,reso
2014-03-23 19:12:26
4831
1
转载 博客收集
Android开源项目: http://www.trinea.cn/android/android-open-source-projects-view/
2014-02-28 11:37:43
846
转载 Android应用签名
为了要签名? 开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的。 由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,签名可以保证相当名字,但是签名不同的包不被替换。 APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安
2014-02-13 23:08:31
4548
转载 为ContentProvider添加数据库事务支持
介绍:数据库事务是由一组数据库操作序列组成,事务作为一个整体被执行。事务的原子性:包含在其中的对数据库的操作序列最终要么全部执行,要么全部不执行。当全部执行时,事务对数据库的修改将生效;当全部不执行时,数据库维持原有的状态,不会被修改。问题:最近在做一个从sdcard导入数据到数据库的功能,当导入失败时,数据库要恢复到导入前的状态。使用数据库事务处理能很好地满足到我们的需求。
2014-02-05 15:08:13
793
转载 调试程序小技巧
介绍:在开发的过程中我们经常需要调试程序的执行路径,如我们想知道一个Activity的生命周期方法的调用顺序,我们可能会写如下代码:view plain..... public void onResume() { super.onResume(); Log.d("Tag","onResume()"); } public void onStart
2014-02-05 15:07:36
784
转载 简析 addToBackStack使用和Fragment执行流程
在使用Fragment的时候我们一般会这样写: FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.content_view, fragment, fragment.getClass().getNa
2014-02-04 22:20:04
4735
转载 ThreadPoolExecutor使用和思考
工作中多处接触到了ThreadPoolExecutor。趁着现在还算空,学习总结一下。 前记: jdk官方文档(javadoc)是学习的最好,最权威的参考。文章分上中下。上篇中主要介绍ThreadPoolExecutor接受任务相关的两方面入参的意义和区别,池大小参数corePoolSize和maximumPoolSize,BlockingQueue选型(Synch
2014-01-18 22:06:13
821
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人