tag 标签: app

相关博文
  • 热度 2
    2023-10-10 08:14
    1084 次阅读|
    0 个评论
    App Inventor是一个完全在线开发的Android编程环境,它由Google实验室(Google Lab)创建并曾移交给麻省理工学院行动学习中心。它使用积木式的堆叠法来编写Android程序,这种方法简化了编程过程,降低了学习门槛,使得Android初学者或是机器人开发者可以更方便地创建应用程序。 App Inventor在设计和开发应用程序时,使用浏览器作为开发工具,用户首先可以设计程序的外观,然后设定程序的行为,最后通过连接手机与电脑,就可以在手机上看到刚开发的应用程序。 App Inventor是一个由麻省理工学院(MIT)媒体实验室开发的开源软件,它提供了一个基于图形化编程的软件开发环境,使得开发者可以通过拖拽和堆叠积木块的方式进行应用程序的开发。 App Inventor具有以下几个重要的特点: 图形化编程:App Inventor使用图形化的方式进行编程,开发者可以通过拖拽各种积木块来构建程序,这种方式简单易学,即使没有编程基础的人也可以快速上手。 多语言支持:App Inventor支持多种编程语言,包括Java、JavaScript、Python等,用户可以选择自己熟悉的语言进行开发。 在线开发:App Inventor是一个在线开发环境,用户可以在浏览器中直接进行应用程序的开发和调试,无需安装任何软件,只要有互联网连接即可。 支持多种设备:App Inventor支持Android和iOS平台,可以开发各种类型的应用程序,包括手机应用程序、平板应用程序、桌面应用程序等。 开源软件:App Inventor是一个开源软件,用户可以自由获取源代码并进行二次开发,同时也可以参与社区的讨论和贡献。 总之,App Inventor是一个简单易学、功能强大的应用程序开发工具,适合于初学者和有一定编程经验的人使用。
  • 2022-8-31 13:03
    0 个评论
    推特GIF动图的免费保存到手机相册方法!实锤亲测!建议收藏!
    前几天宅在家里闲着没事干,打开手机应用商店发现一个 app可以保存推特动图,名为光影存图,安卓和苹果都可以使用!! 当时看着还不错,我就尝试着用了一下,诶!还真的可以! ①打开推特,选择你要的GIF,点击右下角分享按钮,复制链接, 再打开光影存图(给你们看看光影存图,这玩意儿长这样哒) ②点击下方【存】,粘贴链接到白色的框里,再点击获取素材,等待下载 ③下载完成后打开手机相册,这时候会发现它是视频的格式,不要灰心 ④接下来我们再打开光影存图,点击下方“编辑”,找到“视频转GIF”选择刚刚保存的视频,点击“选取” ⑤等待保存后,打开相册就可以看见啦 真的很简单,关键是这个 .<~ Ps小贴士:在app里的“存”这个页面有个《下载常见问题》,遇到问题的用户可以直接点进去了解一下,或者联系app里的客服就可以了
  • 热度 25
    2022-1-18 18:06
    1692 次阅读|
    0 个评论
    Android之WebView用法
    除了 HTTP 通信与 Socket 通信两种主要的网络技术外,在 Android 中还提供了一种加载和显示网页的技术 —WebView 。这可以让我们去处理一些特殊的需求,比如像微信那样在应用程序里展示网页,或者说使用 WebView 来为 UI 界面布局。 WebView 的基本使用 WebView 的使用非常简单,新建一个项目 internet ,修改 activity _ main.xml 中的代码,加入一个 WebView 控件。 WebView 控件是一个新的控件,用于显示网页,为了可以在 Activity 中获取 WebView 而设置了 id ,代码如下 ∶
  • 热度 32
    2021-12-24 14:38
    2260 次阅读|
    0 个评论
    Android之本地广播的使用
    前面我们发送和接收的广播全部属于系统全局广播,即发出的广播可以被其他任何应用程序接收到,并且我们也可以接收来自于其他任何应用程序的广播。这样就很容易会引起安全性的问题,比如说我们发送的一些携带关键性数据的广播有可能被其他的应用程序截获或者其他的程序不停地向我们的广播接收器里发送各种垃圾广播。 为了能够简单地解决广播的安全性问题, Android 引入了一套本地广播机制,使用这个机制发出的广播只能够在应用程序的内部进行传递,并且广播接收器也只能接收来自本应用程序发出的广播,这样所有的安全性问题就都不存在了。另外,发送本地广播比起发送系统全局广播效率更高。 本地广播的用法并不复杂,主要就是使用了一个 LocalBroadcastManager 来对广播进行管理,并提供了发送广播和注册广播接收器的方法。下面我们就通过具体的实例来演示它的用法。 新建一个 CustomReceive 类继承自 BroadcastReceiver ,并重写 onReceive() 方法,代码如下: package com.rfstar.localbroadcasttest; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.widget.Toast; public class CustomReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //获取传递的参数 Bundle bundle=intent.getBundleExtra("data"); String name=bundle.getString("name"); String field=bundle.getString("field"); Toast.makeText(context,"在broadcast应用中接收到广播:"+"接收的广播数据为,名称:"+name+",领域:"+field, Toast.LENGTH_LONG).show(); } } MainActivity代码如下: package com.rfstar.localbroadcasttest; import androidx.appcompat.app.AppCompatActivity; import androidx.localbroadcastmanager.content.LocalBroadcastManager; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { private LocalBroadcastManager localBroadcastManager; private CustomReceiver customReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); localBroadcastManager=LocalBroadcastManager.getInstance(this); Button send=(Button)findViewById(R.id.send); send.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //建立一个意图,action为com.rfstar.action.NORMAL_BROADCAST Intent intent=new Intent("com.rfstar.action.NORMAL_BROADCAST"); Bundle bundle=new Bundle(); bundle.putString("name","大鸟科创空间"); bundle.putString("field","科技"); //向意图中加入数据 intent.putExtra("data",bundle); //发送广播,普通广播 localBroadcastManager.sendBroadcast(intent); } }); IntentFilter intentFilter=new IntentFilter(); intentFilter.addAction("com.rfstar.action.NORMAL_BROADCAST"); customReceiver=new CustomReceiver(); localBroadcastManager.registerReceiver(customReceiver,intentFilter); } @Override protected void onDestroy() { super.onDestroy(); localBroadcastManager.unregisterReceiver(customReceiver); } } MainActivity对应的布局文件代码如下,创建一个发送广播的Button按钮。
  • 热度 32
    2021-12-15 12:50
    1913 次阅读|
    0 个评论
    自定义广播实例
    我们应该已经学会了通过广播接收者来接收系统广播的内容,但是在 实际 开发中,仍需要自定义一些广播。 下面 我们就来讲解如何在应用程序中发送自定义的广播。 发送广播很简单,只需要声明一个意图,然后使用 Context.sendBroadcast () 方法发送意图即可。这里在布局文件中加入一个 Button 按钮来触发发送广播的事件 ,activity_main.xml 代码如下:
相关资源
  • 所需E币: 0
    时间: 2023-12-1 16:19
    大小: 3.49KB
    实际搭建流程:下载鸿蒙源码→docker拉取镜像→创建容器→进入容器→下载hb编译工具(也可使用build.sh、build.py脚本编译,但是不如hb辅助工具指令好用)→编译(内核、芯片厂商的uboot、系统镜像...)1.准备开发环境:首先,您需要设置用于鸿蒙应用程序开发的开发环境。2.学习鸿蒙应用程序开发:了解鸿蒙应用程序开发的基础知识,包括鸿蒙应用程序的架构、UI设计和鸿蒙系统的特性。3.开发应用程序:使用鸿蒙开发工具,开始编写您的应用程序代码。您可以创建各种类型的应用程序,包括手机应用、平板电脑应用、电视应用、手表应用等。4.设计用户界面:使用鸿蒙的UI组件和工具,设计用户界面。鸿蒙提供了一套UI框架,可以帮助您创建吸引人的用户界面。5.数据处理和功能开发:根据您的应用程序需求,编写数据处理逻辑和应用程序功能。鸿蒙支持多种编程语言,包括Java、C、C++和JS。6.测试和调试:在真机或模拟器上测试您的应用程序,以确保它正常运行。鸿蒙提供了调试工具,以帮助您发现和解决问题。7.发布应用程序:一旦应用程序准备就绪,您可以将其发布到鸿蒙应用程序商店或其他应用程序分发渠道。8.更新和维护:定期更新和维护您的应用程序,以确保它与鸿蒙系统的最新版本兼容,并提供新功能和修复问题。使用store.commit方法来调用:store.commit('事件类型/函数名'),代码片段如下所示:1)在Vue中调用mutations:exportconststore=createStore({   //...   mutations:{   setCount(state,payload){   state.count+=payload   returnstate.count   }   }   //...  })action中可以通过提交**mutation**来修改状态,不直接修改状态action中可以做一些异步操作提供一个上下文,可以直接使用commit、state、getters等,代码片段如下所示:exportconststore=createStore({   //...   actions:{   fetchCount({commit,state,getters},payload){//{commit,state,getters}为上下文   setTimeout(()=>{   commit('setCount',5)   console.log(state.count)   console.log(getters.getCount)   },3000);   }   }  })getter类似与Vue中的computed计算属性,它的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算getters里可以处理一些array、object的查询、过滤、遍历、重构或者做一些字符拼接的操作,方便直接生成一些可以直接使用的数据。如下代码片段展示了如何在getter中进行过滤查询:exportconststore=createStore({   state:{   todos:[  //定义一个对象数组   {   id:1,   done:true   },   {   id:2,   done:false   }   ]   }   getters:{   doneTodosCount(){ //查询已完成的个数   returnstore.state.todos.filter(todo=>todo.done).length //返回值:1   }   }  })首先使用Typescript的interface为store中的所有state声明类型,然后将interface放置在InjectionKeyd的泛型类型中,代码片段如下://src/store/index.tsimport{createStore,Store}from'vuex'import{InjectionKey}from'vue'//为storestate声明类型exportinterfaceAllStateTypes{ count:number, locale:any, userStatus:Number}//定义injectionkeyexportconstkey:InjectionKey<Store<AllStateTypes>>=Symbol('storeKey')exportconststore=createStore<AllStateTypes>({ //...})我们使用Nodejs框架Express来快速搭建一个后端服务,首选需要安装一下Express,在终端运行npminstallexpress--save-dev,Vite官方提供一个基于服务端渲染的NodeServer模板,代码片段如下://server.jsconstfs=require('fs')constpath=require('path')constexpress=require('express')const{createServer:createViteServer}=require('vite')asyncfunctioncreateServer(){ constapp=express() //以中间件模式创建Vite应用,这将禁用Vite自身的HTML服务逻辑 //并让上级服务器接管控制 // //如果你想使用Vite自己的HTML服务逻辑(将Vite作为 //一个开发中间件来使用),那么这里请用'html' constvite=awaitcreateViteServer({  server:{middlewareMode:'ssr'} }) //使用vite的Connect实例作为中间件 app.use(vite.middlewares) app.use('*',async(req,res)=>{  consturl=req.originalUrl  try{   //1.读取index.html   lettemplate=fs.readFileSync(    path.resolve(__dirname,'index.html'),    'utf-8'   )   //2.应用ViteHTML转换。这将会注入ViteHMR客户端,   //  同时也会从Vite插件应用HTML转换。   //  例如:@vitejs/plugin-react-refresh中的globalpreambles   template=awaitvite.transformIndexHtml(url,template)   //3.加载服务器入口。vite.ssrLoadModule将自动转换   //  你的ESM源码使之可以在Node.js中运行!无需打包   //  并提供类似HMR的根据情况随时失效。   const{render}=awaitvite.ssrLoadModule('/src/entry-server.ts')   //4.渲染应用的HTML。这假设entry-server.ts导出的`render`   //  函数调用了适当的SSR框架API。   //  例如ReactDOMServer.renderToString()   constappHtml=awaitrender(url)   //5.注入渲染后的应用程序HTML到模板中。   consthtml=template.replace('<!--ssr-outlet-->',appHtml)   //6.返回渲染后的HTML。   res.status(200).set({'Content-Type':'text/html'}).end(html)  }catch(e){   //如果捕获到了一个错误,让Vite来修复该堆栈,这样它就可以映射回   //你的实际源码中。   vite.ssrFixStacktrace(e)   console.error(e)   res.status(500).end(e.message)  } }) app.listen(3000)}createServer()在终端执行命令:npminstall-Dunplugin-vue-componentsunplugin-auto-import,接着在vite.config.ts中做如下配置://vite.config.tsimportAutoImportfrom'unplugin-auto-import/vite'importComponentsfrom'unplugin-vue-components/vite'import{ElementPlusResolver}from'unplugin-vue-components/resolvers'exportdefault{ plugins:[  //...  AutoImport({   resolvers:[ElementPlusResolver()],  }),  Components({   resolvers:[ElementPlusResolver()],  }), ],}
  • 所需E币: 0
    时间: 2023-9-18 16:20
    大小: 703B
    上传者: 蝴蝶结欧恩
    分享课程——Vue3+Vite+Vant-UI开发双端招聘APP,23年新课,完整版32章,附源码下载。课程以业务驱动技术栈,将真正的商用级项目复原在课程中,使用Vite、Vue3、Vant3UI、Pinia和VueUse等前沿技术,从构建、研发、测试,完成整个全流程的学习。让你在掌握技术的同时,也能提升作为开发者的综合素养。项目功能相对完善,界面美观,手把手带你做出亮眼的作品。
  • 所需E币: 1
    时间: 2023-3-8 10:24
    大小: 5.36MB
    High-SpeedDevicesandCircuitswithTHzApplications
  • 所需E币: 0
    时间: 2023-2-11 14:26
    大小: 1.15MB
    上传者: ZHUANG
    基于卷积神经网络的红木识别App设计与开发
  • 所需E币: 5
    时间: 2023-2-7 21:33
    大小: 193.16KB
    上传者: czd886
    一种智能家居手机app控制系统的设计及实际应用探索
  • 所需E币: 5
    时间: 2023-2-7 21:14
    大小: 1.55MB
    上传者: czd886
    基于手机APP的智能家居遥控平台设计.
  • 所需E币: 5
    时间: 2023-2-7 13:57
    大小: 1.45MB
    上传者: czd886
    智能家居控制APP的开发
  • 所需E币: 5
    时间: 2023-2-7 13:50
    大小: 773.14KB
    上传者: czd886
    基于手机APP控制的智能家居系统设计
  • 所需E币: 5
    时间: 2023-2-7 13:49
    大小: 1.07MB
    上传者: czd886
    智能家居控制APP系统的设计与实现
  • 所需E币: 5
    时间: 2023-2-7 13:43
    大小: 1.31MB
    上传者: czd886
    基于智能家庭网关和统一APP的智能家居系统
  • 所需E币: 5
    时间: 2023-2-7 09:43
    大小: 4.06MB
    上传者: czd886
    基于物联网优化APP的智能家居控制平台设计
  • 所需E币: 5
    时间: 2023-2-6 23:34
    大小: 1.22MB
    上传者: czd886
    基于手机APP和WIFI网络控制的智能家居管控系统
  • 所需E币: 5
    时间: 2023-2-6 21:40
    大小: 1.11MB
    上传者: czd886
    移动App智能家居配电控制系统设计
  • 所需E币: 1
    时间: 2023-1-13 17:24
    大小: 42.68MB
    上传者: mbbeetfans
    《AndroidStudio开发实战:从零基础到App上线》课件
  • 所需E币: 2
    时间: 2023-1-13 17:12
    大小: 124.04MB
    上传者: mbbeetfans
    AndroidStudio开发实战从零基础到App上线源码
  • 所需E币: 1
    时间: 2023-1-13 17:33
    大小: 147.09MB
    上传者: mbbeetfans
    《AndroidStudio开发实战:从零基础到App上线》第二版源码
  • 所需E币: 5
    时间: 2022-10-13 16:21
    大小: 834.38KB
    上传者: czd886
    基于手机APP的视频监控系统设计与实现
  • 所需E币: 0
    时间: 2022-7-30 13:52
    大小: 1.35MB
    上传者: ZHUANG
    基于人脸识别联合Web与APP开发的区域多目标追踪系统
  • 所需E币: 5
    时间: 2022-7-27 11:43
    大小: 348.11KB
    上传者: ZHUANG
    基于WiFi的智能花盆系统设计APP
  • 所需E币: 3
    时间: 2022-5-13 17:02
    大小: 49.76MB
    上传者: 西风瘦马
    194327_可视化开发Android应用程序——拼图开发模式AppInventor.pdf