At the end of October, the Quark browser popped up. With the emotional design of “minimalism” and the design of no information flow, no interference and immersive browsing, it has attracted the attention of a large number of users. The “light application” introduced in version 2.0 has also overturned the form of traditional browsers, which is refreshing. The slogan of quark browser is “return to the original heart from the simple to the extreme”, Wang Freely also evaluated: UC in isolation, quark is to help the world. How can one browser serve the world? Nuggets editor Linmi did an online interview with the quark browser team with the same question, trying to answer it from a technical perspective.

People are not many, there is a code line

Warren bishop:

Quark browser is available on both Android and iOS. Five on Android and three on iOS. As the product improves, the demand gradually decreases. Currently, there are two developers on Android and one on iOS, and the latter two platforms will keep around two developers. Of course, we have a kernel development team of nearly 100 people, which quark browser shares with UC. Two students from the team. @Liu Zhiyi is responsible for Quark iOS, @Zhang Huijun is responsible for Quark Android. They are all experienced developers with a good sense of product, so you can ask them if you have any questions. @Zhang Huijun is a little Internet celebrity of Kuan, nicknamed “thin man afraid of the cold”. He has become one of the fans of quark in Kuan.

Powerful kernel and excellent shell work together to reduce cache and application volume

Linmi q:

I just went to Kuan to have a look, see Huijun has sent a picture about the browser cache comparison, the quark browser cache is only 1.45m, while a browser has 13.9m, I want to know how to optimize the quark browser, reduce the cache to only one tenth of other browsers?













Zhang Huijun replied:

The size of the browser’s cache depends on how long the user has been using it, and quarks grow over time.

But under the same conditions, quark cache data processing is very advantageous, on the one hand, we rely on the strong kernel team behind the kernel module, they have done full optimization; On the other hand, our shell (as opposed to the kernel part of the shell) has also made efforts in the cache data processing strategy, will intelligently according to the user’s usage, mobile phone to dynamically help users to deal with outdated, unnecessary data, keep the browser clean.

Linmi q:

I just compared quarks on my phone to Chrome, and the cache is 100 times different. Huijun just said that the quark team has made great efforts in the processing strategy of cache data. Then, as a multi-terminal product, what are the similarities and differences between the technical solutions of cache optimization on both ends of iOS and Android?

When I download quarks from the App Store, I find that the size of the App is 29.3 MB. When I look at the Android market, the size of the App is 21.8 MB, which is similar to the size of similar products, but the interface of quarks is not as complex as that of similar products.

Zhang Huijun replied:

Let me answer the second question:

Quark was launched on October 31 last year. At that time, the size of the Android version was 18+M. After one year of version iteration, it gradually reached the current 21.8m.

The largest portion of this package size is our powerful, efficient kernel, which is 14+M in size; The rest is our shell code and resources (images, text, etc.);

The iOS section is supplemented by @Liu Zhiyi

Liu Zhiyi answer:

For the first question, it should be said that there is no difference in the technical scheme of cache optimization between the two ends.

The second problem is similar for iOS. The package size contains the common components of our GRUop project, and most of the UC team’s technical precipitation. Although we do not have a block kernel compared with the Android side, However, excellent network protocol layer, WebView modification technology, video hosting service and other hidden user service support capabilities, all require a necessary but not large size as the premise. And because of bitcode’s support, theoretically the package size shown in the AppStore is an executable file containing all processors, but not when downloaded.

Linmi q:

From the size of the application I think of the application of weight loss, nuggets often have authors published application weight loss related articles. As far as I know, image resources have been slimmed down and some unnecessary libraries have been streamlined. In addition to what I said, the students of The Quark team can share their relevant experience on the application of weight loss?

Liu Zhiyi answer:

Well, yes. General application thin program is aimed at these two points, the library of the simplified removal is mainly the development of pure human work, and resources thin is a certain skill can be found, the industry is commonly used is compression, selection of optimal format support, reuse. In fact, the slimming tool of UC series App is also the Sprite diagram principle commonly used in front-end application development. Here we can provide the historical data: UC 110M~80M, quark 26M~24M. For our business needs to juggle day/night switching and HD display, resource files are really big.

In addition to the U4 kernel, more eye-catching is light application

Linmi q:

Thank you very much for your answer. Let me review the answers from the Quark team, which mentioned a powerful and efficient kernel several times. So what makes the kernel powerful and efficient? When quark browser ADAPTS to this kernel, do you have any experience to share?

Zhang Huijun replied:

The kernel part is the core foundation of the browser, and many features are dependent on it.

We use the same set of kernel as UC, both of which are U4 kernel, which is the product of UC’s accumulated experience and technology in the browser industry for more than ten years. What is powerful about it? Intuitively, from the user’s point of view, fast web loading, deep AD filtering (including manual markup ads), friendly page layout (support to adapt to the screen, part of the page layout), excellent video playback experience, and so on are inseparable from the kernel support, of course, there are many other features.

The kernel adaptation process is fine, nothing special. Just because our kernel has a lot of its own features, so the interface will be different from the native system kernel, this time is to test the architecture design of the docking framework layer of our shell.

Of course, quarks have captured the hearts of many users because of the strength of the core and the support of the shell. Other features that users like, such as millisecond startup speed, silky operation experience, cool animation and interface, extremely fast download speed and so on, are due to the efforts of our shell students.

Linmi q:

Huijun just mentioned the shell support, I carefully experienced the quark, found that the quark built-in related website navigation, and do adaptation to some websites, like the use of native applications, adaptation to these websites is just a simple one by one site adaptation, and what black technology?

Zhang Huijun replied:

I assume you’re referring to our light app, which is a new feature in our Quark 2.0 redesign.

Regarding this, we are not adapted to each site, there are indeed small black technology: first of all, we are cooperating with the “light reading” team, “light reading” has very mature technology in this type of function, it is very pleasant to cooperate with them;

Secondly, in the implementation, we use the UCWeex framework based on Ali Weex revision, Weex is a cross-platform framework, code to write a can be in the iOS end and Android end double end general, so now the optimization of light applications can be reduced by more than two manpower to a person to complete; The native app experience that you feel is also available on the Weex framework;

Finally, when many people use light applications for the first time, they will mistake it for commercialization and naked advertising. However, we all misunderstood, online light application, is our attempt to let users have a better ad-free, good native experience, we selected the site is our users most frequently visited, user evaluation of the best batch of sites. Not only is this not an AD, but we also have to pay a server fee for this feature. Of course, at present, the light application function is not fully formed, we will continue to explore and improve.

Strictly follow specification development

Linmi q:

Huijun said that there is related cooperation with the outside, how is the internal cooperation of the team? Can you share the workflow of the Quark team, such as the relevant specifications and tools in development, and how the CodeView of the team works?

Light applications are non-commercial functions, so will quarks be commercially monetized in the future? Can the direction of realization be disclosed? (Trade secrets can not be said)

By the way: seeing no nuggets on the light app, all I want to say is add nuggets! 🙃

Zhang Huijun replied:

Like most teams, we also have our own set of development specifications, which are also UC development specifications. All code specifications, code quality and code submission format are strictly followed by the specifications. Our development environment is still familiar with AndroidStudio, and the version management is Git. CodeView uses Gerrit, and Confluence uses documentation and management.

On commercial realization, we can rest assured. Although the rise of Quark has great potential commercial value, and some manufacturers will contact and discuss with us at ordinary times, it is certain that commercialization will not be our focus in the near stage, and we have no plan to do commercial functions at present. One thing I can say is that we’re doing pretty well with traditional search revenue, so we’re not in a rush to commercialize, and we’re not going to jump right into the existing business model, but that’s another story.

PS: Light applications will definitely add big nuggets in the future

Linmi q:

Thank you very much! Can you briefly talk about the code quality? As a developer, I would like to know some internal technologies of big factories.

Zhang Huijun replied:

Under normal circumstances, we need to submit the code through CodeReview, especially to the module Owner for Review, only the Review can be submitted;

In normal times we also have a lot of automated tests, performance tests and so on to monitor our application quality;

Before the launch, we will ask all the team members to spend half an hour or so to conduct mass testing. Everyone needs to test the modules they are not responsible for, so as to ensure that some obvious problems are found and solved in advance before the launch.

That’s about it

Li Zhiming answer:

In terms of automated testing, I would like to add: For Android, we used Robolectric+JUnit’s unit testing framework. For non-UI-related code, such as critical Model or business logic, we write unit tests. Before a team member can push the code, they need to execute all the unit tests themselves (by executing a script) to ensure that all the unit test cases pass. In addition, each code submission on the mainline automatically triggers the server to execute the unit test, and if the unit test case fails, the code author and the development team receive an email alert.

Will be exported through the Nuggets column

Linmi q:

Automating development really saves time and effort, and it occurred to me that quark’s team already has a system in place. Q: does the Quark team export, and what is its attitude towards technology export? For example, how do you view open source? Are you encouraging teams to export open source projects?

Li Zhiming answer:

We got a lot from open source technologies like Robolectric and Lottie that we used to implement Doodle. We also love to feed back into the open source community. But one of the problems we have right now is a lack of team energy. Open source technical documentation and maintenance can be time consuming and energy consuming. So no short-term plans. But in the long run, when our team has a certain amount of time to spare, we want to do this. For now, we’re still focused on getting the product right, and there’s still a lot of user feedback to solve. While quark is great compared to its peers, it’s still a long way from being the perfect browser in our minds. But some of the technology sharing things, we’re already planning to do. For example, in your platform to send a column of technical articles (quark browser technology team nuggets column), I hope to communicate more with nuggets readers ~

King of glory five black shortage, crazy recruitment

Linmi q:

Ha ha, very happy quark browser friends can dig gold this technology platform to do output, welcome! After the technical stuff, let’s finish by talking about quark’s life, like what does Quark’s team do in their spare time? Team benefits, team incentives and so on… .

Li Zhiming answer:

The team spent most of their spare time talking about technology and ideas. We often have weekly meetings on Friday afternoons where we bring a bunch of snacks and one of the members shares the theme or we discuss technology and ideas. Some good ideas and technologies will be used in our products or patented. After lunch, the students who love Kings will also open the black. In the past, I used to open the black 55 with other teams in the conference room, but now the collective black 55 is less, because some people abandon the pit, and some people are addicted to eating chicken. Team and company benefits are mainly group activities, such as group movies, dinners, and annual trips. Team incentives include pinecone award, meritorious service award and year-end award. There is also a patent bonus for filing a patent.

The Quark browser, it seems, not only has the U4 kernel in its hands for years, but it also has a team of engineers who want the best. Not only from the product function of the world, but also from the team, with technology “world”.

Quark Browser technology team

As it happens, Quirk is looking for iOS research and development, looking for technology and products are the pursuit of the ultimate like-minded people, interested parties please send your resume to [email protected]. In addition, Kwak’s Alibaba mobile business group (UC) is hiring →UC recruitment. Nuggets of students directly hit the resume!

The purpose of this interview is to help you get to know the different development teams and get a glimpse of the technology climate, r&d systems and ethos of each company through simple questions. If you have a development team that you’d like to get to know, or a development team that you’re part of that would like to communicate more broadly with the community. Welcome to contact YoungZ. WeChat: sunmatter