[Open Source] Algorithm Visualizer for Android - Android Apps and Games

Algorithm Visualizer for Android -
https://github.com/naman14/AlgorithmVisualizer-Android
Visualize algorithms and data structures on your Android device?. Looking for contributions to add support for more visualizations.?
https://play.google.com/store/apps/details?id=com.naman14.algovisualizer
The following visualizations are available currently -
Binary search
Binary Search Tree (Search and insertion)
Linked List and Stack
Bubble sort and Insertion sort
BFS and DFS traversal
Dijkstara and Bellman Ford graph search

Related

inside android: build one module of Android alone

1. run envsetup.sh
[email protected]:~/Android$ . ./build/envsetup.sh
after this, there would be some extra commands available:
- croot: Changes directory to the top of the tree.
- m: Makes from the top of the tree.
- mm: Builds all of the modules in the current directory.
- mmm: Builds all of the modules in the supplied directories.
- cgrep: Greps on all local C/C++ files.
- jgrep: Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- godir: Go to the directory containing a file.
2. use mmm to build the module, such as Email app:
[email protected]:~/Android$ mmm packages/apps/Email/
After building, there would be one Email.apk in out/target/product/generic/system/app, where all app files are located here. Also, out/target/product/generic/system/bin for exexcutable, out/target/product/generic/system/lib for library, and out/target/product/generic/system/lib/hw for HAL interface files.
3. repack system.img
[email protected]:~/Android$ make snod
4. run emulator
[email protected]:~/Android$ emulator
about "inside android"
Hi, all.
As experienced android developers or just beginners, sometimes you might have questions about what's going on inside android. Such as how activity starts, how service starts, etc. If we look into the code, we might have the answer, but it takes time and much effort. In fact, there's millions of lines of source code in android. Fortunately, Shengyang Luo wrote a book in chinese to clarify all these questions, with all the related knowledge he got in these years as an experienced engineer of linux/android. Now, he and I decide this book belongs to the android family, so to make more people get benefit from it, we will rewrite it in English.
Also, we want this book to be more adapted to your need, we might share the outline and part of the content of the book here, so that we all can discuss it while rewriting it. We might change the book according to your advice. For example, there might be more details for the parts you are most interested. To do this, we will have pilot PPTs and passages soon. The pilot topics would be as below:
Android design philosophy--everything is component
Initializing a Build/developing/debugging Environment for Android
Android architecture
Hardware Abstraction Layer(HAL)
drivers specific to android
process management
messaging handling
input handling
UI architecture
resource management framework
Dalvik virtual machine
Which is most interested to you? Please share with us, and we will make it available ASAP.
We haven't talked with any press for publishing yet. So if any press is interested in publishing this book, please contact me. As you all know, writing is a tough job, especially when the book is regarding such a complicated android os system, so cheers, encouragement and funding are welcomed badly. Funding would help us not worry about making a living and dedicate to the writing or even hire some people to accelerate the progress. For funding, please visit indiegogo.com and search "inside android".
The book would have 3 parts: say hello to android, drivers specific to android and understanding android in scenes. The first 2 parts are foundation knowledge for the third part, which is the major part of the book.
Part I say hello to android includes 3 chapters, and introduces how to download the source code, build it, run it, smart pointer and Hardware Abstraction Layer(HAL). Since smart pointer is widely used in the native code of application framework, it would be very helpful if we get to know it before we dive into the scenes. Knowing HAL would help us understand the architecture of android, and then make the third part easier to learn.
Part II drivers specific to android also includes 3 chapters, introducing 3 drivers specific to android: Logger Driver, Binder IPC Driver and Ashmem Shared Memory Driver. No doubt, these 3 drivers, especially the Binder IPC Driver, are the foundation of android. knowing about them would definitely help understand android.
Part III understanding android in scenes includes more than 10 chapters, and introduces android in different scenes, such as the start of something(activity, service, zygote, service manager, etc.), process management, messaging handling etc.
The book is based on android 2.3. If needed, we can rewrite it on newer version.
Below is the outline of the book:
Part I: say hello to android
chapter 1 prerequisite
1.1 reference books on Linux kernel
1.2 reference books on Android application developing
1.3 download, build and run Android source code
1.3.1 download Android source code
1.3.2 build Android source code
1.3.3 run Android emulator
1.4 download, build and run Android kernel source code
1.4.1 download Android kernel source code
1.4.2 build Android kernel source code
1.4.3 run Android emulator
1.5 develop one Android application(example)
1.6 build and pack Android module independently
1.6.1 mmm: Builds all of the modules in the supplied directories
1.6.2 build one Android module independently
1.6.3 repack Android images
chapter 2 Hardware Abstraction Layer(HAL)
2.1 develop Android hardware driver
2.1.1 implementation of one kernel driver
2.1.2 modify Kconfig of the kernel
2.1.3 modify Makefile of the kernel
2.1.4 build the driver
2.1.5 test the driver
2.2 test the driver with C executable
2.3 develop HAL module
2.3.1 specification for HAL module
2.3.2 interface for HAL module
2.3.3 load the HAL module
2.3.4 access permission for the hardware
2.4 develop service to the Android hardware
2.4.1 defite the service interface to hardware
2.4.2 implementation of the service
2.4.3 JNI interface for the service
2.4.4 start of the service
2.5 Android application on the service to hardware
chapter 3 smart pointer
3.1 light weight pointer
3.1.1 implementation
3.1.2 example
3.2 strong pointer and weak pointer
3.2.1 strong pointer
3.2.2 weak pointer
3.2.3 example
Part II: drivers specific to android
chapter 4 Logger driver
4.1 Logger format
4.2 Logger driver
4.2.1 data structure
4.2.2 initialization
4.2.3 open the Logger driver
4.2.4 read the log
4.2.5 write the log
4.3 runtime library for the Logger driver
4.4 log interface for C/C++
4.5 log interface for Java
4.6 Logcat tool
4.6.1 data structure
4.6.2 initialization
4.6.3 read the log
4.6.4 output the log
chapter 5 Binder IPC Driver
5.1 Binder driver
5.1.1 data structure
5.1.2 initialization
5.1.3 open
5.1.4 mapping to the memory
5.1.5 kernel cache management
5.2 runtime library for Binder IPC Driver
5.3 example for Binder IPC Driver application
5.4 counting for Binder object reference
5.4.1 lifecycle of Binder local object
5.4.2 lifecycle of Binder instance
5.4.3 lifecycle of Binder reference
5.4.4 lifecycle of Binder proxy
5.5 Binder object death notification
5.5.1 register death notification
5.5.2 send death notification
5.5.3 unregister death notification
5.6 start of Service Manager
5.6.1 open and mapping on Binder
5.6.2 register as Binder context manager
5.6.3 wait for the Client request in loop
5.7 getting the Service Manager proxy
5.8 start of Service
5.8.1 register Service
5.8.2 start of Binder thread pool
5.9 how to get Service proxy
5.10 Java interface for Binder IPC Driver
5.10.1 getting the Java proxy of Service Manager
5.10.2 define the Java service
5.10.3 start of Java service
5.10.4 getting Java service proxy
5.10.5 calling Java service
chapter 6 Ashmem Shared Memory Driver
6.1 Ashmem driver
6.1.1 data structure
6.1.2 initialization
6.1.3 open
6.1.4 mapping to the memory
6.1.5 lock and unlock
6.1.6 recycle
6.2 Ashmem interface in runtime library cutils
6.3 C++ interface for Ashmem
6.3.1 MemoryHeapBase
6.3.2 MemoryBase
6.3.3 example
6.4 Java interface for Ashmem
6.4.1 MemoryFile
6.4.2 example
6.5 how Ashmem shares memory
Part III: understanding android in scenes
chapter 7 start of Activity
7.1 Activity example
7.2 start of root Activity
7.3 start of child Activity in the same process
7.4 start of child Activity in the new process
chapter 8 start of Service
8.1 Service example
8.2 start of Service in the same process
8.3 start of Service in the new process
chapter 9 Broadcast
9.1 example
9.2 register
9.3 send
chapter 10 Content Provider
10.1 Content Provider example
10.1.1 ArticlesProvider
10.1.2 Article
10.2 start of Content Provider
10.3 data sharing of Content Provider
10.3.1 data sharing model
10.3.2 data transmission
10.4 Content Provider's notification for data Change
10.4.1 register ContentObserver
10.4.2 send notification for data Change
chapter 11 start of Zygote and System process
11.1 start script of Zygote process
11.2 start of Zygote
11.3 start of System
chapter 12 start of Android application
12.1 creation of application process
12.2 start of Binder thread pool
12.3 creation of message loop
chapter 13 message handling
13.1 creation of message queue
13.2 message cycle
13.3 message sending
13.4 message handling
chapter 14 keyboard message handling
14.1 keyboard message handling model
14.2 start of InputManager
14.2.1 creation of InputManager
14.2.2 start of InputManager
14.2.3 start of InputDispatcher
14.2.4 start of InputReader
14.3 register InputChannel
14.3.1 creation of InputChannel
14.3.2 register InputChannel of server side
14.3.3 register the window of currently activated application
14.3.4 register InputChannel of client side
14.4 Dispatch of the keyboard message
14.4.1 InputReader gets keyboard event
14.4.2 InputDispatcher dispatch keyboard event
14.4.3 the window of currently activated application gets keyboard message
14.4.4 InputDispatcher gets notification when the keyboard event handling is done
14.5 unregister InputChannel
14.5.1 destroy application window
14.5.2 unregister InputChannel of client side
14.5.3 unregister InputChannel of server side
chapter 15 message loop model of Android application thread
15.1 message loop model of application main thread
15.2 message loop model of nongraphic application child thread
15.3 message loop model of graphic application child thread
chapter 16 installation and showup of Android application
16.1 installation of application
16.2 showup of application
chapter 17 UI system
17.1 UI architecture
17.2 application UI framework
17.3 WindowManagerService
17.4 SurfaceFlinger
17.5 Multiple Display support
chapter 18 resource management framework
18.1 resource management framework
18.2 compilation of resource
18.3 search for resource
chapter 19 Dalvik virtual machine(DVM)
19.1 introduction
19.2 start of DVM
19.3 execution of DVM
19.4 register JNI methods
19.5 DVM process
19.6 DVM thread

[APP][WIDGET][2.2+]Network Host Monitor

Network Host Monitor is a tool to monitor availability of servers, routers, sites, blogs, etc. You just need to specify the address (URL or IP), set the type (Ping, GET) and the interval for checking.
This application supports various check types: TCP Ping and ICMP Echo, HTTP Get and running custom remote scripts. In last case tool can check answer for a specified word or phrase. HTTP Head request (for code 200) also supported.
Host Monitor interface supports notifications, widget, sound and LED indication. You can specify alert condition - e.g. always, or only if errors, or if status changed, etc. App can save, show and export logs in various formats, and provides statistics feature.
Tool interface supports both phone and tablet modes. You can set preferred layout mode in preferences.
List of major features:
Checking through host resolve, console ping, HTTP GET or HEAD requests
Customizable notifications, and rich preferences/settings
Widget with last check results
Support of unlimited number of hosts/sites
Setting checking interval between 5 minutes to 6 hours
Advanced logging with ability to export logs to text or csv
Logs statistics feature
Auto run on device restart
Optimized interface layouts for both phone and tablet
Ability to run console ping on devices with this function is locked (but root is required)
I think, it's a useful thing, especially for webmasters and network administrators.
Get it from Google play: https://play.google.com/store/apps/details?id=net.snkey.networkhostmonitor
Please feel free to post all issues and feature requests here.
Update to version 1.9 released!
That's new:
added hosts export/import
tap on widget now runs application
improved graphics for logs view
added feedback menu
Install from Google play
Now version 2.2 released.
New features:
- added ability to set pause
- added ability to set description-based host list
- material design support for Android 5.0+
- workaround for notifications: expanded view in and hi priority in 4.1+, added custom colors for 5.0+
- multiple exit requests fixed
- few minor fixes and improvements

LibreTorrent

LibreTorrent is a Free as in Freedom torrent client for Android 4+, based on libtorrent (Java wrapper libtorrent4j) lib.. Download and share files directly on your device.
Implemented features:
DHT, PeX, encryption, LSD, UPnP, NAT-PMP, µTP
IP filtering (eMule dat and PeerGuardian)
Ability to fine tune (network settings, power management, battery control, UI settings, etc.)
Supports torrents with large number of files and big files
HTTPS and magnet links support
Support proxy for trackers and peers
Ability to move files while downloading
Ability to automatic movement of files to another directory or to an external drive at the end of download
Ability to specify file and folder priorities
Ability to select which files to download
Ability to download sequentially
Material Design
Tablet optimized UI
Scheduling
RSS manager
Android TV support
Ability to create torrents
And more
XDA:DevDB Information
LibreTorrent, App for all devices (see above for details)
Contributors
proninyaroslav
Source Code: https://gitlab.com/proninyaroslav/libretorrent
Telegram group (also for beta test versions): https://t.me/LibreTorrent
4PDA: http://4pda.ru/forum/index.php?showtopic=778908
F-Droid: https://f-droid.org/app/org.proninyaroslav.libretorrent
Google Play: https://play.google.com/store/apps/details?id=org.proninyaroslav.libretorrent
GitLab: https://gitlab.com/proninyaroslav/libretorrent/-/releases
XDA Labs https://labs.xda-developers.com/store/app/org.proninyaroslav.libretorrent
Aptoide: https://libretorrent.en.aptoide.com/app
APKMirror: https://www.apkmirror.com/apk/proninyaroslav/libretorrent/
Android File Host: https://androidfilehost.com/?w=files&flid=246723
Version Information
Status: Stable
Current Stable Version: 2.1
Stable Release Date: 2020-04-21
Current Beta Version: 2.0-beta04
Beta Release Date: 2020-02-06
Created 2016-10-19
Last Updated 2020-04-21
Now its working!
Thank U
Emo Darkemotion said:
It says failed to fetch data from the link:crying:
Click to expand...
Click to collapse
Hello. Thank you for bug report. Can you send the link which you tried to download?
Needs a dark theme option and yes torrent + magnet link imports from browsers such as Firefox Nightly needs fixing. Have to shutdown the client 1st before tapping to fetch. As for the rest of the minimal settings approach, +10 points to the dev good job keep it up.
Sent from my Redmi 3S using Tapatalk
I ca't change download location to SD card, I get error. "Unable to use selected folder"
Promising. I'll keep watching this thread but for now I'll stick with Zeta Torrent.
You guys use jlibtorrent, right?
it's worth adding that all these features are made possible by the BitTorrent open source library JLibtorrent (a wrapper of libtorrent), created and maintained by the FrostWire team, which also contributes weekly to libtorrent
Cheers.
Nice app.
replaced utorrent with this :good:
@proninyaroslav No option to search and download torrent. Current search button works only for searching downloaded or downloading torrent files
jerryn70 said:
@proninyaroslav No option to search and download torrent.
Click to expand...
Click to collapse
I can add search engine using a list of known trackers, but since there is a problem with tracker blocks in some countries, this becomes quite problematic.
Would it be possible for this to work without using WebView ? Now it will just crash without it.
Part of the crash log :
#7: Binary XML file line #263: Error inflating class TextView
Caused by: android.view.InflateException: Binary XML file line #263: Error inflating class TextView
Caused by: android.util.AndroidRuntimeException: android.webkit.WebViewFactory$MissingWebViewPackageException: Failed to load WebView provider: No WebView installed
at android.webkit.WebViewFactory.getProviderClass(WebViewFactory.java:371)
at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:194)
at android.webkit.WebView.getFactory(WebView.java:2384)
at android.webkit.WebView.findAddress(WebView.java:1786)
 
Version 1.5
What's new:
Bugfixing:
opening torrent files from notify in some browsers
pause magnets with some trackers
laucher shortcut
download on the URLs with square brackets
port randomize
restore settings if data dir is deleted
minor fixes
Added:
Android 8.1 support (NOTE: at this time, starting with the version of Android 8.0, setting notifications from the app preferences is not working, you can change them only in the settings of Android 8.0.)
ability to save torrent file automatically
Wi-Fi only option
new limitations options
possible to select between add and pause button in foreground notify
watch directory option
notify if blocklist is loaded correctly
Update to jlibtorrent 1.2.0.15-RC2
Version 1.6
What's new:
Bugfixing:
downloading magnet links
connectivity check
option to download and upload only while charging
limitation options
autostart on Android 8+
saving active and seeding time
minor fixes
Added:
black theme (e.g. for OLED devices)
custom battery percentage for battery control option
keep alive option
availability info for each torrent and file
add infohash directly to the Add Link field
peers info in main window
Update to jlibtorrent 1.2.0.16
P.S: also added info about donation: https://github.com/proninyaroslav/libretorrent#donation
Version 1.7
What's new:
Bugfixing
Version 1.8
Version 1.8
What's new:
Added:
RSS manager
Ability to create torrents
Scheduling
Android TV support
Android P support
More improve magnet naming
Expand proxy port range to 65535
Allow resume torrents manually if enabled power/Wi-Fi settings
Minor changes
Bugfixing:
Peer cache list limit
Displayed total peers number
Crash after double shutdown
Check torrent size after change priority
Minor bugfixes
Moving source code to GitLab
Reduce size by splitting APK for each architecture (F-Droid is not yet supported)
Update to jlibtorrent 1.2.0.18-RC10
I have two ideas about streaming support: make it universal for any file formats, or specialized for video with subtitles (in fact the app will itself determine these files in the torrent). What would be the best option? The first option gives more flexibility, and the second one is aimed only at the video stream.
Seems to work well.
Version 1.9
What's new:
Added:
Streaming support (currently without DLNA).
Streaming allows you to download and share individual files from a torrent (e.g VLC or browser).
Just make a long press on the file and copy stream url
Support for torrents with a large files number
BEP53 support. More about it: http://www.bittorrent.org/beps/bep_0053.html
Show errors for each torrent
"Do not download immediately option" for feeds
Own BitTorrent fingerprint ("Lr")
Battery usage warning for DHT option
Bugfixing:
Settings and permission dialog themes
Magnet adding
Export big feed list
Comments and trackers list in create torrent dialog
Torrent name fetching from magnet
Support ampersand (&) in feeds
Minor bugfixes
Big update of Chinese translation
Java 8 support
Migrate to libtorrent4j (fork of frostwire-jlibtorrent) https://github.com/aldenml/libtorrent4j
Version 1.9.1
What's new:
Added:
Swipe refresh to filemanager
Bugfixing:
Blank detail window on tablets
Multi-window support
Chrome OS and Android notebooks support
Update of Chinese translation
Update to libtorrent4j 1.2.0.20-RC3

[APP] [OpenSource] RxLowpoly - Opensource Android Library

​
RxLowpoly
An Android library to bring your ordinary photos to life with an awesome crystallized effect.
Library Details
RxLowpoly uses JNIwith 64 bit support to meet google specified requirement for all apps to be 64 bit enabled by August 2019.
Use of JNI enables much faster execution than other similar libraries.
Use of Sobel Operator for edge detection.
Use of Delaunay Triangulation on the result from the Sobel operator to construct the final crystallized lowpoly effect on the image.
Library - https://github.com/abhriyaroy/RxLowpoly
Sample app - https://play.google.com/store/apps/details?id=com.zebrostudio.lowpolyrx
Please star the repository on github if you like it. :fingers-crossed:

Nethunter Kernel Galaxy s20 ultra 5G [G988B] EXYNOS

. Hello good people .
I am looking for someone who is familiar with Nethunter and knows how to build a custom kernel for my phone model Galaxy s20 ultra 5G [G988B] EXYNOS . - that supports all Nethunter functions such as:
*Home Screen - General information panel, network interfaces and HID device status.
*Kali Chroot Manager - For managing chroot metapackage installations.
*Kali Services - Start / stop various chrooted services. Enable or disable them at boot time.
*Custom Commands - Add your own custom commands and functions to the launcher.
*MAC Changer - Change your Wi-Fi MAC address (only on certain devices)
*KeX Manager - Set up an instant VNC session with your Kali chroot.
*USB Arsenal - Control the USB gadget configurations
*HID Attacks - Various HID attacks, Teensy style.
*DuckHunter HID - Rubber Ducky style HID attacks
*BadUSB MITM Attack - Nuff said.
*MANA Wireless Toolkit - Setup a malicious Access Point at the click of a button.
*Bluetooth Arsenal - Recon, spoof, listen to or inject audio to various Bluetooth devices.
*Social Engineer Toolkit - Build your own phishing email template for Social Engineer Toolkit.
*MITM Framework - Inject binary backdoors into downloaded executables on the fly.
*NMap Scan - Quick Nmap scanner interface.
*Metasploit Payload Generator - Generating Metasploit payloads on the fly.
*Searchsploit - Easy searching for exploits in Exploit-Database.
Telegram contactOnTopOfTheRest

Categories

Resources